using PostFundManagement.Domain; using static PostFundManagement.Domain.Extensions.Constants; namespace PostFundManagement.Application.Services.Governance; public sealed record UpdatePortfolioRequest([Required] long PortfolioId, [Required][MaxLength(LabelLength)] string Name, [Required][MaxLength(TextLength)] string Description, [Required] Guid OwnerId); public sealed record CreatePortfolioRequest([Required][MaxLength(LabelLength)] string Name, [Required][MaxLength(TextLength)] string Description, [Required] long OrganisationId, [Required] Guid OwnerId); public sealed record UpdateOrganisationRequest([Required] long OrganisationId, [Required][MaxLength(LabelLength)] string Name, [Required][MaxLength(LabelLength)] string RegistrationNo, [Required][EmailAddress][MaxLength(LabelLength)] string Email, [Required] OrganisationType Type); public sealed record CreateOrganisationRequest([Required][MaxLength(LabelLength)] string Name, [Required][MaxLength(LabelLength)] string RegistrationNo, [Required][EmailAddress][MaxLength(LabelLength)] string Email, [Required] OrganisationType Type = OrganisationType.PrivateLimitedCompany); public sealed record Dashboard([Required] decimal PortfolioValue, [Required] int ActiveAwards, [Required] decimal Disbursed, [Required] double OnTrackPercentage, [Required] int AtRiskCount, [Required] int BeneficiariesReached);