using MathNet.Numerics.LinearAlgebra.Factorization;
using System;
using System.Collections.Generic;

namespace JiaZhiQuan.Common.Models.VO.UE {
    public class UEOrderHang {
        /// <summary>
        /// 订单编号
        /// </summary>
        public long orderId { get; set; }

        /// <summary>
        /// 商品编号
        /// </summary>
        public long ueGoodsId { get; set; }

        /// <summary>
        /// 寄售订单id
        /// </summary>
        public long? postOrderId { get; set; }

        /// <summary>
        /// 买家编号
        /// </summary>
        public long buyerId { get; set; }

        /// <summary>
        /// 卖家店铺编号
        /// </summary>
        public string shopId { get; set; }

        /// <summary>
        /// 卖家店铺缩略图
        /// </summary>
        public string shopImage { get; set; }

        /// <summary>
        /// 卖家店铺缩略图
        /// </summary>
        public string shopName { get; set; }

        /// <summary>
        /// 卖家店铺地址（上门取货时有值）
        /// </summary>
        public string shopAddress { get; set; }

        /// <summary>
        /// 卖家用户编号
        /// </summary>
        public long sellerId { get; set; }

        /// <summary>
        /// 卖家用户昵称
        /// </summary>
        public string sellerAlias { get; set; }

        /// <summary>
        /// 卖家用户头像
        /// </summary>
        public string sellerHeadImage { get; set; }

        /// <summary>
        /// 卖家手机号
        /// </summary>
        public string sellerUsername { get; set; }

        /// <summary>
        /// 订单金额（分）
        /// </summary>
        public int orderAmount { get; set; }

        /// <summary>
        /// 卖家到手金额（分）
        /// </summary>
        public int sellerAmount { get; set; }

        /// <summary>
        /// 支付金额（分）
        /// </summary>
        public int payAmount { get; set; }

        /// <summary>
        /// 价值币抵扣金额（分）
        /// </summary>
        public int pointsDeductionAmount { get; set; }

        /// <summary>
        /// 平台账户抵扣金额
        /// </summary>
        public int? accountDeductionAmount { get; set; }

        /// <summary>
        /// 支付价值币
        /// </summary>
        public int payPoints { get; set; }

        /// <summary>
        /// 服务费（分）
        /// </summary>
        public int serviceAmount { get; set; }

        /// <summary>
        /// 保证金（分）
        /// </summary>
        public int earnestAmount { get; set; }

        /// <summary>
        /// 0 无保证金 1 已支付保证金 2 已退回 3待支付
        /// </summary>
        public int earnestMoneyRefunded { get; set; }

        /// <summary>
        /// 退款金额（分）
        /// </summary>
        public int refundAmount { get; set; }

        /// <summary>
        /// 收货人姓名
        /// </summary>
        public string consigneeName { get; set; }

        /// <summary>
        /// 收货人电话
        /// </summary>
        public string consigneePhone { get; set; }

        /// <summary>
        /// 收货人省
        /// </summary>
        public string consigneeProvince { get; set; }

        /// <summary>
        /// 收货人市
        /// </summary>
        public string consigneeCity { get; set; }

        /// <summary>
        /// 收货人区
        /// </summary>
        public string consigneeArea { get; set; }

        /// <summary>
        /// 收货人详细地址
        /// </summary>
        public string consigneeAddress { get; set; }

        /// <summary>
        /// 0 未设置 1 物流发货 2 自提
        /// </summary>
        public int deliveryType { get; set; }
        /// <summary>
        /// 发货信息Id
        /// </summary>
        public int deliveryId { get; set; }
        
        /// <summary>
        /// 快递公司编号
        /// </summary>
        public string expCompanyId { get; set; }

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

        /// <summary>
        /// 运费（平台配置的寄售运费）
        /// </summary>
        public int? platformExpAmount { get; set; }

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

        /// <summary>
        /// 发货超时时间
        /// </summary>
        public DateTime? deliveryExpireAt { get; set; }

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

        /// <summary>
        /// 支付超时时间
        /// </summary>
        public DateTime? payExpireAt { get; set; }

        /// <summary>
        /// 用户确认收货时间
        /// </summary>
        public DateTime? receiveAt { get; set; }

        /// <summary>
        /// 用户确认收货超时时间
        /// </summary>
        public DateTime? receiveExpireAt { get; set; }

        /// <summary>
        /// 自动确认收货是否挂起
        /// </summary>
        public int receiveHungup { get; set; }

        /// <summary>
        /// 挂起时间
        /// </summary>
        public DateTime? hungupAt { get; set; }        

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

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

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

        /// <summary>
        /// 订单关闭原因类型：1买家支付超时 2平台关闭 3买家取消
        /// </summary>
        public int? closeReasonType { get; set; }

        /// <summary>
        /// 订单关闭原因
        /// </summary>
        public string closeReason { get; set; }

        /// <summary>
        /// 订单状态（-1 订单关闭 1 待支付 2 待发货 3 待收货 4 待提待 5 已完成）
        /// </summary>
        public int orderState { get; set; }
        /// <summary>
        /// 明细状态
        /// </summary>
        /// <remarks>
        /// source为寄售时，是
        /// -1 后台关闭订单
        /// -2 买家超时未支付，系统关闭订单
        /// -3 平台关闭
        /// -4 买家关闭订单
        /// 1 等待买家付款 
        /// 2 买家已付款，等待平台发货
        /// 3 平台已发货，等待买家签收
        /// 4 待提待
        /// 5 买家已签收，交易成功。
        /// source为挂售时，是
        /// -1 后台关闭订单；
        /// -2 买家超时未支付，系统关闭订单；
        /// -3 买家关闭订单；
        /// -4 买家拒绝取货，扣除保证金，交易关闭； 
        /// -5 买家超时未取货，扣除保证金，交易关闭； 
        /// 1 等待买家付款        
        /// 2 买家已付款，选择快递收货，等待卖家发货；
        /// 3 卖家已发货，等待买家签收；
        /// 4 买家已付款，选择线下收货，等待买家取货；
        /// 5 买家已取货，交易成功；
        /// 6 买家已签收，交易成功；
        /// </remarks>
        public int detailState { get; set; }

        /// <summary>
        /// 来源（1，寄售，2挂售）
        /// </summary>
        public int? source { get; set; }

        /// <summary>
        /// 支付状态（0 待支付 1 已支付）
        /// </summary>
        public int paid { get; set; }

        /// <summary>
        /// 订单创建时间
        /// </summary>
        public DateTime createAt { get; set; }

        /// <summary>
        /// 订单更新时间
        /// </summary>
        public DateTime updateAt { get; set; }

        /// <summary>
        /// 买家订单删除状态：0未删除 1已删除
        /// </summary>
        public int buyerDeleted { get; set; }

        /// <summary>
        /// 买家订单删除时间
        /// </summary>
        public DateTime? buyerDeleteAt { get; set; }

        /// <summary>
        /// 卖家订单删除状态：0未删除 1已删除
        /// </summary>
        public int sellerDeleted { get; set; }

        /// <summary>
        /// 卖家订单删除时间
        /// </summary>
        public DateTime? sellerDeleteAt { get; set; }
    }
}
