package com.zanxiang.game.module.manage.pojo.params;

import com.zanxiang.game.module.base.pojo.dto.H5GameConfigDTO;
import com.zanxiang.game.module.manage.pojo.dto.GameAppletConfigDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * @author : lingfeng
 * @time : 2022-07-07
 * @description : 添加游戏参数
 */
@Data
public class GameAddParam {

    /**
     * 主键id, 传值为更新, 不传值为新增
     */
    @ApiModelProperty(notes = "cpId")
    private Long id;

    /**
     * cpId
     */
    @NotNull(message = "cpId不可为空")
    @ApiModelProperty(notes = "cpId")
    private Long cpId;

    /**
     * 游戏名称
     */
    @NotBlank(message = "游戏名称不可为空")
    @ApiModelProperty(notes = "游戏名称")
    private String name;

    /**
     * 是主父游戏
     */
    @ApiModelProperty(notes = "是否主游戏")
    private Boolean isParentGame;

    /**
     * 分成比例
     */
    @NotNull(message = "分成比例不可为空")
    @ApiModelProperty(notes = "分成比例")
    private Double shareScale;

    /**
     * 游戏分类, 多选
     */
    @NotEmpty(message = "游戏分类不可为空")
    @ApiModelProperty(notes = "游戏分类, 可多选, 至少选一个")
    private List<Long> tagIdList;

    /**
     * 游戏应用类型
     */
    @NotNull(message = "游戏应用类型不可为空")
    @ApiModelProperty(notes = "游戏应用类型")
    private Long category;

    /**
     * 游戏是否投放
     */
    @ApiModelProperty(notes = "游戏是否投放")
    private Boolean isPut;

    /**
     * 父游戏id
     */
    @ApiModelProperty(notes = "父游戏id, 非主游戏时必填")
    private Long parentGameId;

    /**
     * 关联H5游戏id
     */
    @ApiModelProperty(notes = "关联H5游戏id(选填)")
    private Long h5GameId;

    /**
     * 导量游戏id
     */
    @ApiModelProperty(notes = "导量游戏id(选填)")
    private Long guideGameId;

    /**
     * 游戏描述
     */
    @ApiModelProperty(notes = "游戏描述(选填)")
    private String remark;

    /**
     * 小游戏/公众号应用信息
     */
    @ApiModelProperty(notes = "小游戏/公众号应用信息 (微信小游戏和H5游戏必填, 其他游戏不填)")
    private GameAppletConfigDTO gameAppletConfigDTO;

    /**
     * H5游戏配置对象
     */
    @ApiModelProperty(notes = "H5游戏配置对象 (H5游戏必填, 其他游戏不填)")
    private H5GameConfigDTO h5GameConfigDTO;
}
