using LCU.API.Internal.Operations.IncentiveApi.Models.DataTransfer; using LCU.API.Internal.Operations.IncentiveApi.Models.Dayforce; using LCU.Library.Internal.IncentiveApiModels.Common; using LCU.Library.Internal.IncentiveApiModels.Entities; using LCU.Library.Internal.IncentiveApiModels.Requests; using LCU.Library.Internal.IncentiveApiModels.Results; namespace LCU.API.Internal.Operations.IncentiveApiLib.Services; public interface IUserService { Task> GetAllUsersAsync(UserSearchRequest userSearchRequest); Task GetUserByEmployeeIdAsync(string employeeId); Task GetUserByAdEmailAsync(string adEmail); Task GetActiveUserByEmployeeIdAsync(string employeeId); Task GetActiveUserByAdEmailAsync(string adEmail); Task FindUserAsync( string employeeId, string adEmail); Task SaveUserAsync(AppUser newAppUser); Task> SaveUserRangeAsync(List newUsers); Task SyncDayForceEmployee(ActiveEmployeeResult activeEmployee); Task TerminateDayForceEmployee(TerminatedEmployeeResult terminatedEmployee); Task> AssignDepartments(string employeeId, DepartmentAssignmentRequest assignment); Task UpdateDepartmentAssignment(DepartmentUpdateRequest request); Task> FindDepartmentAssignments(DepartmentPersonnelSearchRequest searchRequest); Task> AssignPermissions(string employeeId, List permCodes); Task> RemovePermissions(string employeeId, List permCodes); Task> UpdatePermissions(string employeeId, AdditionalPermissionRequest request); public Task TryFindSingleUserByName(UserNameSearchRequest searchRequest); Task FindManager(AppUser appUser); Task> FindDepartmentManagers(int departmentId); Task UserHasAnyRequiredPermission(string appUserEmail, List allowedPermissions); Task SyncActiveUserIds(); Task> GetAllUserSummariesAsync(); IReadOnlyCollection GetTerminatedUsersAsync(MonthRange monthRange); Task UpdateEmployeeDetails(EmployeeDetailsUpdate employeeDetailsUpdate); }