using GB5Shared.DTO.Framework.Login; using TCMSDAL.DTO; namespace TCMSDAL.Interfaces; public interface ITCMSTraceabilityDAL { // ── Screen links ────────────────────────────────────────────────────────── Task InsertScreenLinkAsync(TCMSSaveLinkDTO dto, LoginDTO login, CancellationToken ct); Task DeleteScreenLinkAsync(int screenLinkId, LoginDTO login, CancellationToken ct); Task> GetScreenLinksForTestCaseAsync(int testCaseId, LoginDTO login, CancellationToken ct); // ── API links ───────────────────────────────────────────────────────────── Task InsertApiLinkAsync(TCMSSaveApiLinkDTO dto, LoginDTO login, CancellationToken ct); Task DeleteApiLinkAsync(int apiLinkId, LoginDTO login, CancellationToken ct); Task> GetApiLinksForTestCaseAsync(int testCaseId, LoginDTO login, CancellationToken ct); // ── Read (traceability view + widget) ───────────────────────────────────── Task> GetTestCasesByScreenAsync(string screenRoute, LoginDTO login, CancellationToken ct); Task> GetTestCasesByApiOperationAsync(long apiOperationId, LoginDTO login, CancellationToken ct); Task> GetStepsForCasesAsync(IEnumerable caseIds, LoginDTO login, CancellationToken ct); Task GetScreenSummaryAsync(string screenRoute, LoginDTO login, CancellationToken ct); Task> GetScreenTreeAsync(LoginDTO login, CancellationToken ct); // ── Gap detection ───────────────────────────────────────────────────────── Task> GetScreenGapsAsync(LoginDTO login, CancellationToken ct); Task> GetApiGapsAsync(LoginDTO login, CancellationToken ct); }