package org.springblade.common.upyzt.resp;

import org.springblade.common.upyzt.param.AcctValidationParam;
import java.time.LocalDateTime;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.experimental.Accessors;

import java.util.Map;

@Getter
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class SettleAcctResp extends UpyztResp {

    /**
     * 汇款验证状态。processing 验证中|succeeded 验证成功|failed 验证失败
     */
    private String verifyStatus;

    /**
     * 绑定账户类型
     */
    private String bankAcctType;

    /**
     * 开户银行编码
     */
    private String bankCode;

    /**
     * 开户名称
     */
    private String name;

    /**
     * 开户银行省市编码
     */
    private String bankAddressCode;

    /**
     * 开户银行联行号
     */
    private String bankBranchCode;

    /**
     * 开户银行卡号
     */
    private String bankAcctNo;

    /**
     * 银行卡预留的手机号
     */
    private String mobileNumber;

    /**
     * 汇款状态验证信息
     */
    private AcctValidationParam acctValidation;

    /**
     * 绑定账户ID
     */
    private String settleAcctId;

    /**
     * 平台订单号
     */
    private String outRequestNo;

    /**
     * 账户验证完成时间
     */
    private LocalDateTime acctValidationFinishedAt;

    /**
     * 账户验证失败原因
     * (当账户验证状态为 failed 时返回)
     */
    private String acctValidationFailureMsg;

    /**
     * 自定义数据
     */
    private Map<String, Object> metadata;

    /**
     * 拓展字段配合业务参数
     */
    private Map<String, Object> extra;
}
