using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using FrameworkDAL.DTO.Project; using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; using GB5Shared.ResponseStandard; namespace FrameworkBLL.Module { public interface IModuleBLL { Task GetModuleList(LoginDTO LoginDTO, string? module = null); Task GetSelectListModule(CriteriaDTO criteriaDTO, LoginDTO loginDTO); Task GetModule(int ModuleId, LoginDTO LoginDTO); // SaveModule autonumbers (AUTONUMBERCONSTANT.MODULE) when ModuleId == 0, same as Role — // confirmed live against USCIMPSYS that MAUTONUMBER already tracks a real 'MODULE' counter // and recent modules were created sequentially from it. An explicit non-zero ModuleId is // still honored (legacy/system modules like ADMIN/-1900000000 carry older, hand-picked // fixed IDs from before this convention). Create and update stay separate methods // (unlike Role's single isNew-inferring SaveRole) since Module's caller-facing contract // still needs to support re-seeding a specific legacy ID explicitly. Task SaveModule(ModuleDTO ModuleDTO, LoginDTO LoginDTO); Task UpdateModule(ModuleDTO ModuleDTO, LoginDTO LoginDTO); Task> DeleteModule(int ModuleId, LoginDTO LoginDTO); } }