using System.ComponentModel.DataAnnotations;
using static Lada.Framework.Data.Enums.OrderFinEnum;

namespace Ladaer.BackEnd.Infrastructures.DTO.Models.Orders
{
    public class OrderFinModel
    {

        public int ChargeWeight { get; set; }
        public decimal CollectAmount { get; set; }
        public bool CodIncludeFee { get; set; } = true;
        public PayFeeType PayFeeType { get; set; }
        public decimal Fee { get; set; }
        public decimal VatFee { get; set; }
        public decimal CodFee { get; set; }
        public decimal InsuranceFee { get; set; }
        public decimal PickupSubFee { get; set; }
        public decimal DeliverySubFee { get; set; }
        public decimal ReturnFee { get; set; }
        public decimal Discount { get; set; }

        public decimal TotalFee { get; set; }
        public decimal SourceFee { get; set; }
        public decimal DestFee { get; set; }

        /// <summary>
        /// ID thông tin xuất hóa đơn VAT (null nếu không xuất VAT)
        /// </summary>
        public int? VatInfoId { get; set; }


        /// <summary>
        /// Tiền đối soát dựa trên PayFeeType
        /// </summary>
        public decimal ReconciliationAmount { get; set; }
        public int CodCashierId { get; set; } = 0;
        public string CodCashierUsername { get; set; } = "";

        public int SourceFeeCashierId { get; set; } = 0;
        public string SourceFeeCashierUsername { get; set; } = "";
        public int DestFeeCashierId { get; set; } = 0;
        public string DestFeeCashierUsername { get; set; } = "";



        /// <summary>
        /// Cước chuyển khoản
        /// </summary>
        public decimal TransferFee { get; set; }

        /// <summary>
        /// Người giữ tiền cước thu từ chuyển khoản
        /// </summary>
        public int TransferFeeCashierId { get; set; }

        public string TransferFeeCashierUsername { get; set; } = string.Empty;


        /// <summary>
        /// Cước chuyển khoản
        /// </summary>
        public decimal DeductCodFee { get; set; }

        /// <summary>
        /// Người giữ tiền cước thu từ chuyển khoản
        /// </summary>
        public int DeductCodFeeCashierId { get; set; }

        public string DeductCodFeeCashierUsername { get; set; } = string.Empty;

    }
}
