using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace NPP.SmartSchedue.Api.Contracts.Services.Time.Input;

/// <summary>
/// 模板复制输入模型
/// 用于将某个日期的班次不可用设置复制到其他日期
/// </summary>
public class TemplateCopyInput
{
    /// <summary>
    /// 员工ID
    /// </summary>
    [Required(ErrorMessage = "员工ID不能为空")]
    public long PersonnelId { get; set; }

    /// <summary>
    /// 模板来源日期
    /// </summary>
    [Required(ErrorMessage = "模板来源日期不能为空")]
    public DateTime SourceDate { get; set; }

    /// <summary>
    /// 目标日期列表
    /// </summary>
    [Required(ErrorMessage = "目标日期列表不能为空")]
    [MinLength(1, ErrorMessage = "至少需要指定一个目标日期")]
    public List<DateTime> TargetDates { get; set; }

    /// <summary>
    /// 是否覆盖已有标记
    /// true: 覆盖已存在的记录, false: 跳过已存在的记录
    /// </summary>
    public bool OverwriteExisting { get; set; } = false;

    /// <summary>
    /// 复制操作的备注
    /// </summary>
    [StringLength(200, ErrorMessage = "备注长度不能超过200字符")]
    public string CopyRemark { get; set; }
}