using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using NPP.SmartSchedue.Api.Contracts.Core.Enums; namespace NPP.SmartSchedue.Api.Contracts.Services.Notification.Input; /// /// 人员组创建输入 /// public class PersonnelGroupCreateInput { #region 基础信息 /// /// 人员组名称 /// [Required(ErrorMessage = "人员组名称不能为空")] [MaxLength(200, ErrorMessage = "人员组名称长度不能超过200个字符")] public string GroupName { get; set; } = ""; /// /// 人员组描述 /// [MaxLength(500, ErrorMessage = "人员组描述长度不能超过500个字符")] public string Description { get; set; } = ""; /// /// 人员组类型 /// public PersonnelGroupTypeEnum GroupType { get; set; } = PersonnelGroupTypeEnum.Mixed; /// /// 是否启用 /// public bool IsEnabled { get; set; } = true; #endregion #region 静态人员配置 /// /// 静态人员ID列表 /// public List StaticPersonnelIds { get; set; } = new List(); #endregion #region 动态规则配置 /// /// 动态规则:部门ID列表 /// 当GroupType包含DynamicByDepartment时有效 /// public List DynamicDepartmentIds { get; set; } = new List(); /// /// 动态规则:职位列表 /// 当GroupType包含DynamicByPosition时有效 /// public List DynamicPositions { get; set; } = new List(); /// /// 动态规则:是否仅包含激活人员 /// public bool OnlyActivePersonnel { get; set; } = true; #endregion #region 排除规则 /// /// 排除人员ID列表 /// 在动态规则生成的人员列表中排除这些人员 /// public List ExcludePersonnelIds { get; set; } = new List(); #endregion }