
- 新增通知系统完整架构,包含通知设置、历史记录、任务管理等核心功能 - 实现工作任务分配服务,支持人员和设备的智能分配 - 添加人员分组管理功能,支持灵活的通知目标配置 - 完善相关枚举定义和数据传输对象 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
130 lines
3.5 KiB
C#
130 lines
3.5 KiB
C#
using System.ComponentModel.DataAnnotations;
|
||
using NPP.SmartSchedue.Api.Contracts.Core.Enums;
|
||
|
||
namespace NPP.SmartSchedue.Api.Contracts.Services.Notification.Input;
|
||
|
||
/// <summary>
|
||
/// 通知设置更新输入
|
||
/// </summary>
|
||
public class NotificationSettingUpdateInput
|
||
{
|
||
#region 基础信息
|
||
|
||
/// <summary>
|
||
/// 通知设置ID
|
||
/// </summary>
|
||
[Required(ErrorMessage = "通知设置ID不能为空")]
|
||
public long Id { get; set; }
|
||
|
||
/// <summary>
|
||
/// 通知名称
|
||
/// </summary>
|
||
[Required(ErrorMessage = "通知名称不能为空")]
|
||
[MaxLength(200, ErrorMessage = "通知名称长度不能超过200个字符")]
|
||
public string NotificationName { get; set; } = "";
|
||
|
||
/// <summary>
|
||
/// 通知描述
|
||
/// </summary>
|
||
[MaxLength(500, ErrorMessage = "通知描述长度不能超过500个字符")]
|
||
public string Description { get; set; } = "";
|
||
|
||
/// <summary>
|
||
/// 是否启用
|
||
/// </summary>
|
||
public bool IsEnabled { get; set; } = true;
|
||
|
||
#endregion
|
||
|
||
#region 通知方式配置
|
||
|
||
/// <summary>
|
||
/// 是否启用邮件通知
|
||
/// </summary>
|
||
public bool IsEmailEnabled { get; set; } = false;
|
||
|
||
/// <summary>
|
||
/// 是否启用系统消息通知
|
||
/// </summary>
|
||
public bool IsSystemMessageEnabled { get; set; } = true;
|
||
|
||
#endregion
|
||
|
||
#region 时间配置
|
||
|
||
/// <summary>
|
||
/// 通知开始时间(HH:mm格式,如:09:00)
|
||
/// </summary>
|
||
[Required(ErrorMessage = "通知开始时间不能为空")]
|
||
[RegularExpression(@"^([01][0-9]|2[0-3]):[0-5][0-9]$", ErrorMessage = "时间格式不正确,请使用HH:mm格式")]
|
||
public string StartTime { get; set; } = "09:00";
|
||
|
||
/// <summary>
|
||
/// 通知结束时间(HH:mm格式,如:18:00)
|
||
/// </summary>
|
||
[Required(ErrorMessage = "通知结束时间不能为空")]
|
||
[RegularExpression(@"^([01][0-9]|2[0-3]):[0-5][0-9]$", ErrorMessage = "时间格式不正确,请使用HH:mm格式")]
|
||
public string EndTime { get; set; } = "18:00";
|
||
|
||
#endregion
|
||
|
||
#region 频次配置
|
||
|
||
/// <summary>
|
||
/// 通知频次类型
|
||
/// </summary>
|
||
public NotificationFrequencyEnum FrequencyType { get; set; } = NotificationFrequencyEnum.Once;
|
||
|
||
/// <summary>
|
||
/// 间隔时间(分钟)
|
||
/// 当FrequencyType为FixedInterval时必填
|
||
/// </summary>
|
||
public int? IntervalMinutes { get; set; }
|
||
|
||
#endregion
|
||
|
||
#region 人员组配置
|
||
|
||
/// <summary>
|
||
/// 关联的人员组ID
|
||
/// </summary>
|
||
[Required(ErrorMessage = "人员组不能为空")]
|
||
public long PersonnelGroupId { get; set; }
|
||
|
||
#endregion
|
||
|
||
#region 模板配置
|
||
|
||
/// <summary>
|
||
/// 邮件主题模板
|
||
/// </summary>
|
||
[MaxLength(500, ErrorMessage = "邮件主题模板长度不能超过500个字符")]
|
||
public string EmailSubjectTemplate { get; set; } = "";
|
||
|
||
/// <summary>
|
||
/// 邮件内容模板
|
||
/// </summary>
|
||
public string EmailContentTemplate { get; set; } = "";
|
||
|
||
/// <summary>
|
||
/// 系统消息标题模板
|
||
/// </summary>
|
||
[MaxLength(500, ErrorMessage = "系统消息标题模板长度不能超过500个字符")]
|
||
public string SystemMessageTitleTemplate { get; set; } = "";
|
||
|
||
/// <summary>
|
||
/// 系统消息内容模板
|
||
/// </summary>
|
||
public string SystemMessageContentTemplate { get; set; } = "";
|
||
|
||
#endregion
|
||
|
||
#region 触发条件
|
||
|
||
/// <summary>
|
||
/// 触发条件表达式(JSON格式)
|
||
/// </summary>
|
||
public string TriggerConditions { get; set; } = "";
|
||
|
||
#endregion
|
||
} |