package com.wzj.soopin.transaction.domain.bo.easypay.trade.query.resp;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 银联业务参数
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
public class QrRespParamInfoVO {

    private List<QrDiscountsDetailVO> discountsInfo;
    /**
     * QrPayerInfoInner
     */
    private QrPayerInfo qrPayerInfo;

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @Builder
    public static class QrDiscountsDetailVO {
        /**
         * 活动id
         */
        private String activityId;
        /**
         * 附件信息
         */
        private String addnInfo;
        /**
         * 金额
         */
        private Long amount;
        /**
         * 项目发行，发行优惠活动的平台或机构，取值如下：
         * 银联卡券平台：固定填写KQPT
         * 付款方：填写8 位付款方机构代码
         */
        private String issuerId;
        /**
         * 姓名
         */
        private String name;
        /**
         * 营销活动id
         */
        private String promotionId;
        /**
         * 类型
         */
        private String type;
    }

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @Builder
    public static class QrPayerInfo {
        /**
         * 卡号
         */
        private String accNo;
        /**
         * 账户类型
         */
        private String acctClass;
        /**
         * 卡属性，01 – 借记卡
         * 02 – 贷记卡（含准贷记卡）
         */
        private String cardAttr;
        /**
         * 证件号码，可选
         * 取证件号后6 位数字，
         * 再左补0 到与原证件号
         * 相同长度
         */
        private String certifId;
        /**
         * 证件类型
         */
        private String certifTp;
        /**
         * cvn2
         */
        private String cvn2;
        /**
         * 卡有效期
         */
        private String expired;
        /**
         * 付款方机构代码，代表付款方机构。
         */
        private String issCode;
        /**
         * 手机号，必选
         * 银行卡预留手机号码，
         * 11 位，不包括+86 等信
         * 息。银联将根据综合情
         * 况决定是否送发卡行
         * 验证
         */
        private String mobile;
        /**
         * 姓名
         */
        private String name;
        /**
         * 付款银行信息
         */
        private String payerBankInfo;
    }
}
