using SqlSugar;

namespace MDL.DTOs
{
    /// <summary>
    /// 客户维度每日标签换单统计DTO
    /// </summary>
    public class CustomerDailyLabelStatsDto
    {
        /// <summary>
        /// 客户ID
        /// </summary>
        [SugarColumn(ColumnName = "CustomerId")]
        public int CustomerId { get; set; }

        /// <summary>
        /// 客户代码
        /// </summary>
        [SugarColumn(ColumnName = "CustomerCode")]
        public string CustomerCode { get; set; }

        /// <summary>
        /// 统计日期（yyyy-MM-dd）
        /// </summary>
        [SugarColumn(ColumnName = "日期")]
        public string Date { get; set; }

        /// <summary>
        /// 客户标签率（%）
        /// </summary>
        [SugarColumn(ColumnName = "客户标签率")]
        public string CustomerLabelRate { get; set; }

        /// <summary>
        /// 该客户该日期的总订单数
        /// </summary>
        [SugarColumn(ColumnName = "总订单数")]
        public int TotalRequests { get; set; }

        /// <summary>
        /// 该客户该日期有标签的订单数
        /// </summary>
        [SugarColumn(ColumnName = "有标签订单数")]
        public int LabeledRequests { get; set; }

        /// <summary>
        /// 16点前到仓的包裹数
        /// </summary>
        [SugarColumn(ColumnName = "16点前到仓包裹数")]
        public int BeforeNoonArrivedCount { get; set; }

        /// <summary>
        /// 16点后到仓的包裹数
        /// </summary>
        [SugarColumn(ColumnName = "16点后到仓包裹数")]
        public int AfternoonArrivedCount { get; set; }

        /// <summary>
        /// 16点前考核通过的包裹数
        /// </summary>
        [SugarColumn(ColumnName = "16点前考核通过包裹数")]
        public int BeforeNoonPassedCount { get; set; }

        /// <summary>
        /// 16点后考核通过的包裹数
        /// </summary>
        [SugarColumn(ColumnName = "16点后考核通过包裹数")]
        public int AfternoonPassedCount { get; set; }

        /// <summary>
        /// 当日新增换单数
        /// </summary>
        [SugarColumn(ColumnName = "当日新增换单数")]
        public int DailyNewReplaceCount { get; set; }

        /// <summary>
        /// 当日换单成功数
        /// </summary>
        [SugarColumn(ColumnName = "当日换单成功数")]
        public int DailySuccessCount { get; set; }

        /// <summary>
        /// 当日换单失败数
        /// </summary>
        [SugarColumn(ColumnName = "当日换单失败数")]
        public int DailyFailureCount { get; set; }

        /// <summary>
        /// 当日完成数
        /// </summary>
        [SugarColumn(ColumnName = "当日完成数")]
        public int DailyCompletedCount { get; set; }

        /// <summary>
        /// 当天换单完成率（%）
        /// </summary>
        [SugarColumn(ColumnName = "当天换单完成率")]
        public string DailyCompletionRate { get; set; }

        /// <summary>
        /// 24小时换单完成率（%）
        /// </summary>
        [SugarColumn(ColumnName = "24H换单率")]
        public string Rate24Hour { get; set; }

        /// <summary>
        /// 数据拉取时间（UTC-5）
        /// </summary>
        [SugarColumn(ColumnName = "数据拉取时间")]
        public DateTime DataFetchTime { get; set; }
    }
}
