using Ladaer.BackEnd.Infrastructures.DTO.Items.DriverApp;
using Ladaer.BackEnd.Infrastructures.DTO.Models.Finances;

namespace Ladaer.BackEnd.Infrastructures.DTO.Models.DriverApp
{
    /// <summary>
    /// Model chứa thông tin tài chính của lái xe
    /// </summary>
    public class DriverFinModel
    {
        /// <summary>
        /// Tổng số tiền cước lấy hàng (SourceFee) lái xe đang cầm
        /// </summary>
        public decimal TotalSourceFee { get; set; }

        /// <summary>
        /// Tổng số tiền cước giao hàng (DestFee) lái xe đang cầm
        /// </summary>
        public decimal TotalDestFee { get; set; }

        /// <summary>
        /// Tổng số tiền thu hộ (COD) lái xe đang cầm
        /// </summary>
        public decimal TotalCollectAmount { get; set; }

        /// <summary>
        /// Tổng số tiền lái xe đang cầm (SourceFee + DestFee + CollectAmount)
        /// </summary>
        public decimal TotalAmount => TotalSourceFee + TotalDestFee + TotalCollectAmount;

        /// <summary>
        /// Danh sách 10 đơn gần đây nhất mà lái xe đang cầm tiền
        /// </summary>
        public List<DriverFinOrderItem> RecentOrders { get; set; } = new List<DriverFinOrderItem>();
    }

    /// <summary>
    /// Model chứa thông tin đơn hàng mà lái xe đang cầm tiền
    /// </summary>
    public class DriverFinOrderModel
    {
        /// <summary>
        /// ID của đơn hàng
        /// </summary>
        public int OrderId { get; set; }

        /// <summary>
        /// Mã đơn hàng
        /// </summary>
        public string OrderCode { get; set; } = string.Empty;

        /// <summary>
        /// Số tiền cước lấy hàng (SourceFee) của đơn này
        /// </summary>
        public decimal SourceFee { get; set; }

        /// <summary>
        /// Số tiền cước giao hàng (DestFee) của đơn này
        /// </summary>
        public decimal DestFee { get; set; }

        /// <summary>
        /// Số tiền thu hộ (COD) của đơn này
        /// </summary>
        public decimal CollectAmount { get; set; }

        /// <summary>
        /// Tổng số tiền của đơn này
        /// </summary>
        public decimal TotalAmount => SourceFee + DestFee + CollectAmount;

        /// <summary>
        /// Ngày tạo đơn hàng
        /// </summary>
        public DateTime CreatedDate { get; set; }

        /// <summary>
        /// Ghi chú
        /// </summary>
        public string Note { get; set; } = string.Empty;
    }
}
