using FLSDAL.DTO.Instance; using GB5Shared.DTO.Framework.Criteria; using GB5Shared.DTO.Framework.Login; namespace FLSDAL.CustomCode.Instance; public interface IFlsInstanceDAL { Task> GetSelectListFlsInstance( int firstNumber, int maxResult, CriteriaDTO criteriaDTO, LoginDTO login); Task> GetSelectListFlsInstanceGroup( int flsInstanceId, int firstNumber, int maxResult, CriteriaDTO criteriaDTO, LoginDTO login); Task InsertInstanceAsync(int flsInstanceId, CreateFlsInstanceRequest req, LoginDTO login, CancellationToken ct); Task UpdateInstanceAsync(int flsInstanceId, CreateFlsInstanceRequest req, LoginDTO login, CancellationToken ct); // groupIds must be pre-allocated (one per req.Groups entry, same order). Returns GroupCode -> GroupId. Task> InsertGroupsAsync( int flsInstanceId, List groups, List groupIds, LoginDTO login, CancellationToken ct); // inchargeIds must be pre-allocated (one per incharges entry, same order). Task InsertInchargesAsync( int flsInstanceId, List incharges, List inchargeIds, Dictionary groupCodeToId, LoginDTO login, CancellationToken ct); Task UpsertScheduleAsync( int flsInstanceId, int instanceScheduleId, DateTime opensFrom, DateTime closesOn, DateTime? globalDeadlineDt, LoginDTO login, CancellationToken ct); Task OpenAsync(int flsInstanceId, LoginDTO login, CancellationToken ct); Task ControlAsync(int flsInstanceId, int action, string? actionNote, LoginDTO login, CancellationToken ct); Task GetByIdAsync(int flsInstanceId, LoginDTO login, CancellationToken ct); Task> GetSummaryAsync(int flsInstanceId, LoginDTO login, CancellationToken ct); Task> GetGroupsAsync(int flsInstanceId, LoginDTO login, CancellationToken ct); Task InsertGroupOnlyAsync(int groupId, SaveFlsInstanceGroupRequest req, LoginDTO login, CancellationToken ct); Task UpdateGroupOnlyAsync(SaveFlsInstanceGroupRequest req, LoginDTO login, CancellationToken ct); Task DeleteGroupAsync(int groupId, LoginDTO login, CancellationToken ct); Task GetGroupByIdAsync(int groupId, LoginDTO login, CancellationToken ct); Task> GetInchargesAsync(int flsInstanceId, LoginDTO login, CancellationToken ct); Task CodeExistsAsync(string code, int excludeId, LoginDTO login, CancellationToken ct); Task> GetOpenInstancesForReminderAsync(int tenantId, LoginDTO login, CancellationToken ct); Task> GetInstancesByRegistrationAsync(int flsRegistrationId, LoginDTO login, CancellationToken ct); }