Files
2026-03-17 09:53:09 -05:00

37 lines
2.3 KiB
C#

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<ICollection<AppUser>> GetAllUsersAsync(UserSearchRequest userSearchRequest);
Task<AppUser> GetUserByEmployeeIdAsync(string employeeId);
Task<AppUser> GetUserByAdEmailAsync(string adEmail);
Task<AppUser> GetActiveUserByEmployeeIdAsync(string employeeId);
Task<AppUser> GetActiveUserByAdEmailAsync(string adEmail);
Task<AppUser> FindUserAsync( string employeeId, string adEmail);
Task<AppUser> SaveUserAsync(AppUser newAppUser);
Task<ICollection<AppUser>> SaveUserRangeAsync(List<AppUser> newUsers);
Task<AppUser> SyncDayForceEmployee(ActiveEmployeeResult activeEmployee);
Task<AppUser> TerminateDayForceEmployee(TerminatedEmployeeResult terminatedEmployee);
Task<List<UserDepartment>> AssignDepartments(string employeeId, DepartmentAssignmentRequest assignment);
Task<UserDepartment> UpdateDepartmentAssignment(DepartmentUpdateRequest request);
Task<List<AppUser>> FindDepartmentAssignments(DepartmentPersonnelSearchRequest searchRequest);
Task<List<Permission>> AssignPermissions(string employeeId, List<string> permCodes);
Task<List<Permission>> RemovePermissions(string employeeId, List<string> permCodes);
Task<List<Permission>> UpdatePermissions(string employeeId, AdditionalPermissionRequest request);
public Task<AppUser> TryFindSingleUserByName(UserNameSearchRequest searchRequest);
Task<AppUser> FindManager(AppUser appUser);
Task<List<AppUser>> FindDepartmentManagers(int departmentId);
Task<bool> UserHasAnyRequiredPermission(string appUserEmail, List<string> allowedPermissions);
Task<bool> SyncActiveUserIds();
Task<IReadOnlyCollection<UserSummary>> GetAllUserSummariesAsync();
IReadOnlyCollection<UserSummary> GetTerminatedUsersAsync(MonthRange monthRange);
Task<EmployeeDetailsUpdateResult> UpdateEmployeeDetails(EmployeeDetailsUpdate employeeDetailsUpdate);
}