using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using WiDAL.DTOs; namespace WiDAL.CustomCode.WiMaster; public interface IWiMasterDAL { Task GetWiList(int wiProcessId, byte wiStatus, LoginDTO login, CancellationToken ct); Task GetWiById(int wiId, LoginDTO login, CancellationToken ct); Task GetWiFullDetail(int wiId, LoginDTO login, CancellationToken ct); Task SaveWiFull(WiSaveRequestDTO req, LoginDTO login, CancellationToken ct); Task UpdateWiStatus(int wiId, byte newStatus, int modifiedById, LoginDTO login, CancellationToken ct); // Atomic: status update + version log append + content snapshot, one transaction — a partial // failure must never leave WISTATUS updated with no corresponding LWIVERSION/snapshot row. Task TransitionStatusWithSnapshot(int wiId, byte newStatus, int modifiedById, WiVersionLogDTO log, string snapshotJson, LoginDTO login, CancellationToken ct); Task InvalidateAcknowledgements(int wiId, int modifiedById, LoginDTO login, CancellationToken ct); Task GetVersionHistory(int wiId, LoginDTO login, CancellationToken ct); Task GetVersionSnapshot(int lwiVersionId, LoginDTO login, CancellationToken ct); Task GetSelectListWiMaster(CriteriaDTO criteriaDTO, LoginDTO login, CancellationToken ct); Task DeleteWiMaster(int WiId, LoginDTO loginDTO, CancellationToken ct); Task GetStepsWithWorkstationAsync(int wiId, LoginDTO login, CancellationToken ct); Task UpdateWiFull(WiSaveRequestDTO req, LoginDTO login, CancellationToken ct); }