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

import lombok.Data;

import java.util.List;
import java.util.Map;

/**
 * 创建微信预支付订单请求
 */

@Data
public class CreateWechatPrepayOrderRequest {

    /** 应用id */
    private String appid;

    /** 商户信息 */
    private CommonRequest.Seller seller;

    /** 收单号 */
    private String acquiringSn;

    /** 收单签名 */
    private String signature;

    /** 支付工具 */
    private List<UsingPayTool> usingPayTools;

    /** 支付环境 */
    private PaymentEnv paymentEnv;

    /** 支付工具签名 */
    private String selectedSignature;

    /** 序列号 */
    private String seq;

    @Data
    /**
 * 支付工具使用详情
 */
    public static class UsingPayTool {
        /** 支付工具ID */
        private Long id;

        /** 支付工具代码 */
        private Integer payTool;

        /** 支付模式 */
        private Integer payMode;

        /** 支付金额 */
        private String amount;

        /** 金额构成 */
        private CommonRequest.AmountComposition amountComposition;

        /** 用户身份信息 */
        private String identity;

        /** 支付请求号 */
        private String requestSn;

        /** 通道扩展参数 */
        private Map<String, Object> channelExt;
    }

    @Data
    /**
 * 支付环境信息
 */
    public static class PaymentEnv {
        /** 付款终端ip */
        private String clientIp;

        /** 付款经纬度 */
        private ClientPoi clientPoi;

        /** 支付入口 */
        private String paymentEntry;
    }

    @Data
    /**
 * 地理位置信息
 */
    public static class ClientPoi {
        /** 经度信息 */
        private String longitude;

        /** 纬度信息 */
        private String latitude;
    }


}
