namespace TCMSDAL.DTO; /// Import request — triggers PIE sync for a given module. public sealed class TCMSImportFromPIERequestDTO { public int ModuleId { get; set; } public Guid PieModuleId { get; set; } /// If true, re-import even if already imported (updates existing TC records) public bool ForceRefresh { get; set; } } /// Result summary returned after PIE import. public sealed class TCMSImportResultDTO { public int Created { get; set; } public int Updated { get; set; } public int Skipped { get; set; } public int Errors { get; set; } public List ErrorMessages { get; set; } = new(); } /// /// MTCMSPIESYNC — tracks the last import per module to prevent duplicates. /// public sealed class TCMSPieSyncDTO { public int SyncId { get; set; } public int ModuleId { get; set; } public Guid PieModuleId { get; set; } public DateTime LastSyncDate { get; set; } public int ScenariosImported { get; set; } public int TenantId { get; set; } } /// /// MTCMSUATCHECKLIST — auto-generated checklist linked to a project + run. /// The actual Excel bytes are generated on-demand by ExportTCMSUATChecklist; /// this DTO carries the metadata. /// public sealed class TCMSUATChecklistDTO { public int ChecklistId { get; set; } public string ChecklistName { get; set; } = string.Empty; public int ModuleId { get; set; } public string? ModuleName { get; set; } public int? TestRunId { get; set; } public string? RunCode { get; set; } public DateTime GeneratedDate { get; set; } public int GeneratedBy { get; set; } public int TenantId { get; set; } } /// Row in the UAT Excel checklist. public sealed class TCMSUATChecklistRowDTO { public string TcId { get; set; } = string.Empty; public string Feature { get; set; } = string.Empty; public string Scenario { get; set; } = string.Empty; public string Priority { get; set; } = string.Empty; public string TestType { get; set; } = string.Empty; public string Given { get; set; } = string.Empty; public string When { get; set; } = string.Empty; public string Then { get; set; } = string.Empty; public string? Tester { get; set; } public string? Status { get; set; } public string? Notes { get; set; } public string? SignOff { get; set; } } /// Payload for Gherkin file upload import. public sealed class TCMSImportFromGherkinRequestDTO { public int ModuleId { get; set; } public string FileName { get; set; } = string.Empty; public string GherkinContent { get; set; } = string.Empty; }