using System.Collections.Generic;

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

/// <summary>
/// 可用设备输出
/// </summary>
public class AvailableEquipmentOutput
{
    /// <summary>
    /// 任务ID
    /// </summary>
    public long WorkOrderId { get; set; }

    /// <summary>
    /// 任务代码
    /// </summary>
    public string WorkOrderCode { get; set; } = "";

    /// <summary>
    /// 可用设备列表
    /// </summary>
    public List<AvailableEquipmentInfo> AvailableEquipment { get; set; } = new List<AvailableEquipmentInfo>();

    /// <summary>
    /// 总可用设备数量
    /// </summary>
    public int TotalAvailableCount { get; set; }

    /// <summary>
    /// 查询结果摘要
    /// </summary>
    public string Summary { get; set; } = "";
}

/// <summary>
/// 可用设备信息
/// </summary>
public class AvailableEquipmentInfo
{
    /// <summary>
    /// 设备ID
    /// </summary>
    public long EquipmentId { get; set; }

    /// <summary>
    /// 设备名称
    /// </summary>
    public string EquipmentName { get; set; } = "";

    /// <summary>
    /// 内部编号
    /// </summary>
    public string InternalNumber { get; set; } = "";

    /// <summary>
    /// 设备型号
    /// </summary>
    public string Model { get; set; } = "";

    /// <summary>
    /// 设备类型
    /// </summary>
    public string EquipmentType { get; set; } = "";

    /// <summary>
    /// 房间号
    /// </summary>
    public string RoomNumber { get; set; } = "";

    /// <summary>
    /// 设备位置
    /// </summary>
    public string Location { get; set; } = "";

    /// <summary>
    /// 当前状态（0-正常，1-维护，2-校验，3-故障，4-报废）
    /// </summary>
    public int Status { get; set; }

    /// <summary>
    /// 状态描述
    /// </summary>
    public string StatusDescription { get; set; } = "";

    /// <summary>
    /// 设备负责人
    /// </summary>
    public string ResponsiblePersonName { get; set; } = "";

    /// <summary>
    /// 可用度评分（1-10，10分最优）
    /// </summary>
    public int AvailabilityScore { get; set; }

    /// <summary>
    /// 使用率（百分比）
    /// </summary>
    public double UsageRate { get; set; }

    /// <summary>
    /// 是否推荐使用
    /// </summary>
    public bool IsRecommended { get; set; }

    /// <summary>
    /// 备注信息
    /// </summary>
    public string Remarks { get; set; } = "";
}