package com.zanxiang.game.module.sdk.pojo.param;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * 支付调起生成相关参数
 *
 * @author xufeng
 * @date 2022/6/8 15:21
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ProductPayParam {

    /**
     * 支付方式(1:支付宝 2:微信 3:米大师)
     */
    @NotNull(message = "支付方式不可为空")
    private Long payWay;

    /**
     * 支付类型, 1:PC, 2: h5支付, 3: App支付, 4: 小程序支付, 5: 米大师支付, 6:客服支付
     */
    @NotNull(message = "支付类型不可为空")
    private Long payDevice;

    /**
     * 商品ID
     */
    @NotBlank(message = "商品ID不可为空")
    private String productId;

    /**
     * 商品名称
     */
    @NotBlank(message = "商品名称不可为空")
    private String productName;

    /**
     * 商品描述
     */
    @NotBlank(message = "商品描述不可为空")
    private String productDesc;

    /**
     * 充值金额, 单位是元
     */
    @NotNull(message = "充值金额不可为空")
    private BigDecimal amount;

    /**
     * 游戏服务器id
     */
    @NotBlank(message = "游戏服务器id不可为空")
    private String serverId;

    /**
     * 所在服务器名称
     */
    @NotBlank(message = "所在服务器名称不可为空")
    private String serverName;

    /**
     * 角色id
     */
    @NotBlank(message = "角色id不可为空")
    private String roleId;

    /**
     * CP订单id
     */
    private String orderId;

    /**
     * 扩展字段，充值回调时，原样返回
     */
    @NotNull(message = "扩展字段不可为空")
    private String extension;

    /**
     * 小程序支付code
     */
    private String code;

}
