using System;

namespace MDL.DTOs
{
    /// <summary>
    /// 24小时完成率和每日统计DTO
    /// </summary>
    public class Daily24HCompletionRateDto
    {
        /// <summary>
        /// 日期（UTC-5）
        /// </summary>
        public DateTime Date { get; set; }

        /// <summary>
        /// 当天新增换单数
        /// </summary>
        public int DailyNewReplaceCount { get; set; }

        /// <summary>
        /// 累计要换的总单数
        /// </summary>
        public int CumulativeTotalReplaceCount { get; set; }

        /// <summary>
        /// 换单失败未完结订单
        /// </summary>
        public int UnfinishedFailureCount { get; set; }

        /// <summary>
        /// 当日换单失败
        /// </summary>
        public int DailyFailureCount { get; set; }

        /// <summary>
        /// 当日换单成功数
        /// </summary>
        public int DailySuccessCount { get; set; }

        /// <summary>
        /// 当日STOP数
        /// </summary>
        public int DailyStopCount { get; set; }

        /// <summary>
        /// 当天应该换单数
        /// </summary>
        public int DailyShouldReplaceCount { get; set; }

        /// <summary>
        /// 标签率 >= 80% 的订单数
        /// </summary>
        public int HighLabelRateOrderCount { get; set; }

        /// <summary>
        /// 按时完成的订单数
        /// </summary>
        public int CompletedOnTimeCount { get; set; }

        /// <summary>
        /// 24小时完成率（百分比字符串，如 "95.50%"）
        /// </summary>
        public string Rate24Hour { get; set; }

        /// <summary>
        /// 当天换单完成率（百分比字符串，如 "95.50%"）
        /// </summary>
        public string DailyCompletionRate { get; set; }

        /// <summary>
        /// 当日标签推送数
        /// </summary>
        public int DailyLabelPushCount { get; set; }

        /// <summary>
        /// 当日扫描数（不去重）
        /// </summary>
        public int DailyScanCount { get; set; }

        /// <summary>
        /// 16点前到仓包裹数
        /// </summary>
        public int BeforeNoonArrivedCount { get; set; }

        /// <summary>
        /// 16点后到仓包裹数
        /// </summary>
        public int AfternoonArrivedCount { get; set; }

        /// <summary>
        /// 16点前考核通过包裹数
        /// </summary>
        public int BeforeNoonPassedCount { get; set; }

        /// <summary>
        /// 16点后考核通过包裹数
        /// </summary>
        public int AfternoonPassedCount { get; set; }

        /// <summary>
        /// 数据拉取时间（UTC-5）
        /// </summary>
        public DateTime DataFetchTime { get; set; }
    }
}
