paiban/NPP.SmartSchedue.Api.Contracts/Domain/Notification/INotificationSettingRepository.cs
Asoka.Wang 2b3f9acdce 123
2025-09-22 19:09:47 +08:00

46 lines
1.7 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using ZhonTai.Admin.Core.Repositories;
namespace NPP.SmartSchedue.Api.Contracts.Domain.Notification;
/// <summary>
/// 通知设置仓储接口
/// </summary>
public interface INotificationSettingRepository : IRepositoryBase<NotificationSettingEntity>
{
/// <summary>
/// 根据启用状态获取通知设置列表
/// </summary>
Task<List<NotificationSettingEntity>> GetByEnabledAsync(bool enabled);
/// <summary>
/// 根据人员组ID获取通知设置列表
/// </summary>
Task<List<NotificationSettingEntity>> GetByPersonnelGroupIdAsync(long personnelGroupId);
/// <summary>
/// 根据通知方式获取通知设置列表
/// </summary>
Task<List<NotificationSettingEntity>> GetByNotificationTypeAsync(int notificationType);
/// <summary>
/// 根据触发条件获取匹配的通知设置列表
/// 这里实现一个简化的匹配逻辑,实际项目中可能需要更复杂的条件匹配引擎
/// </summary>
Task<List<NotificationSettingEntity>> GetMatchingNotificationSettingsAsync(
string businessType,
Dictionary<string, object> businessContext);
/// <summary>
/// 检查通知设置名称是否存在
/// </summary>
Task<bool> ExistsNotificationNameAsync(string notificationName, long? excludeId = null);
/// <summary>
/// 获取需要在当前时间执行的通知设置列表
/// 根据决策点2简单时间段只支持开始时间-结束时间
/// </summary>
Task<List<NotificationSettingEntity>> GetActiveNotificationSettingsForTimeAsync(DateTime currentTime);
}