using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using SwDAL.DTO.DdlScript; namespace SwBLL.DdlScript; public interface IDdlScriptBLL { Task GetById(int ddlScriptId, LoginDTO loginDTO, CancellationToken ct); Task GetList(CriteriaDTO criteria, string? searchText, int pageOffset, int pageSize, LoginDTO loginDTO, CancellationToken ct = default); Task GetSelectListDdlScript(int firstNumber, int maxResult, CriteriaDTO criteriaDTO, LoginDTO loginDTO); Task> GetByBranch(int branchId, LoginDTO loginDTO, CancellationToken ct); Task Save(DdlScriptDTO dto, LoginDTO loginDTO, CancellationToken ct); Task Delete(int ddlScriptId, LoginDTO loginDTO, CancellationToken ct); Task ReviewDdlScript(int ddlScriptId, LoginDTO loginDTO, CancellationToken ct); Task ApproveDdlScript(int ddlScriptId, int approvedById, LoginDTO loginDTO, CancellationToken ct); Task LogExecutionAsync(int ddlScriptId, int clientDbId, byte status, string? errorMessage, LoginDTO loginDTO, CancellationToken ct); /// Tracker §37 Decision 2 — how many of the given DdlScriptIds already have an /// execution attempt logged for this ClientDbId. Used by ChangeRequestBLL.GetById to enrich /// a ClientProvisioning CR's status with ScriptsDone/ScriptsTotal for real-time progress /// reporting — never called for any other CR category. Task CountExecutedScriptsAsync(int clientDbId, IEnumerable ddlScriptIds, LoginDTO loginDTO, CancellationToken ct); }