using PostFundManagement.Domain; namespace PostFundManagement.Application.Services.Grants; public sealed record UpdateBudgetRequest([Required] long BudgetId, [Required] ApprovalStatus Status); public sealed record UpdateContractRequest([Required] long ContractId, [Required] ContractStatus Status); public sealed record CreateAwardRequest([Required] long OrganisationId, [Required] long ProgrammeId, [Required] decimal Amount); public sealed record UpdateAwardRequest([Required] long AwardId, [Required] long OrganisationId, [Required] long ProgrammeId, [Required] decimal Amount, ApprovalStatus? Status); public sealed record CreateBudgetRequest([Required] long ProjectId, [Required][MaxLength(LabelLength)] string Name, [Required] decimal Amount); public sealed record CreateContractRequest([Required] long AwardId, [Required] decimal TotalValue, [Required] DateTime EffectiveAt, [Required] DateTime ExpiresAt); public sealed record ExecuteContractRequest([Required] long ContractId, [Required][MaxLength(LabelLength)] string ExternalSignatureId, [Required][MaxLength(LabelLength)] string SignedDocumentUrl);