using Ladaer.BackEnd.Infrastructures.DTO.Items.Finance;

namespace Ladaer.BackEnd.Infrastructures.DTO.Models.Finance
{
    /// <summary>
    /// Model chứa thông tin khách hàng và danh sách đơn hàng có thể tạo hóa đơn thanh toán
    /// </summary>
    public class CustomerTransferableOrdersModel
    {
        /// <summary>
        /// Thông tin khách hàng
        /// </summary>
        public CustomerInfoModel Customer { get; set; } = new CustomerInfoModel();

        /// <summary>
        /// Danh sách đơn hàng có thể tạo hóa đơn thanh toán
        /// </summary>
        public List<TransferPaymentBillOrderItem> Orders { get; set; } = new List<TransferPaymentBillOrderItem>();

        /// <summary>
        /// Tổng số đơn hàng
        /// </summary>
        public int TotalOrders => Orders.Count;

        /// <summary>
        /// Tổng tiền TransferFee
        /// </summary>
        public decimal TotalAmount => Orders.Sum(o => o.TransferFeeAmount);
    }

    /// <summary>
    /// Model thông tin khách hàng
    /// </summary>
    public class CustomerInfoModel
    {
        /// <summary>
        /// ID khách hàng
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// Tên khách hàng
        /// </summary>
        public string FullName { get; set; } = string.Empty;

        /// <summary>
        /// Số điện thoại khách hàng
        /// </summary>
        public string PhoneNumber { get; set; } = string.Empty;

        /// <summary>
        /// Email khách hàng
        /// </summary>
        public string Email { get; set; } = string.Empty;

        /// <summary>
        /// Địa chỉ khách hàng
        /// </summary>
        public string Address { get; set; } = string.Empty;

        /// <summary>
        /// Username khách hàng
        /// </summary>
        public string UserName { get; set; } = string.Empty;
    }
}
