using System;
using System.Collections.Generic;
using NPP.SmartSchedue.Api.Contracts.Core.Enums;
namespace NPP.SmartSchedue.Api.Contracts.Services.Time.Output;
///
/// 网格视图数据输出模型
/// 用于前端网格组件的数据展示
///
public class GridDataOutput
{
///
/// 网格数据:日期 -> (班次ID -> 单元格数据) 的嵌套字典
///
public Dictionary> Grid { get; set; } = new();
///
/// 班次信息列表
///
public List Shifts { get; set; } = new();
///
/// 日期列表(按顺序)
///
public List Dates { get; set; } = new();
///
/// 统计信息
///
public GridStatistics Statistics { get; set; } = new();
///
/// 月份信息
///
public string MonthDisplay { get; set; }
///
/// 员工信息
///
public PersonnelInfo Personnel { get; set; }
}
///
/// 网格单元格数据
///
public class CellData
{
///
/// 是否不可用
///
public bool IsUnavailable { get; set; }
///
/// 不可用原因类型(如果不可用)
///
public UnavailabilityReasonType? ReasonType { get; set; }
///
/// 显示符号
///
public string DisplaySymbol { get; set; }
///
/// CSS样式类名
///
public string CssClass { get; set; }
///
/// 备注信息
///
public string Remark { get; set; }
///
/// 优先级
///
public int Priority { get; set; }
///
/// 是否为模板生成
///
public bool IsFromTemplate { get; set; }
///
/// 记录ID(用于编辑操作)
///
public long? RecordId { get; set; }
///
/// 工具提示文本
///
public string TooltipText { get; set; }
}
///
/// 班次信息
///
public class ShiftInfo
{
///
/// 班次ID
///
public long Id { get; set; }
///
/// 班次名称
///
public string Name { get; set; }
///
/// 班次编号
///
public int ShiftNumber { get; set; }
///
/// 开始时间
///
public TimeSpan StartTime { get; set; }
///
/// 结束时间
///
public TimeSpan EndTime { get; set; }
///
/// 时间范围显示
///
public string TimeRange { get; set; }
///
/// 是否启用
///
public bool IsEnabled { get; set; }
}
///
/// 网格统计信息
///
public class GridStatistics
{
///
/// 总不可用次数
///
public int TotalCount { get; set; }
///
/// 按班次统计:班次ID -> 不可用次数
///
public Dictionary ShiftCounts { get; set; } = new();
///
/// 按原因类型统计:原因类型 -> 不可用次数
///
public Dictionary ReasonTypeCounts { get; set; } = new();
///
/// 按分组统计:分组 -> 不可用次数
///
public Dictionary CategoryCounts { get; set; } = new();
///
/// 模板生成的记录数
///
public int TemplateGeneratedCount { get; set; }
///
/// 手动创建的记录数
///
public int ManualCreatedCount { get; set; }
}
///
/// 员工信息
///
public class PersonnelInfo
{
///
/// 员工ID
///
public long Id { get; set; }
///
/// 员工姓名
///
public string Name { get; set; }
///
/// 员工工号
///
public string Code { get; set; }
///
/// 部门名称
///
public string DepartmentName { get; set; }
///
/// 职位名称
///
public string PositionName { get; set; }
}