package com.leromro.core.domain.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.math.BigDecimal;
import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.Digits;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import lombok.Data;
import org.hibernate.validator.constraints.Range;

@Data
@ApiModel(description = "志愿者账户提现申请模型")
public class VolunteerSubmitAmountDTO {

    @NotBlank(message = "打款方式不能为空")
    @Range(min = 1, max = 2, message = "打款方式(1-银行卡;2-支付宝;)")
    @ApiModelProperty(value = "打款方式(1-银行卡;2-支付宝;)", name = "payType", example = "1")
    private String payType;

    @DecimalMin(value = "0.01", message = "提现申请金额最小值为0.01")
    @Digits(integer = 10, fraction = 2, message = "提现申请金额小数位上限为2位")
    @ApiModelProperty(value = "提现申请金额", name = "takeAmount", example = "10")
    @NotNull(message = "提现申请金额不能为空")
    private BigDecimal takeAmount;

    @ApiModelProperty(value = "银行名称", name = "bankName", example = "1")
    private String bankName;

    @ApiModelProperty(value = "银行代码", name = "bankCode", example = "1")
    private String bankCode;

    @ApiModelProperty(value = "开卡人姓名", name = "bankCardUser", example = "1")
    private String bankCardUser;

    @ApiModelProperty(value = "银行卡号", name = "bankCardSn", example = "1")
    private String bankCardSn;

    @ApiModelProperty(value = "银行卡开户地", name = "bankCardAddress", example = "1")
    private String bankCardAddress;

    @ApiModelProperty(value = "备注", name = "note", required = true, example = "")
    private String note;

    @ApiModelProperty(value = "支付宝账户", name = "alipayAccountNo", example = "101123340")
    private String alipayAccountNo;

    @ApiModelProperty(value = "支付宝姓名", name = "alipayName", example = "ali")
    private String alipayName;

    @ApiModelProperty(value = "强制版本", name = "forcedVersion", notes = "传值为1时，为新版本提现", example = "1")
    private String forcedVersion;

}