namespace Ladaer.BackEnd.Infrastructures.DTO.Reports.Items.FuelCards
{
    /// <summary>
    /// Item báo cáo đổ dầu theo lái xe
    /// </summary>
    public class FuelRefillReportByDriverItem
    {
        /// <summary>
        /// ID lái xe
        /// </summary>
        public int DriverId { get; set; }

        /// <summary>
        /// Tên đăng nhập lái xe
        /// </summary>
        public string DriverUserName { get; set; } = string.Empty;

        /// <summary>
        /// Họ và tên lái xe
        /// </summary>
        public string DriverFullName { get; set; } = string.Empty;

        /// <summary>
        /// Số km chạy trong tháng (tổng DistanceKm)
        /// </summary>
        public int TotalDistanceKm { get; set; }

        /// <summary>
        /// Số lít đổ dầu thực tế (tổng ActualLiters)
        /// </summary>
        public decimal TotalActualLiters { get; set; }

        /// <summary>
        /// Số tiền đổ dầu thực tế (tổng Amount)
        /// </summary>
        public decimal TotalActualAmount { get; set; }

        /// <summary>
        /// Số lít dầu khoán (tổng QuotaLiters)
        /// </summary>
        public decimal TotalQuotaLiters { get; set; }

        /// <summary>
        /// Số tiền đổ dầu khoán (tổng QuotaLiters * UnitPrice)
        /// </summary>
        public decimal TotalQuotaAmount { get; set; }

        /// <summary>
        /// Số tiền thu nhập dầu (tổng (QuotaLiters - ActualLiters) * UnitPrice)
        /// Giá trị dương: lái xe được hưởng (đổ ít hơn định mức)
        /// Giá trị âm: lái xe phải bù (đổ nhiều hơn định mức)
        /// </summary>
        public decimal TotalFuelIncome { get; set; }

        /// <summary>
        /// Chi tiết số liệu theo từng xe mà lái xe đã chạy
        /// </summary>
        public List<FuelRefillReportByTruckItem> TruckDetails { get; set; } = new();
    }
}
