using System; using System.Collections.Generic; using System.Threading.Tasks; using NPP.SmartSchedue.Api.Contracts.Domain.Notification; using ZhonTai.Admin.Core.Repositories; namespace NPP.SmartSchedue.Api.Contracts.Core.Repositories; /// /// 通知设置仓储接口 /// public interface INotificationSettingRepository : IRepositoryBase { /// /// 根据启用状态获取通知设置列表 /// /// 是否启用 /// Task> GetByEnabledAsync(bool enabled); /// /// 根据人员组ID获取通知设置列表 /// /// 人员组ID /// Task> GetByPersonnelGroupIdAsync(long personnelGroupId); /// /// 根据通知方式获取通知设置列表 /// /// 通知方式 /// Task> GetByNotificationTypeAsync(int notificationType); /// /// 根据触发条件获取匹配的通知设置列表 /// /// 业务类型 /// 业务上下文数据 /// Task> GetMatchingNotificationSettingsAsync( string businessType, Dictionary businessContext); /// /// 检查通知设置名称是否存在 /// /// 通知名称 /// 排除的ID /// Task ExistsNotificationNameAsync(string notificationName, long? excludeId = null); /// /// 获取需要在当前时间执行的通知设置列表 /// /// 当前时间 /// Task> GetActiveNotificationSettingsForTimeAsync(DateTime currentTime); }