package com.red.circle.other.inner.model.cmd.sys;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.red.circle.framework.core.dto.CommonCommand;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.util.List;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.hibernate.validator.constraints.Length;

/**
 * <p>
 * 游戏列表配置
 * </p>
 *
 * @author pengliang
 * @since 2022-06-10
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
public class SysGameListConfigParamCmd extends CommonCommand {

  private static final long serialVersionUID = 1L;

  /**
   * 主键.
   */
  @JsonSerialize(using = ToStringSerializer.class)
  private Long id;

  /**
   * 归属系统.
   */
  @NotBlank
  private String sysOrigin;

  /**
   * 游戏源(THIRD_PARTY,APP,H5).
   */
  @NotBlank
  private String gameOrigin;

  /**
   * 游戏ID 例：1024
   */
  private String gameId;

  /**
   * 游戏模式 CHAT_ROOM：语聊房
   */
  private String gameMode;

    /**
     * 游戏分类
     */
    private String category;

  /**
   * 游戏名称.
   */
  @NotBlank
  @Length(min = 1, max = 150)
  private String name;

  /**
   * 游戏编号.
   */
  private String gameCode;

  /**
   * 游戏封面图.
   */
  @NotBlank
  private String cover;

  /**
   * 金额.
   */
  private String amounts;

  /**
   * 0.下架 1.上架.
   */
  @NotNull
  private Boolean showcase;

  /**
   * 排序.
   */
  @NotNull
  private Long sort;

  /**
   * 高.
   */
  private Double height;

  /**
   * 宽.
   */
  private Double width;

  /**
   * 是否全屏(true全屏).
   */
  @NotNull
  private Boolean fullScreen;

  /**
   * 是否自研
   */
  private Boolean self;

  /**
   * 自研游戏code
   */
  private String selfGameCode;

  /**
   * 客户端（ANDROID,IOS,COMMON）.
   */
  @NotBlank
  private String clientOrigin;

  /**
   * 区域.
   */
  private List<String> regionList;

}
