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
}