using LCU.Library.Internal.IncentiveApiModels.Common; using LCU.Library.Internal.IncentiveApiModels.Entities; using LCU.Library.Internal.IncentiveApiModels.Enums; using System.Collections.Generic; using System.Threading.Tasks; namespace LCU.API.Internal.Operations.IncentiveApiLib.Repositories; public interface IActivityRepository { Task SaveActivityAsync(Activity activity); Task SaveActivityRangeAsync(List activities); Task> GetActivitiesAsync(); Task> GetActivitiesAsync(int page, int limit); Task> GetPagedFilteredActivities(ActivityFilter filter); Task GetActivityById(int activityId); Task> FindEmployeeActivityByMonthRange(AppUser appUser, MonthRange monthRange); Task> FindDepartmentActivityByMonthRange(int departmentId, MonthRange monthRange); Task GetActivityIncludingPayouts(int activityId); Task> FindUnmatchedReferrals(); Task> FindPendingEStatementsReferrals(); Task FindUnmatchedSaleForReferral(Activity referral); EStatementDeliveryMethod FindDeliveryMethodForEStatement(Activity referral, List eStatementActivities); Task FindDuplicateSaleAsync(Activity activity); Task FindDuplicateReferralAsync(Activity activity); Task FindActivityForStateUpdate(Activity activity); Task FindActivityForDetailUpdate(Activity activity); public void UpdateActivityRangeAsync(List activities); Task> GetActivitiesBySourceId(List sourceId); Task> GetAllActivitiesWithPayoutsForEmployee(string employeeId); Task FindDuplicateReferralBySourceIdAsync(Activity activity); Task> FindById(List ids, bool withDetail = true, bool withTracking = true); Task> FindLatestBySourceId(List sourceIds, bool withDetail = true, bool withTracking = true); Task> FindGapInsuranceEligible(MonthRange monthRange, bool withTracking = true); Task> GetFilteredActivities(MonthRange monthRange, Product product, ActivityState activityState, bool withTracking = true); }