package com.red.circle.other.infra.database.cache.service.other;

import com.red.circle.other.infra.database.rds.entity.sys.GameListConfig;

import java.util.function.Function;
import java.util.function.Supplier;

/**
 * 游戏列表.
 *
 * @author pengliang on 2022/9/29
 */
public interface GameListCacheService {

  /**
   * 获取游戏列表缓存.
   */
  String listCache(String sysOrigin, String category, Function<String, String> orElse,String version);

  /**
   * 移除缓存.
   */
  void remove(String sysOrigin);

  /**
   * 通过游戏ID获取游戏配置（带缓存）.
   */
  GameListConfig getByGameIdWithCache(String gameId, String gameOrigin, String sysOrigin, Supplier<GameListConfig> orElse);

}
