using System.Collections.Generic; using System.Threading.Tasks; using LCU.Library.Internal.IncentiveApiModels.Entities; using LCU.Library.Internal.IncentiveApiModels.Common; using LCU.Library.Internal.IncentiveApiModels.Requests; namespace LCU.API.Internal.Operations.IncentiveApiLib.Repositories; public interface IUserRepository { Task> GetAllUsersAsync(); Task> GetAllUsersToPayoutAsync(MonthRange range); Task FindUserByEmployeeIdAsync(string employeeId); Task FindUserByAdEmailAsync(string adEmail); Task FindActiveUserByEmployeeIdAsync(string employeeId); Task FindActiveUserByAdEmailAsync(string adEmail); Task FindUserAsync(string employeeId, string adEmail); Task> FindUsersByHomeDepartmentsAsync(List homeDepartments); Task> FindUsersByBaseRolesAsync(List baseRoles); Task SaveUserAsync(AppUser newAppUser); Task> SaveUserRangeAsync(List newUsers); Task> SearchUsersAsync(UserSearchRequest userSearchRequest); Task> GetAllUserSummariesAsync(); IReadOnlyCollection GetTerminatedUsersAsync(MonthRange monthRange); }