package com.yn.bftl.thirdparty.modules.chinaums.dto.byx;

import com.yn.bftl.thirdparty.common.dto.BaseSecretDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotBlank;

@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "ByxTransferDTO", description = "转账DTO")
public class ByxTransferDTO extends BaseSecretDTO {

    @ApiModelProperty(value = "商户订单号")
    private String mctOrderNo;

    @ApiModelProperty(value = "转出电子账户 ID")
    @NotBlank
    private String fromWalletId;

    @ApiModelProperty(value = "转出电子账户名称")
    private String fromWalletName;

    @ApiModelProperty(value = "转账金额 单位（分）")
    @NotBlank
    private String transferAmt;

    @ApiModelProperty(value = "转入电子账户 ID")
    @NotBlank
    private String intoWalletId;

    @ApiModelProperty(value = "交易类型 wallbc020006：转账（默认） wallbc020052：C 扫 C 付款 wallbc020053：授信支付转账 wallbc020054：授信还款转账 wallbc020055：授信利息转账 wallbc020056：授信逾期转让转账 wallbc020057：授信保理手续费转账 wallbc020077：好订单退货")
    private String transType;

    @ApiModelProperty(value = "付款类型 00：账户余额/付款码（默认） 01：银行卡")
    private String payType;

    @ApiModelProperty(value = "付款银行卡 付款类型为银行卡时必填")
    private String payBankAcctNo;

    @ApiModelProperty(value = "转入电子账户名称")
    private String intoWalletName;

    @ApiModelProperty(value = "手续费 单位（分）")
    private String feeAmt;

    @ApiModelProperty(value = "手续费收入电子账户ID")
    private String feeIntoWalletId;

    // 在BaseSecretDTO类里继承
//    @ApiModelProperty(value = "验证方式")
//    private String tradeWayCode = "b_pass";
//
//    @ApiModelProperty(value = "验证域")
//    private String tradeWayFeilds;

    @ApiModelProperty(value = "业务类型")
    private String bizType;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "摘要")
    private String abst;

    @ApiModelProperty(value = "资金计划项目 ID")
    private String cptlPlnPrjctId;

    @ApiModelProperty(value = "资金计划项目编号")
    private String cptlPlnPrjctCode;

    @ApiModelProperty(value = "资金计划项目名称")
    private String cptlPlnPrjctName;
}
