using Lada.Framework.DTO;

namespace Ladaer.BackEnd.Infrastructures.DTO.Items.Finances
{
    /// <summary>
    /// Item đơn hàng trong đối soát
    /// </summary>
    public class ReconciliationOrderItem : BaseItem<int>
    {
        /// <summary>
        /// ID đối soát
        /// </summary>
        public int ReconciliationId { get; set; }

        /// <summary>
        /// ID đơn hàng
        /// </summary>
        public int OrderId { get; set; }

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

        /// <summary>
        /// Mã đối tác
        /// </summary>
        public string PartnerCode { get; set; } = string.Empty;

        /// <summary>
        /// Tiền COD
        /// </summary>
        public decimal CodAmount { get; set; }

        /// <summary>
        /// Phí trừ
        /// </summary>
        public decimal FeeAmount { get; set; }

        /// <summary>
        /// Tiền thực tế
        /// </summary>
        public decimal NetAmount { get; set; }

        /// <summary>
        /// Ngày giao hàng
        /// </summary>
        public DateTimeOffset? DeliveredDate { get; set; }

        /// <summary>
        /// Ngày thu COD
        /// </summary>
        public DateTimeOffset? CodCollectedDate { get; set; }

        /// <summary>
        /// Trọng lượng tính cước
        /// </summary>
        public decimal ChargeWeight { get; set; }

        /// <summary>
        /// Cước vận chuyển
        /// </summary>
        public decimal ShippingFee { get; set; }

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

        /// <summary>
        /// Tên người nhận
        /// </summary>
        public string ReceiverName { get; set; } = string.Empty;

        /// <summary>
        /// Số điện thoại người nhận
        /// </summary>
        public string ReceiverPhone { get; set; } = string.Empty;

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