package com.red.circle.other.infra.database.mongo.entity.sys;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.red.circle.other.infra.database.mongo.dto.GameModel;
import com.red.circle.other.infra.database.mongo.dto.GamePlayersUser;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;
import lombok.Data;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

/**
 * 游戏匹配模式配置.
 *
 * @author pengliang on 2022/7/11
 */
@Data
@Accessors(chain = true)
@Document("game_match_model_config")
public class GameMatchModelConfig implements Serializable {

  private static final long serialVersionUID = 1L;

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

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

  /**
   * 游戏名称.
   */
  private String name;

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

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

  /**
   * 背景图.
   */
  private String backgroundCover;

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

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

  /**
   * 模式.
   */
  private List<GameModel> models;

  /**
   * 在线用户信息.
   */
  private List<GamePlayersUser> onlinePlayersUsers;

  /**
   * 创建时间.
   */
  private Timestamp createTime;

  /**
   * 修改时间.
   */
  private Timestamp updateTime;

}
