using System;
using System.Collections.Generic;

namespace JiaZhiQuan.Common.Models.VO.UE {
    public class UEPostOrder {
        /// <summary>
        /// 主键ID
        /// </summary>
        public long postOrderId { get; set; }

        /// <summary>
        /// 卖家用户id
        /// </summary>
        public long userId { get; set; }

        /// <summary>
        /// 发货人姓名
        /// </summary>
        public string deliveryName { get; set; }

        /// <summary>
        /// 发货人手机号
        /// </summary>
        public string deliveryPhone { get; set; }

        /// <summary>
        /// 发货省
        /// </summary>
        public string deliveryProvince { get; set; }

        /// <summary>
        /// 发货市
        /// </summary>
        /// <remarks>
        /// 该字段为必填项。
        /// </remarks>
        public string deliveryCity { get; set; }

        /// <summary>
        /// 发货区
        /// </summary>
        public string deliveryArea { get; set; }

        /// <summary>
        /// 发货详细地址
        /// </summary>
        public string deliveryAddress { get; set; }

        /// <summary>
        /// 订单发货时间
        /// </summary>
        public DateTime deliveryAt { get; set; }

        /// <summary>
        /// 收货信息Id
        /// </summary>
        /// <remarks>
        /// 该字段为必填项。
        /// </remarks>
        public int receiveId { get; set; }

        /// <summary>
        /// 退货信息Id
        /// </summary>
        public int? returnId { get; set; }
        
        /// <summary>
        /// 订单退货时间
        /// </summary>
        public DateTime returnAt { get; set; }

        /// <summary>
        /// 订单取消原因
        /// </summary>
        public string cancelReason { get; set; }

        /// <summary>
        /// 订单取消时间
        /// </summary>
        public DateTime? cancelAt { get; set; }

        /// <summary>
        /// 订单关闭时间
        /// </summary>
        public DateTime? closeAt { get; set; }        

        /// <summary>
        /// 订单关闭原因
        /// </summary>
        public string closeReason { get; set; }
        
        /// <summary>
        /// 订单状态
        /// </summary>
        /// <remarks>
        /// "订单状态（
        ///-1)后台关闭订单
        ///-2)卖家已签收退货，系统关闭订单
        ///-3）平台鉴定未通过，不退货，系统关闭订单
        ///1）卖家已发货，等待平台收货
        ///2）平台已收货，等待鉴定
        ///3）平台鉴定通过，等待卖家上架
        ///4）平台鉴定未通过，等待平台退货
        ///5）卖家取回商品(无偿) ，等待平台退货
        ///6）商品已上架
        ///7）卖家拒绝上架，等待平台退货
        ///8）卖家超时未上架，等待平台退货
        ///9）买家已付款，等待交易完成
        ///10）卖家取回商品(有偿) ，等待平台退货
        ///11）寄售成功
        ///12）销售订单关闭，重新上架中
        ///13）平台已退货，等待卖家签收 )"
        /// </remarks>
        public int orderState { get; set; }

        /// <summary>
        /// 交易状态
        /// </summary>
        /// <remarks>
        /// 0：未交易，1：交易中
        /// </remarks>
        public int tradeState { get; set; }

        /// <summary>
        /// 商品id
        /// </summary>
        public long goodsId { get; set; }

        /// <summary>
        /// 平台skuId
        /// </summary>
        public int platformSkuId { get; set; }

        /// <summary>
        /// 商品名称
        /// </summary>
        public string skuName { get; set; }

        /// <summary>
        /// 平台地址id
        /// </summary>
        public int platformAddressId { get; set; }

        /// <summary>
        /// 商品上架时间
        /// </summary>
        public DateTime? shelveAt { get; set; }

        /// <summary>
        /// 商品上架超时时间
        /// </summary>
        public DateTime? shelveTimeoutAt { get; set; }

        /// <summary>
        /// 卖家有偿取回商品时间
        /// </summary>
        public DateTime? getbackAt { get; set; }

        /// <summary>
        /// 销售订单关闭时间
        /// </summary>
        public DateTime? saleOrderCloseAt { get; set; }        

        /// <summary>
        /// 上一次仓储时间区间（单位天）
        /// </summary>
        public decimal lastStorageTime { get; set; }

        /// <summary>
        /// 买家付款时间
        /// </summary>
        public DateTime? payAt { get; set; }

        /// <summary>
        /// 单位仓储费（单位分/天)
        /// </summary>
        public int unitStorageFee { get; set; }
        /// <summary>
        /// 开始计算仓储费的天数
        /// </summary>
        public int upDays { get; set; }

        /// <summary>
        /// 寄售订单到手价 单位分 售价-服务费-仓储费的最终到手价
        /// </summary>
        public int netAmount { get; set; }

        /// <summary>
        /// 取回实际支付的仓储费 单位分
        /// </summary>
        public int realStageFee { get; set; }

        /// <summary>
        /// 寄售成功时间
        /// </summary>
        public DateTime? saledAt { get; set; }

        /// <summary>
        /// 创建时间
        /// </summary>
        /// <remarks>
        /// 该字段为必填项。
        /// </remarks>
        public DateTime createAt { get; set; }

        /// <summary>
        /// 修改时间
        /// </summary>
        public DateTime updateAt { get; set; }
    }

    public class UEReceiveReturn {
        /// <summary>
        /// 主键ID
        /// </summary>
        public int id { get; set; }

        /// <summary>
        /// 快递公司Id
        /// </summary>
        /// <remarks>
        /// 该字段为必填项。
        /// </remarks>
        public int expCompanyId { get; set; }

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

        /// <summary>
        /// 收货人手机号
        /// </summary>
        public string receivePhone { get; set; }

        /// <summary>
        /// 快递类型
        /// </summary>
        /// <remarks>
        /// 1：到付，2：寄付
        /// </remarks>
        public sbyte expType { get; set; }

        /// <summary>
        /// 快递费（单位分)
        /// </summary>
        public int expFee { get; set; }

        /// <summary>
        /// 操作类型
        /// </summary>
        /// <remarks>
        /// 1：收货，2：退货，3，发货
        /// </remarks>
        public sbyte operateType { get; set; }

        /// <summary>
        /// 操作人ID
        /// </summary>
        public int operateId { get; set; }

        /// <summary>
        /// 操作时间（收货时间或退货时间）
        /// </summary>
        public DateTime operateAt { get; set; }

        /// <summary>
        /// 操作视频（收货视频或退货视频）
        /// </summary>
        public string videoUrl { get; set; }
        /// <summary>
        /// 寄售成功时间
        /// </summary>
        public DateTime saledAt { get; set; }
        /// <summary>
        /// 实际支付的仓储费
        /// </summary>
        public int realStageFee { get; set; }

        /// <summary>
        /// 卖家收货超时时间，平台退货时有值。
        /// </summary>
        public DateTime sellerReceiveTimeoutAt { get; set; }
        /// <summary>
        /// 创建时间
        /// </summary>
        /// <remarks>
        /// 该字段为必填项。
        /// </remarks>
        public DateTime createAt { get; set; }

        /// <summary>
        /// 修改时间
        /// </summary>
        public DateTime updateAt { get; set; }
    }
}
