using System;
using System.Collections.Generic;

namespace BBWY.Client.Models
{
    public class ServiceOrderItemResponse
    {
        public long Id { get; set; }

        /// <summary>
        /// 售后成本(不含退款采购成本)
        /// </summary>
        public decimal? AfterTotalCost { get; set; } = 0.00M;

        /// <summary>
        /// 申请时间
        /// </summary>
        public DateTime? ApplyTime { get; set; }

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

        public DateTime? CreateTime { get; set; }

        /// <summary>
        /// 发货快递费
        /// </summary>
        public decimal? DeliveryExpressFreight { get; set; } = 0.00M;

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

        /// <summary>
        /// 退货拍摄图(名称)
        /// </summary>
        public string ImageName { get; set; }

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

        /// <summary>
        /// 是否订阅快递100
        /// </summary>

        public bool? IsSubscribeKuaiDi100 { get; set; }

        /// <summary>
        /// 是否需要订阅快递100
        /// </summary>
        public bool? IsNeedSubscribeKuaiDi100 { get; set; }

        public string OrderId { get; set; }

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

        /// <summary>
        /// 产品外观 (严重损=0 轻微损=1 新=2)
        /// </summary>

        public ProductAppearance? ProductAppearance { get; set; }

        /// <summary>
        /// 产品功能 (坏=0 好=1)
        /// </summary>

        public ProductFunction? ProductFunction { get; set; }

        /// <summary>
        /// 商品健康状态 (残次品=0 良品=1)
        /// </summary>

        public NewProductHealth? ProductHealth { get; set; }

        public string ProductId { get; set; }

        /// <summary>
        /// 产品包装(无=0 非新=1 新=2)
        /// </summary>

        public ProductPackage? ProductPackage { get; set; }


        /// <summary>
        /// 采购方式
        /// </summary>

        public PurchaseMethod? PurchaseMethod { get; set; }

        /// <summary>
        /// 采购单号
        /// </summary>
        public string PurchaseOrderId { get; set; }

        /// <summary>
        /// 采购单主键
        /// </summary>

        public long? PurchaseOrderPKId { get; set; }

        /// <summary>
        /// 采购平台
        /// </summary>

        public Platform? PurchasePlatform { get; set; }

        /// <summary>
        /// 退款支付宝订单号
        /// </summary>
        public string RefundAlipayOrderNo { get; set; }

        /// <summary>
        /// 退款金额
        /// </summary>
        public decimal? RefundAmount { get; set; } = 0.00M;

        /// <summary>
        /// 退货入仓操作费
        /// </summary>
        public decimal? RefundInStorageAmount { get; set; } = 0.00M;

        /// <summary>
        /// 退款商户订单号
        /// </summary>
        public string RefundMerchantOrderNo { get; set; }

        /// <summary>
        /// 退款采购成本
        /// </summary>
        public decimal? RefundPurchaseAmount { get; set; } = 0.00M;

        /// <summary>
        /// 退款时间
        /// </summary>
        public DateTime? RefundTime { get; set; }

        /// <summary>
        /// 售后补发成本
        /// </summary>
        public decimal? ReissueAfterSaleAmount { get; set; } = 0.00M;

        /// <summary>
        /// 补发快递费
        /// </summary>
        public decimal? ReissueFreight { get; set; } = 0.00M;

        /// <summary>
        /// 补发货款成本
        /// </summary>
        public decimal? ReissueProductAmount { get; set; } = 0.00M;

        /// <summary>
        /// 退货去向(退货仓=0,采购商=1,原返=2,无退货=3)
        /// </summary>

        public ReturnDirection? ReturnDirection { get; set; }

        /// <summary>
        /// SD退货运费
        /// </summary>
        public decimal? SDRefundFreight { get; set; } = 0.00M;

        /// <summary>
        /// 服务单号
        /// </summary>
        public string ServiceId { get; set; }

        /// <summary>
        /// 服务单租备注
        /// </summary>
        public string ServiceOrderRemark { get; set; }

        /// <summary>
        /// 服务单处理结果
        /// </summary>

        public ServiceResult? ServiceResult { get; set; }

        public string ShopId { get; set; }

        public string SkuId { get; set; }

        /// <summary>
        /// SKU销售件数
        /// </summary>

        public int? SkuItemCount { get; set; }

        /// <summary>
        /// 服务单状态 待收货 = 10005,取消 = 10011,完成 = 10010
        /// </summary>

        public ServiceOrderState? Status { get; set; }

        /// <summary>
        /// 变更时间
        /// </summary>
        public DateTime? StatusUpdateTime { get; set; }

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

        /// <summary>
        /// 服务单物流状态(0=待质检,1=已入库,2=派送中,3=运输中)
        /// </summary>

        public TransportState? TransportDetails { get; set; }

        /// <summary>
        /// 仓库组备注
        /// </summary>
        public string WareHouseGrounpRemark { get; set; }


        /// <summary>
        /// 快递单号
        /// </summary>
        public string WayBillNo { get; set; }

        /// <summary>
        /// 快递公司名称
        /// </summary>
        public string ExpressName { get; set; }

        /// <summary>
        /// 质检入库时间
        /// </summary>
        public DateTime? QualityInspectionInStoreTime { get; set; }

        #region Sku
        public string Logo { get; set; }

        public string Title { get; set; }

        //public string ContactName { get; set; }

        //public string Mobile { get; set; }

        public int ItemTotal { get; set; }

        public decimal Price { get; set; }
        #endregion
    }

    public class ServiceOrderResponse
    {
        public IList<ServiceOrderItemResponse> Items { get; set; }

        public long Count { get; set; }
    }
}