namespace TCMSDAL.DTO;
///
/// MTCMSMODULE — a testable module within a TCMS project.
/// Optionally linked to a PIE module via PIEMODULEID for traceability.
///
public sealed class TCMSModuleDTO
{
public int ModuleId { get; set; }
public string ModuleCode { get; set; } = string.Empty;
public string ModuleName { get; set; } = string.Empty;
public string? Description { get; set; }
/// FK → MTCMSPROJECT
public int ProjectId { get; set; }
public string? ProjectName { get; set; }
/// PIE ModuleId for behavior-matrix traceability (nullable)
public Guid? PieModuleId { get; set; }
public string? PieModuleName { get; set; }
/// P1 | P2 | P3
public string Priority { get; set; } = "P2";
/// Owner team or individual
public string? Owner { 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; }
}
public sealed class TCMSModuleListDTO
{
public int ModuleId { get; set; }
public string ModuleCode { get; set; } = string.Empty;
public string ModuleName { get; set; } = string.Empty;
public string ProjectName { get; set; } = string.Empty;
public string Priority { get; set; } = string.Empty;
public string? Owner { get; set; }
public bool IsActive { get; set; }
// Coverage aggregates (computed by coverage endpoints)
public int TotalTestCases { get; set; }
public int PassedCount { get; set; }
public int FailedCount { get; set; }
public decimal CoveragePct { get; set; }
}
public sealed class TCMSModuleSelectDTO
{
public int ModuleId { get; set; }
public string ModuleCode { get; set; } = string.Empty;
public string ModuleName { get; set; } = string.Empty;
}