package com.m2pool.lease.vo;

import com.m2pool.lease.annotation.EncryptedField;
import com.m2pool.lease.annotation.LedgerLogParam;
import com.m2pool.lease.annotation.LedgerLogTag;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

/**
 * <p>
 * 余额提现请求对象
 * </p>
 *
 * @author yyb
 * @since 2025-07-23
 */
@Builder
@Data
@NoArgsConstructor
@AllArgsConstructor
@ApiModel(description = "余额提现请求对象",value = "BalanceVo")
public class BalanceVo {


    /**
     * 提现金额
     */
    @ApiModelProperty(value = "提现 金额",required = true)
    @LedgerLogParam("提现金额")
    private BigDecimal amount;

    /**
     * 链
     */
    @ApiModelProperty(value = "用户自定义的钱包地址链",required = true)
    @LedgerLogParam("链")
    private String toChain;

    /**
     * 币种
     */
    @ApiModelProperty(value = "用户自定义的钱包地址的币种",required = true)
    @LedgerLogParam("币种")
    private String toSymbol;

    @ApiModelProperty(value = "手续费",required = true)
    private BigDecimal serviceCharge;

    @ApiModelProperty(value = "绑定的地址",required = true)
    @EncryptedField
    @LedgerLogTag
    private String fromAddress;
    /**
     * 提现地址(用户自定义)
     */
    @ApiModelProperty(value = "提现地址(用户自定义)",required = true)
    @EncryptedField
    @LedgerLogParam("提现目标地址")
    private String toAddress;

    @ApiModelProperty(value = "谷歌双重验证验证码",required = true)
    private Long code;


}
