package com.liquidnet.common.third.sqb.param.callback;


import lombok.Data;

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

@Data
/**
 * OrderCallbackContent
 */
public class OrderCallbackContent {

    /**
     * 订单号
     */
    private String orderSn;

    /**
     * 支付流水号列表
     */
    private List<String> payTsnList;

    /**
     * 终端号
     */
    private String terminalSn;

    /**
     * 门店号
     */
    private String storeSn;

    /**
     * 商城名称
     */
    private String mallName;

    /**
     * 订单金额
     */
    private BigDecimal orderAmount;

    /**
     * 创建时间
     */
    private String createdAt;

    /**
     * 订单状态码 0:已创建 10:已支付 35:已完成 40:已取消
     */
    private Integer orderStateCode;

    /**
     * 商品明细列表
     */
    private List<Item> items;

    /**
     * 收集的信息 JSON字符串
     */
    private String collectedInfo;

    /**
     * 预订单编码
     */
    private List<String> preOrderSns;

    /**
     * 订单签名
     */
    private String orderSignature;

    /**
     * 支付的代客下单数据
     */
    private List<PreOrder> preOrderList;

    /**
     * 商品明细
     */
    @Data
    public static class Item {

        /**
         * 商品标题
         */
        private String title;

        /**
         * 规格描述
         */
        private String skuDesc;

        /**
         * 数量
         */
        private String quantity;

        /**
         * 单位
         */
        private String unit;
    }

    /**
     * 采集数据
     */
    @Data
    public static class CollectedInfo {
        /**
         * 控件类型
         */
        private String type;

        /**
         * 控件格式
         */
        private String form;

        /**
         * 字段名
         */
        private String fieldName;

        /**
         * 采集数据内容
         */
        private String content;
    }

    /**
     * 支付的代客下单数据
     */
    @Data
    public static class PreOrder {

        /**
         * 预订单id
         */
        private String preOrderId;

        /**
         * 预订单编号
         */
        private String preOrderSn;

        /**
         * 请求号
         */
        private String requestId;
    }

}
