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

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

/// <summary>
/// 工作任务分配修改请求
/// </summary>
public class WorkOrderAssignmentRequest
{
    /// <summary>
    /// 任务ID
    /// </summary>
    [Required(ErrorMessage = "任务ID不能为空")]
    public long WorkOrderId { get; set; }

    /// <summary>
    /// 任务实施人员ID（可为空，表示取消分配）
    /// </summary>
    public long? AssignedPersonnelId { get; set; }

    /// <summary>
    /// 任务实施人员姓名
    /// </summary>
    [MaxLength(100, ErrorMessage = "人员姓名长度不能超过100个字符")]
    public string AssignedPersonnelName { get; set; }

    /// <summary>
    /// 任务设备ID（可为空，表示取消分配）
    /// </summary>
    public long? AssignedEquipmentId { get; set; }

    /// <summary>
    /// 任务设备名称
    /// </summary>
    [MaxLength(200, ErrorMessage = "设备名称长度不能超过200个字符")]
    public string AssignedEquipmentName { get; set; }

    /// <summary>
    /// FL人员信息列表（完整替换现有分配）
    /// </summary>
    public List<FLPersonnelUpdateInfo> FLPersonnels { get; set; } = new List<FLPersonnelUpdateInfo>();

    /// <summary>
    /// 是否强制更新（忽略冲突警告）
    /// </summary>
    public bool ForceUpdate { get; set; } = false;

    /// <summary>
    /// 修改原因
    /// </summary>
    [MaxLength(500, ErrorMessage = "修改原因长度不能超过500个字符")]
    public string UpdateReason { get; set; } = "";
}