using System;

namespace BBWY.Client.Models
{
    public class BillCorrectionOrder : NotifyObject
    {
        private string changedContent;

        private decimal newDeliveryExpressFreight;

        /// <summary>
        /// 订单号
        /// </summary>
        public string OrderId { get; set; }

        public long ShopId { get; set; }

        /// <summary>
        /// 订单状态
        /// </summary>
        public OrderState? OrderState { get; set; }

        /// <summary>
        /// 订单开始日期
        /// </summary>
        public DateTime? StartTime { get; set; }

        /// <summary>
        /// 发货类型
        /// </summary>
        public StorageType? StorageType { get; set; }

        /// <summary>
        /// 销售运费
        /// </summary>
        public decimal DeliveryExpressFreight { get; set; } = 0.00M;

        /// <summary>
        /// Sku成本(商品成本)
        /// </summary>
        public decimal SkuAmount { get; set; } = 0.00M;

        /// <summary>
        /// 采购运费
        /// </summary>
        public decimal PurchaseFreight { get; set; } = 0.00M;

        /// <summary>
        /// 头程运费
        /// </summary>
        public decimal FirstFreight { get; set; } = 0.00M;

        /// <summary>
        /// 入仓操作费
        /// </summary>
        public decimal InStorageAmount { get; set; } = 0.00M;

        /// <summary>
        /// 出仓操作费
        /// </summary>
        public decimal OutStorageAmount { get; set; } = 0.00M;

        /// <summary>
        /// 耗材费
        /// </summary>
        public decimal ConsumableAmount { get; set; } = 0.00M;

        /// <summary>
        /// 仓储费
        /// </summary>
        public decimal StorageAmount { get; set; } = 0.00M;

        /// <summary>
        /// 售后费用
        /// </summary>
        public decimal AfterTotalCost { get; set; }

        /// <summary>
        /// 矫正内容
        /// </summary>
        public string ChangedContent { get => changedContent; set { Set(ref changedContent, value); } }

        /// <summary>
        /// 新销售运费
        /// </summary>
        public decimal NewDeliveryExpressFreight { get => newDeliveryExpressFreight; set { Set(ref newDeliveryExpressFreight, value); } }

        public string WaybillNo { get; set; }
    }
}