using System;
using System.Collections.Generic;

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

/// <summary>
/// 班次推荐输出
/// </summary>
public class ShiftRecommendationOutput
{
    /// <summary>
    /// 推荐结果列表
    /// </summary>
    public List<ShiftRecommendationItem> Recommendations { get; set; } = new List<ShiftRecommendationItem>();

    /// <summary>
    /// 推荐算法执行时间
    /// </summary>
    public TimeSpan ExecutionTime { get; set; }

    /// <summary>
    /// 推荐质量评分
    /// </summary>
    public double QualityScore { get; set; }

    /// <summary>
    /// 推荐说明
    /// </summary>
    public string Description { get; set; }
}

/// <summary>
/// 班次推荐项
/// </summary>
public class ShiftRecommendationItem
{
    /// <summary>
    /// 人员ID
    /// </summary>
    public long PersonnelId { get; set; }

    /// <summary>
    /// 班次ID
    /// </summary>
    public long ShiftId { get; set; }

    /// <summary>
    /// 推荐日期
    /// </summary>
    public DateTime AssignmentDate { get; set; }

    /// <summary>
    /// 推荐优先级
    /// </summary>
    public int Priority { get; set; }

    /// <summary>
    /// 推荐原因
    /// </summary>
    public string Reason { get; set; }

    /// <summary>
    /// 匹配度评分
    /// </summary>
    public double MatchScore { get; set; }
} 