namespace TCMSDAL.DTO; /// /// MTCMSPROJECT — top-level test project container. /// Linked to a PIE module or a client implementation; multi-tenant via TENANTID. /// public sealed class TCMSProjectDTO { public int ProjectId { get; set; } public string ProjectCode { get; set; } = string.Empty; public string ProjectName { get; set; } = string.Empty; public string? Description { get; set; } /// Implementation | Internal | RnD public string ProjectType { get; set; } = "Internal"; /// FK → MTCMSCLIENT (nullable — internal projects have no client) public int? ClientId { get; set; } public string? ClientName { get; set; } /// FK → MTCMSPRODUCT (nullable) public int? ProductId { get; set; } public string? ProductName { get; set; } public string Status { get; set; } = "Active"; public string? LeadConsultant { get; set; } public DateTime? StartDate { get; set; } public DateTime? GoLiveDate { get; set; } public bool IsActive { get; set; } = true; public int TenantId { get; set; } public int CreatedBy { get; set; } public DateTime CreatedDate { get; set; } public int? ModifiedBy { get; set; } public DateTime? ModifiedDate { get; set; } } /// Lightweight projection for GET list / dropdowns. public sealed class TCMSProjectListDTO { public int ProjectId { get; set; } public string ProjectCode { get; set; } = string.Empty; public string ProjectName { get; set; } = string.Empty; public string ProjectType { get; set; } = string.Empty; public string? ClientName { get; set; } public string Status { get; set; } = string.Empty; public bool IsActive { get; set; } } /// Minimal DTO for select-list dropdowns. public sealed class TCMSProjectSelectDTO { public int ProjectId { get; set; } public string ProjectCode { get; set; } = string.Empty; public string ProjectName { get; set; } = string.Empty; }