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

import com.red.circle.common.business.core.enums.SysOriginPlatformEnum;
import com.red.circle.other.inner.model.dto.material.GiftConfigDTO;
import java.util.List;

/**
 * 礼物配置服务
 *
 * @author pengliang
 * @since 2020/10/3 9:42
 */
public interface GiftCacheService {

  /**
   * 获取指定礼物.
   */
  GiftConfigDTO getById(Long id);

  /**
   * 获取平台礼物.
   *
   * @param sysOrigin 归属系统
   * @return cache
   */
  List<GiftConfigDTO> listBySysOrigin(SysOriginPlatformEnum sysOrigin);

  /**
   * 获得组成cp时赠送的礼物.
   */
  GiftConfigDTO getPairCpGive(SysOriginPlatformEnum sysOrigin);

  /**
   * 移除缓存
   */
  void remove();

  /**
   * 上周专属礼物消耗榜单
   */
  void pushListLastWeekExclusive(SysOriginPlatformEnum sysOrigin, String data);

  /**
   * 上周专属礼物消耗榜单
   */
  String getListLastWeekExclusive(SysOriginPlatformEnum sysOrigin);

  /**
   * 本周专属礼物消耗榜单
   */
  void pushListThisWeekExclusive(SysOriginPlatformEnum sysOrigin, String data);

  /**
   * 本周专属礼物消耗榜单
   */
  String getListThisWeekExclusive(SysOriginPlatformEnum sysOrigin);

  /**
   * 获得组成cp时赠送的礼物
   */
  Long getPairCpGiveGiftId(SysOriginPlatformEnum sysOrigin);

  /**
   * 保存组成cp时赠送的礼物
   */
  void pushPairCpGiveGiftId(SysOriginPlatformEnum sysOrigin, Long giftId);

}
