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;
}