using System; using System.Collections.Generic; using System.Threading.Tasks; using NPP.SmartSchedue.Api.Contracts.Core.Enums; using ZhonTai.Admin.Core.Repositories; namespace NPP.SmartSchedue.Api.Contracts.Domain.Notification; /// /// 通知历史记录仓储接口 /// public interface INotificationHistoryRepository : IRepositoryBase { /// /// 根据通知设置ID获取历史记录列表 /// Task> GetByNotificationSettingIdAsync(long notificationSettingId); /// /// 根据接收人员ID获取历史记录列表 /// Task> GetByRecipientPersonnelIdAsync(long recipientPersonnelId); /// /// 根据发送状态获取历史记录列表 /// Task> GetBySendStatusAsync(NotificationStatusEnum sendStatus); /// /// 根据通知方式获取历史记录列表 /// Task> GetByNotificationTypeAsync(NotificationTypeEnum notificationType); /// /// 根据业务类型和业务ID获取历史记录列表 /// Task> GetByBusinessAsync(string businessType, long? businessId = null); /// /// 获取需要重试的失败通知列表 /// Task> GetFailedNotificationsForRetryAsync(int? maxRetryCount = null); /// /// 获取指定时间范围内的通知统计信息 /// Task> GetNotificationStatisticsAsync( DateTime startTime, DateTime endTime, long? notificationSettingId = null); /// /// 根据日期范围获取历史记录列表 /// Task> GetByDateRangeAsync(DateTime startDate, DateTime endDate); /// /// 更新通知发送状态 /// Task UpdateSendStatusAsync(long id, NotificationStatusEnum sendStatus, string sendResult = "", string errorMessage = ""); /// /// 批量更新通知发送状态 /// Task BatchUpdateSendStatusAsync(List<(long Id, NotificationStatusEnum Status, string Result, string Error)> updates); }