namespace Ladaer.BackEnd.Infrastructures.DTO.StoredProcedureResults
{
    /// <summary>
    /// Result class for sp_GetReconciliableOrdersByCustomer stored procedure
    /// </summary>
    public class ReconciliableOrderSpResult
    {
        public int OrderId { get; set; }
        public string OrderCode { get; set; } = string.Empty;
        public string PartnerCode { get; set; } = string.Empty;
        public string Note { get; set; } = string.Empty;

        // Customer info
        public string CustomerCode { get; set; } = string.Empty;

        // Financial info
        public decimal AppliedCodAmount { get; set; }
        public decimal AppliedFeeAmount { get; set; }
        public decimal NetAmount { get; set; }
        public decimal ChargeWeight { get; set; }
        public decimal ShippingFee { get; set; }
        public DateTimeOffset? CodCollectedDate { get; set; }

        // Time info
        public DateTimeOffset? DeliveredDate { get; set; }

        // Status info
        public int OrderStatus { get; set; }
        public int PhysicalStatus { get; set; }

        // Sender address info
        public string SenderAddress { get; set; } = string.Empty;
        public string SenderName { get; set; } = string.Empty;
        public string SenderPhone { get; set; } = string.Empty;

        // Delivery address info
        public string DeliveryAddress { get; set; } = string.Empty;
        public string ReceiverName { get; set; } = string.Empty;
        public string ReceiverPhone { get; set; } = string.Empty;

        // Product info
        public string ProductInfo { get; set; } = string.Empty;
    }
}
