package com.ff.api.request;

import com.ff.base.annotation.Excel;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;


/**
 * 游戏兑换余额请求
 *
 * @author shi
 * @date 2025/02/11
 */
@Data
public class GameExchangeBalanceRequest implements Serializable {
    private final static long serialVersionUID = -881298930995538038L;


    /**
     * 账户
     */
    @NotBlank(message = "account不能为空")
    private  String account;


    /** 平台编码 */
    @NotBlank(message = "platformCode不能为空")
    private String platformCode;


    /**
     * 金额
     */
    @NotNull(message = "amount不能为空")
    private BigDecimal amount;


    /** 币种编码 */
    @NotBlank(message = "currencyCode不能为空")
    private String currencyCode;
    
    /**
     * 转账类型
     * 1: 从 游戏商 转移额度到 平台商 (不看 amount 值，全
     * 部转出)
     * 2: 从 平台商 转移额度到 游戏商
     */
    @NotNull(message = "transferType不能为空")
    @Min(value = 1, message = "transferType最小值为1")
    @Max(value = 2, message = "transferType最大值为2")
    private Integer transferType;

    /**
     * 订单id
     */
    @NotBlank(message = "orderId不能为空")
    @Length(min = 32,max = 32, message = "orderId长度不能超过32个字符")
    private String orderId;


}
