using PostFundManagement.Domain; using static PostFundManagement.Domain.Extensions.Constants; namespace PostFundManagement.Application.Services.Projects; public sealed record UpdateProgrammeRequest([Required] long ProgrammeId, [Required][MaxLength(LabelLength)] string Name, [Required] Guid OwnerId, [Required] ApprovalStatus Status); public sealed record CreateProgrammeRequest(long PortfolioId, string Name, Guid OwnerId); public sealed record UpdateProjectRequest([Required] long ProjectId, [Required][MaxLength(LabelLength)] string Name, [Required][MaxLength(TextLength)] string Description, DateTime? StartedAt, DateTime? EndedAt, [Required] IndustrySector Sector, [Required] ProjectType ProjectType); public sealed record UpdateMilestoneRequest([Required] long MilestoneId, [Required] DateTime DueAt, [Required][MaxLength(LabelLength)] string Name, [Required] Priority Priority, [Required] ApprovalStatus Status); public sealed record UpdateProjectStatusRequest([Required] long ProjectId, [Required] ApprovalStatus Status); public sealed record CreateProjectRequest([Required] long ProgrammeId, [Required][MaxLength(LabelLength)] string Name, [Required][MaxLength(TextLength)] string Description, [Required] IndustrySector Sector, [Required] ProjectType ProjectType); public sealed record CreateActivityRequest([Required] long ProjectId, [Required] long? MilestoneId, [Required][MaxLength(LabelLength)] string Category, [Required] decimal Amount, [Required][MaxLength(LabelLength)] string Title, [Required][MaxLength(TextLength)] string Description, DateTime? PerformedAt);