using System.Collections.Generic;

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

/// <summary>
/// 整合记录任务修改输入
/// 用于手动修改整合记录中的任务分配信息
/// </summary>
public class IntegrationRecordTaskModifyInput
{
    /// <summary>
    /// 整合记录ID
    /// </summary>
    public long IntegrationRecordId { get; set; }

    /// <summary>
    /// 操作员用户ID
    /// </summary>
    public long OperatorUserId { get; set; }

    /// <summary>
    /// 操作员用户名
    /// </summary>
    public string OperatorUserName { get; set; } = string.Empty;

    /// <summary>
    /// 任务修改列表
    /// </summary>
    public List<TaskModificationInput> TaskModifications { get; set; } = new();

    /// <summary>
    /// 修改原因说明
    /// </summary>
    public string ModificationReason { get; set; } = string.Empty;

    /// <summary>
    /// 是否强制执行（忽略部分警告）
    /// </summary>
    public bool ForceExecute { get; set; } = false;
}

/// <summary>
/// 单个任务修改输入
/// </summary>
public class TaskModificationInput
{
    /// <summary>
    /// 任务ID
    /// </summary>
    public long TaskId { get; set; }

    /// <summary>
    /// 任务代码（可选，用于显示）
    /// </summary>
    public string? TaskCode { get; set; }

    /// <summary>
    /// 新的人员ID（可选）
    /// </summary>
    public long? NewPersonnelId { get; set; }

    /// <summary>
    /// 新的人员姓名（可选）
    /// </summary>
    public string? NewPersonnelName { get; set; }

    /// <summary>
    /// 新的设备ID（可选）
    /// </summary>
    public long? NewEquipmentId { get; set; }

    /// <summary>
    /// 新的设备名称（可选）
    /// </summary>
    public string? NewEquipmentName { get; set; }

    /// <summary>
    /// 修改备注
    /// </summary>
    public string ModificationNote { get; set; } = string.Empty;
}