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

namespace Ladaer.BackEnd.Infrastructures.DTO.Models.Orders.Shared
{
    /// <summary>
    /// Model để cập nhật thông tin tài chính đơn hàng.
    /// </summary>
    public class UpdateOrderFinModel
    {
        /// <summary>
        /// ID của tài chính đơn hàng (cũng chính là OrderId).
        /// </summary>
        public int Id { get; set; }

        /// <summary>
        /// Số tiền thu hộ.
        /// </summary>
        public decimal CollectAmount { get; set; }

        /// <summary>
        /// Loại phí thanh toán.
        /// </summary>
        public PayFeeType PayFeeType { get; set; }

        /// <summary>
        /// Giảm giá.
        /// </summary>
        public decimal Discount { get; set; }

        /// <summary>
        /// Phí phụ thu khi lấy hàng.
        /// </summary>
        public decimal PickupSubFee { get; set; }

        /// <summary>
        /// Phí phụ thu khi giao hàng.
        /// </summary>
        public decimal DeliverySubFee { get; set; }

        /// <summary>
        /// Phí.
        /// </summary>
        public decimal Fee { get; set; }

        /// <summary>
        /// Phí COD.
        /// </summary>
        public decimal CodFee { get; set; }

        /// <summary>
        /// Tổng phí.
        /// </summary>
        public decimal TotalFee { get; set; }

        /// <summary>
        /// Phí nguồn.
        /// </summary>
        public decimal SourceFee { get; set; }

        /// <summary>
        /// Phí đích.
        /// </summary>
        public decimal DestFee { get; set; }

        /// <summary>
        /// ID của người cập nhật.
        /// </summary>
        public int UpdatedBy { get; set; }

        /// <summary>
        /// Tên người cập nhật.
        /// </summary>
        public string UpdatedByUserName { get; set; }
    }
}
