package com.red.circle.other.infra.database.rds.service.sys;

import com.red.circle.framework.dto.PageResult;
import com.red.circle.framework.mybatis.service.BaseService;
import com.red.circle.other.infra.database.rds.entity.sys.GameListConfig;
import com.red.circle.other.inner.model.cmd.sys.SysGameListQryCmd;
import java.util.List;
import java.util.Set;

/**
 * <p>
 * 游戏列表配置 服务类.
 * </p>
 *
 * @author pengshigang
 * @since 2022-06-10
 */
public interface GameListConfigService extends BaseService<GameListConfig> {

  /**
   * 获取上架配置.
   */
  List<GameListConfig> listShowcaseConfig(String sysOrigin, String category, String roomId);

  /**
   * 根据游戏code获得游戏封面图.
   */
  String getCoverByGameCode(String gameCode);

  /**
   * 根据游戏的游戏编码,解析数据库里的gameCode里 拼接的 gameId
   */
  String getCoverByGameId(String gameId, String gameOrigin, String sysOrigin);

  /**
   * 分页列表.
   */
  PageResult<GameListConfig> pageQuery(SysGameListQryCmd query);

  /**
   * 获取百顺当前启用的配置档案.
   */
  String getActiveBaishunProfile(String sysOrigin);

  /**
   * 获取灵仙当前启用的配置档案.
   */
  String getActiveLingxianProfile(String sysOrigin);

  /**
   * 查询游戏信息
   */
  GameListConfig getByGameCode(String gameCode, String sysOrigin);

  /**
   * 查询游戏信息
   */
  GameListConfig getByGameId(String gameId, String gameOrigin, String sysOrigin);

  /**
   * 校验是否有游戏下架
   */
  Boolean checkGameUnshelve(Set<Long> gameIds);
}
