using System;
using System.Collections.Generic;

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

/// <summary>
/// 任务冲突检查输入参数
/// </summary>
public class TaskConflictCheckInput
{
    /// <summary>
    /// 任务ID列表
    /// </summary>
    public List<long> TaskIds { get; set; } = new List<long>();
    
    /// <summary>
    /// 检查时间范围开始
    /// </summary>
    public DateTime? StartDate { get; set; }
    
    /// <summary>
    /// 检查时间范围结束
    /// </summary>
    public DateTime? EndDate { get; set; }
    
    /// <summary>
    /// 人员ID（可选，只检查指定人员的冲突）
    /// </summary>
    public long? PersonnelId { get; set; }
    
    /// <summary>
    /// 设备ID（可选，只检查指定设备的冲突）
    /// </summary>
    public long? EquipmentId { get; set; }
    
    /// <summary>
    /// 是否检查时间冲突
    /// </summary>
    public bool CheckTimeConflicts { get; set; } = true;
    
    /// <summary>
    /// 是否检查技能冲突
    /// </summary>
    public bool CheckSkillConflicts { get; set; } = true;
    
    /// <summary>
    /// 是否检查资源冲突
    /// </summary>
    public bool CheckResourceConflicts { get; set; } = true;
}