using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; using NPP.SmartSchedue.Api.Contracts.Core.Enums; namespace NPP.SmartSchedue.Api.Contracts.Services.Time.Input; /// /// 批量单元格编辑操作输入模型 /// 用于批量修改班次不可用标记的复杂操作 /// public class BatchCellEditInput { /// /// 单元格操作列表 /// [Required(ErrorMessage = "单元格操作列表不能为空")] [MinLength(1, ErrorMessage = "至少需要指定一个操作")] public List CellOperations { get; set; } = new(); /// /// 是否标记为模板生成 /// public bool MarkAsTemplate { get; set; } = false; /// /// 操作备注 /// [StringLength(200, ErrorMessage = "备注长度不能超过200字符")] public string Remark { get; set; } } /// /// 单个单元格操作定义 /// 包含操作类型和目标信息 /// public class BatchCellOperation { /// /// 操作类型 /// [Required(ErrorMessage = "操作类型不能为空")] public BatchCellOperationType Operation { get; set; } /// /// 员工ID /// [Required(ErrorMessage = "员工ID不能为空")] public long PersonnelId { get; set; } /// /// 日期 /// [Required(ErrorMessage = "日期不能为空")] public DateTime Date { get; set; } /// /// 班次ID /// [Required(ErrorMessage = "班次ID不能为空")] public long ShiftId { get; set; } /// /// 不可用原因类型(Set操作时必填) /// public UnavailabilityReasonType? ReasonType { get; set; } /// /// 备注说明 /// [StringLength(200, ErrorMessage = "备注长度不能超过200字符")] public string Remark { get; set; } /// /// 优先级权重 /// [Range(1, 100, ErrorMessage = "优先级权重必须在1-100之间")] public int? Priority { get; set; } /// /// 生效开始时间 /// public DateTime? EffectiveStartTime { get; set; } /// /// 生效结束时间 /// public DateTime? EffectiveEndTime { get; set; } }