using PostFundManagement.Domain; namespace PostFundManagement.Application.Services.Governance; public sealed record UpdateInstrumentRequest([Required] long InstructionId, [Required][MaxLength(LabelLength)] string Name, [Required][MaxLength(LabelLength)] string Code, [Required][MaxLength(TextLength)] string Description, [Required] ActivityStatus Status); public sealed record CreateInstrumentRequest([Required] long ProgrammeId, [Required][MaxLength(LabelLength)] string Name, [Required][MaxLength(LabelLength)] string Code, [Required][MaxLength(TextLength)] string Description); public sealed record CreateTenantRequest([Required][MaxLength(LabelLength)] string Name); public sealed record UpdateTenantUserRequest([Required] Guid UserId, [Required] ActivityStatus Status); public sealed record CreateTenantUserRequest([Required] long TenantId, [Required] Guid UserId); public sealed record UpdateTenantRequest([Required] long TenantId, [Required][MaxLength(LabelLength)] string Name, [Required] ActivityStatus Status); 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, [MaxLength(LabelLength)] string? IdNumber, [Required] Guid OrganisationUser, [Required] OrganisationType Type, [Required] ActivityStatus Status); public sealed record CreateOrganisationRequest([Required][MaxLength(LabelLength)] string Name, [Required][MaxLength(LabelLength)] string RegistrationNo, [Required][EmailAddress][MaxLength(LabelLength)] string Email, [MaxLength(LabelLength)] string? IdNumber, [Required] Guid OrganisationUser, [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);