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

import com.red.circle.component.redis.RedisKeys;
import com.red.circle.tool.core.text.StringUtils;

/**
 * 游戏列表key
 *
 * @author pengliang on 2020/9/30
 */
public enum GameListKeys implements RedisKeys {
  /**
   * 游戏列表.
   */
  GAME_LIST,
  /**
   * 砸金蛋前20名.
   */
  GAME_EGG_TOP20,

  /**
   * 转盘游戏前20名.
   */
  GAME_TURNTABLE_TOP20,
  /**
   * 房间内团队pk基础信息.
   */
  INDOOR_TEAM_PK_BASE_INFO,
  /**
   * 房间内团队pk送礼物计分.
   */
  INDOOR_TEAM_PK_GIFT_SCORE,
  /**
   * 上周PK信息.
   */
  ROOM_PK_LAST_WEEK,

  /**
   * 本周PK信息.
   */
  ROOM_PK_THIS_WEEK,
  /**
   * ludo游戏退款.
   */
  GAME_LUDO,
  /**
   * 正在pk中的双方对战信息.
   */
  ROOM_PK,
  /**
   * 标记.
   */
  MARK,
  /**
   * 游戏王活动赛局进度.
   */
  GAME_KING_ACTIVITY,
  /**
   * 游戏王比赛开始时间.
   */
  GAME_KING_START_TIME,
  /**
   * 游戏王历史记录.
   */
  GAME_KING_HISTORY,
  /**
   * 游戏王轮数.
   */
  GAME_KING_TODAY_ROUNDS,
  /**
   * 游戏王倒计时.
   */
  GAME_KING_COUNT_DOWN,

  /**
   * 游戏王比赛进程.
   */
  GAME_KING_PROGRESS;

  @Override
  public String businessPrefix() {
    // 不填写key, 兼容历史版本
    return null;
  }

  @Override
  public String businessKey() {
    return this.name();
  }

  public static String getKey(String key1, String key2) {
    if (StringUtils.isNotBlank(key1) && StringUtils.isNotBlank(key2)) {
      return key1.concat(SEPARATOR).concat(key2);
    }

    if (StringUtils.isNotBlank(key1)) {
      return key1;
    }

    if (StringUtils.isNotBlank(key2)) {
      return key2;
    }
    return "";
  }
}
