package com.fzm.mall.midea.pay.model;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;

/**
 * @author tangtuo
 * @date 2021/5/27 15:19
 */
@Data
@ApiModel(value = "合单交易查询响应参数")
public class BatchTradeQueryResponse extends BaseResponse {

    @ApiModelProperty(value = "美的付合作商户网站唯一订单号（确保在合作伙伴系统中唯一）")
    private String out_trade_no;

    @ApiModelProperty("该交易在美的付中的交易流水号")
    private String trade_no;

    @ApiModelProperty("美的付系统接收订单的时间")
    private String trade_accept_time;

    @ApiModelProperty("支付金额的货币类型 CNY:人民币")
    private String currency_type;

    @ApiModelProperty("总订单金额（单位分）")
    private long total_order_amount;

    @ApiModelProperty("总支付金额（单位分）")
    private long total_amount;

    @ApiModelProperty("订单总数（最大50笔）")
    private long total_count;

    @ApiModelProperty("交易成功数（最大50笔）")
    private String success_amount;

    /**
     * 交易完成状态码
     * NOT_EXIST：订单不存在
     * WAIT_PAY：订单已接收
     * PAYING：支付中
     * COMPLETE：支付完成
     */
    @ApiModelProperty("交易完成状态")
    private String complete_status;

    @ApiModelProperty("订单状态的描述信息")
    private String complete_status_info;

    @ApiModelProperty("该笔交易的支付完成时间,格式为yyyyMMddHHmmss")
    private String complete_time;

    @ApiModelProperty("商户保留域，保留域信息用于扩展")
    private String attach;

    @ApiModelProperty("支付方式：三级业务类型，见附录支付方式")
    private String business_types;

    @ApiModelProperty("子订单的信息，格式为json字符串")
    private String sub_orders;

    @Data
    public static class SubOrder{

        @ApiModelProperty("签约商户号，由美的支付生成，由10位数字组成")
        private String partner;

        @ApiModelProperty("子B2C订单商户订单号")
        private String sub_out_trade_no;

        @ApiModelProperty("该交易在美的付中的交易流水号")
        private String sub_trade_no;

        @ApiModelProperty("营销商户号")
        private String market_acc_partner;

        @ApiModelProperty("营销金额")
        private String market_amount;

        @ApiModelProperty("子B2C订单金额，单位: 分")
        private String pay_amount;

        @ApiModelProperty("美的付系统支付订单的时间")
        private String pay_time;

        /**
         * 订单的状态码
         * NOT_EXIST：订单不存在
         * WAIT_PAY：未支付
         * PAYING：支付中
         * SUCCESS：成功
         * FAIL：失败
         */
        @ApiModelProperty("订单状态")
        private String trade_status;

        @ApiModelProperty("订单状态的描述信息")
        private String trade_status_info;

        /**
         * RECEIVED：已确认收货
         * UNRECEIVED：未确认收货
         */
        @ApiModelProperty("确认收货状态")
        private String product_recv_status;

        @ApiModelProperty("确认收货时间，格式为yyyyMMddHHmmss")
        private String product_recv_time;

        @ApiModelProperty("商户自定义信息，原值返回")
        private String attach;
    }

}
