

package com.freemud.application.sdk.api.ordercenter.response.carpark;

import com.freemud.application.sdk.api.ordercenter.request.OrderExtendedReq;
import com.freemud.application.sdk.api.ordercenter.response.carpark.OrderInvoiceResp;
import com.freemud.application.sdk.api.ordercenter.response.orderInfo.*;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author qi.xu  2018/09/05 10:30
 */
@Data
public class OrderResp {
    /*** "订单编号"***/
    private String orderCode;

    /*** "父订单编号"***/
    private String parentCode;

    /*** "商户号"***/
    private String partnerId;

    /*** "商户名"***/
    private String partnerName;

    /*** "门店编号"***/
    private String storeId;

    /*** "第三方门店编号"***/
    private String thirdStoreId;

    /*** "门店名"***/
    private String storeName;

    /*** "门店全局唯一编号"***/
    private String storeUnifyId;

    /*** "目的门店"***/
    private String toStoreId;

    /*** "用户ID"***/
    private String userId;

    /*** "用户姓名"***/
    private String userName;

    /*** OrderStatus.API_DESC***/
    private Byte orderState;

    /*** "订单子状态"***/
    private Integer orderSubState;

    /*** OrderType.API_DESC***/
    private Byte orderType;

    /*** PayStatus.API_DESC***/
    private Byte payState;

    /*** PayType.API_DESC***/
    private Byte payType;

    /*** "当前支付请求号"***/
    private String payRequestNo;

    /*** "最新的售后单的状态"***/
    private Byte afterSalesState;


    /*** "支付渠道"***/
    private String payChannel;

    /*** "支付渠道名称"***/
    private String payChannelName;

    /*** OrderDeliveryStatus.API_DESC***/
    private Integer deliveryState;

    /*** OrderDispenseStatus.API_DESC***/
    private Integer dispenseStatus;

    /*** "订单原始金额，单位分"***/
    private BigDecimal originalAmount;

    /*** "用户在界面上看到的支付金额"***/
    private BigDecimal settlementAmount;

    /*** "实际支付现金金额，扣除支付自生优惠，单位分"***/
    private BigDecimal actualPayAmount;

    /*** "是否需要开发票"***/
    private Boolean needInvoice;

    /*** "是否立即送达"***/
    private Boolean immediately;

    /*** OrderClientType.API_DESC***/
    private Byte orderClient;

    /*** "商户自己生成的订单号"***/
    private String companySelfCode;

    /*** "第三方订单号"***/
    private String thirdOrderCode;

    /*** "订单备注"***/
    private String note;

    /*** "取消原因"***/
    private String cancelReason;

    /*** "取货号 取餐号"***/
    private String pickUpGoodsNo;

    /*** OrderMarketType.API_DESC***/
    private Byte marketingType;

    /*** "销售类型对应的场景值"***/
    private String marketingCode;

    /*** "配送类型 1自配送(三方渠道配送、商家店员配送** 2平台配送"***/
    private Byte expressType;

    /*** "配送渠道名称"***/
    private String expressChannelName;

    /*** "配送渠道编号"***/
    private String expressChannelCode;

    /*** "快递单号"***/
    private String expressNo;

    /*** "重量"***/
    private BigDecimal weight;

    /*** "是否能退货 是否有退货商品"***/
    private Boolean canRefund;

    /*** "支付时间"***/
    private Date payTime;

    /*** "发货时间"***/
    private Date deliveryTime;

    /*** "签收时间 送达时间 收货时间"***/
    private Date receiveTime;

    /*** "打印时间"***/
    private Date printTime;

    /*** "接单时间"***/
    private Date acceptTime;

    /*** "实际到达时间"***/
    private Date actualArrivalTime;

    /*** "捡货时间（制作完成发货的时间）"***/
    private Date pickUpTime;

    /*** "桌台号"***/
    private String barCounter;

    /*** "pos编号"***/
    private String posCode;

    /*** "就餐人数"***/
    private Integer dinersNumber;

    /*** "小程序本地tableKey"***/
    private String localTableKey;

    /*** "pos table key"***/
    private String posTableKey;

    /*** "预约时间"***/
    private Date expectTime;

    /*** "挂起状态 0 正常 1 未成团挂起 2 风控挂起 3 售后挂起"***/
    private Byte suspendState;

    /*** "挂起描述"***/
    private String suspendDesc;

    /*** OrderAbnormalStatus.API_DESC***/
    private Byte abnormalState;

    /*** "订单异常具体描述"***/
    private String abnormalDesc;

    /*** "打印次数"***/
    private Integer printNum;


    /*** "创建时间"***/
    private Date createTime;

    /*** "更新时间"***/
    private Date updateTime;

    /*** "发票明细"***/
    private OrderInvoiceResp orderInvoice;

    /*** "扩展字段"***/
    private String extInfo;

    /*** OrderBizType.API_DESC***/
    private Byte bizType;

    /*** "下单区域"***/
    private String orderArea;

    /*** "承诺送达标识  0-无承诺 60-1小时达 120-2小时达 180-3小时达 1440-隔日达"***/
    private Short deliveryPromise;

    /*** "预计送达时间"***/
    private Date estimateDeliveryCompleteTime;

    /*** "订单商品信息"***/
    List<OrderItemResp> orderItemList;

    /*** "订单费用信息"***/
    List<OrderCostResp> orderCostDetailList;

    /*** "订单结算信息"***/
    List<OrderSettlementResp> orderSettlementDetailList;

    /*** "配送联系信息"***/
    List<DeliveryContactInfoResp> deliveryContactInfoList;

    /*** "售后单信息"***/
    List<AfterSalesOrderResp> afterSalesOrderList;

    /*** "订单操作历史"***/
    List<OrderOperationHistoryResp> orderOperationHistoryList;

    /*** "订单扩展信息"***/
    private OrderExtendedReq orderExtended;

    /*** "门店当天订单计数"***/
    private Integer daySeq;

    /*** "是否为父订单"***/
    private Boolean isParent;

    /*** "订单来源 "+SourceType.API_DESC***/
    private Byte sourceType;

    /*** "下单渠道appId"***/
    private String appId;

    /*** "下游POS商编号"***/
    private String downstreamPosCode;

    /*** "下游订单号"***/
    private String downstreamThirdOrderCode;

    /*** "订单支付渠道类型" +PayChannelType.API_DESC***/
    private Byte payChannelType;
}
