Developer 058d8edffa 添加通知系统和工作任务分配功能
- 新增通知系统完整架构,包含通知设置、历史记录、任务管理等核心功能
- 实现工作任务分配服务,支持人员和设备的智能分配
- 添加人员分组管理功能,支持灵活的通知目标配置
- 完善相关枚举定义和数据传输对象

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-05 08:34:01 +08:00

130 lines
3.5 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.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
}