using Ladaer.BackEnd.Infrastructures.DTO.Items.Hr;
using Ladaer.BackEnd.Infrastructures.DTO.Items.Trucks;

namespace Ladaer.BackEnd.Infrastructures.DTO.Models.DriverApp
{
    public class DashboardModel
    {
        #region Thông tin đơn hàng
        public int TotalPickupOrders { get; set; }
        public int TotalDeliveryOrders { get; set; }
        public int PickingupOrders { get; set; }
        public int DeliveryingOrders { get; set; }
        public int PickedupOrders { get; set; }
        public int DeliveredOrders { get; set; }
        #endregion

        #region Các số liệu về tiền
        public decimal TotalSourceFee { get; set; }
        public decimal TotalDestFee { get; set; }
        public decimal TotalCollectAmount { get; set; }
        #endregion

        #region Thông tin chấm công
        /// <summary>
        /// Thông tin chấm công hiện tại (nếu đã check-in nhưng chưa check-out)
        /// </summary>
        public AttendanceItem? CurrentAttendance { get; set; }

        /// <summary>
        /// Đã check-in hôm nay chưa
        /// </summary>
        public bool HasCheckedInToday { get; set; }

        /// <summary>
        /// Đã check-out hôm nay chưa
        /// </summary>
        public bool HasCheckedOutToday { get; set; }

        /// <summary>
        /// Thời gian check-in hôm nay (nếu có)
        /// </summary>
        public string? TodayCheckInTime { get; set; }

        /// <summary>
        /// Thời gian check-out hôm nay (nếu có)
        /// </summary>
        public string? TodayCheckOutTime { get; set; }

        /// <summary>
        /// ODO khi check-in hôm nay
        /// </summary>
        public int? TodayCheckInOdo { get; set; }

        /// <summary>
        /// ODO khi check-out hôm nay
        /// </summary>
        public int? TodayCheckOutOdo { get; set; }
        #endregion

        #region Thông tin xe đang phụ trách
        /// <summary>
        /// Thông tin xe đang phụ trách (nếu có)
        /// </summary>
        public TruckItem? CurrentTruck { get; set; }

        /// <summary>
        /// Có đang phụ trách xe nào không
        /// </summary>
        public bool HasAssignedTruck { get; set; }

        /// <summary>
        /// Biển số xe đang phụ trách
        /// </summary>
        public string? CurrentTruckLicensePlate { get; set; }

        /// <summary>
        /// Tên đại lý của xe đang phụ trách
        /// </summary>
        public string? CurrentTruckAgencyName { get; set; }

        /// <summary>
        /// ODO gần nhất của xe đang phụ trách
        /// </summary>
        public int? CurrentTruckLatestOdo { get; set; }
        #endregion
    }
}