Files
pfm/PostFundManagement.Application/Services/Projects/Records.cs
T

110 lines
4.6 KiB
C#

using PostFundManagement.Domain;
using static PostFundManagement.Domain.Extensions.Constants;
namespace PostFundManagement.Application.Services.Projects;
public sealed record UpdateSiteVisitRequest([Required] long SiteVisitId,
[Required][MaxLength(LabelLength)] string InspectorName,
[Required][MaxLength(TextLength)] string Findings,
[Required] ApprovalStatus Status,
[Required] DateTime VisitedAt);
public sealed record CreateSiteVisitRequest([Required] long ProjectId,
[Required][MaxLength(LabelLength)] string InspectorName,
[Required][MaxLength(TextLength)] string Findings,
[Required] DateTime VisitedAt);
public sealed record UpdateOutcomeRequest([Required] long OutcomeId,
[Required][MaxLength(LabelLength)] string Name,
[Required][MaxLength(TextLength)] string Description);
public sealed record CreateOutcomeRequest([Required] long BeneficiaryId,
[Required][MaxLength(LabelLength)] string Name,
[Required][MaxLength(TextLength)] string Description);
public sealed record UpdateIssueRequest([Required] long IssueId,
[Required][MaxLength(LabelLength)] string Title,
[Required][MaxLength(TextLength)] string Description,
[Required][MaxLength(TextLength)] string Resolution,
[Required] DateTime? ResolvedAt,
[Required] Priority Priority,
[Required] ActivityStatus Status,
[Required] Guid AssignedTo);
public sealed record CreateIssueRequest([Required] long ProjectId,
[Required][MaxLength(LabelLength)] string Title,
[Required][MaxLength(TextLength)] string Description,
[Required] Priority Priority,
[Required] Guid AssignedTo);
public sealed record UpdateBeneficiaryRequest([Required] long BeneficiaryId,
[Required][MaxLength(LabelLength)] string Name,
[Required][MaxLength(LabelLength)] string Category,
[Required][MaxLength(LabelLength)] string Location,
[Required] int TargetCount,
[Required] int ReachedCount);
public sealed record CreateBeneficiaryRequest([Required] long ProjectId,
[Required][MaxLength(LabelLength)] string Name,
[Required][MaxLength(LabelLength)] string Category,
[Required][MaxLength(LabelLength)] string Location,
[Required] int TargetCount,
[Required] int ReachedCount);
public sealed record UpdateComplianceItemRequest([Required] long ComplianceItemId,
[Required][MaxLength(LabelLength)] string Title,
[Required][MaxLength(TextLength)] string Requirements,
[Required] ApprovalStatus Status);
public sealed record CreateComplianceItemRequest([Required] long ProjectId,
[Required][MaxLength(LabelLength)] string Title,
[Required][MaxLength(TextLength)] string Requirements);
public sealed record UpdateChangeRequest([Required] long ChangeRequestId,
[Required][MaxLength(LabelLength)] string Title,
[Required][MaxLength(TextLength)] string Justification,
[Required] decimal RevisedBudget,
[Required] ApprovalStatus Status);
public sealed record CreateChangeRequest([Required] long ProjectId,
[Required][MaxLength(LabelLength)] string Title,
[Required][MaxLength(TextLength)] string Justification,
[Required] decimal RevisedBudget,
[Required] DateTime RevisionDate);
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);