Files
monorepo/LCU.API.Operations.IncentiveAPI/LCU.API.Internal.Operations.IncentiveApi/Services/IActivityService.cs
T
2026-03-17 09:53:09 -05:00

35 lines
2.3 KiB
C#

using LCU.API.Internal.Operations.IncentiveApi.Models.DataTransfer;
using LCU.Library.Internal.IncentiveApiModels.Entities;
using LCU.API.Internal.Operations.IncentiveApi.Models;
using LCU.API.Internal.Operations.IncentiveApi.Models.ExternalActivities;
using LCU.Library.Internal.IncentiveApiModels.Common;
using LCU.Library.Internal.IncentiveApiModels.Requests;
using LCU.Library.Internal.IncentiveApiModels.Results;
namespace LCU.API.Internal.Operations.IncentiveApi.Services;
public interface IActivityService
{
Task<int> SaveActivityAsync(Activity activity);
Task SaveActivityRangeAsync(IReadOnlyCollection<Activity> activity);
Task<IReadOnlyCollection<Activity>> GetActivitiesAsync();
Task<PagedResult<Activity>> ListByFilterAsync(ActivityFilter filter);
Task<Activity> ApplyStateChange(ActivityStateChange activityStateChange, bool commitTransaction = true);
Task<IReadOnlyCollection<ActivityStateChange>> GetActivityStateChanges(int activityId);
Task<IReadOnlyCollection<DepartmentProgress>> GetDepartmentActivityForMonthRangeAsync(List<UserDepartment> userDepartments, MonthRange monthRange);
Task<Activity> GetActivity(int activityId);
Task<Activity> CreateAndRetrieveActivity(Activity activity);
Task<Activity> GetActivityForStateUpdate(Activity queryActivity);
Task<Activity> GetActivityForDetailUpdate(Activity queryActivity);
Task ValidateCanApplyActivityStateChange(AppUser appUser, ActivityStateChange activityStateChange);
Task<ActivityTransferAction> RequestTransfer(ActivityTransferRequest activityTransferRequest);
Task<ActivityTransferAction> TransferToOwnDepartment(ActivityTransferRequest activityTransferRequest, AppUser employee);
Task<IReadOnlyCollection<ActivityStateChange>> MatchOrExpireReferrals();
Task<ProcessResult> RunReferralStatusUpdates();
Task<ActivityTransferAction> ApproveTransfer(AppUser appUser, ActivityTransferApprovalRequest activityTransferApproval);
Task<ActivityTransferAction> GetRequestedTransfer(int activityId);
Task CancelPendingTransfersBetween(MonthRange range);
Task<List<IExternalActivity>> FilterExternalActivitiesByExistingSourceId(List<IExternalActivity> incomingEternalActivities);
Task<AuthorizedActivityCommands> GetActivityAuthorizedCommands(AppUser appUser, int activityId);
}