package com.red.circle.other.app.service.activity;


import com.red.circle.common.business.core.enums.SysOriginPlatformEnum;
import com.red.circle.common.business.dto.cmd.AppExtCommand;
import com.red.circle.other.app.dto.clientobject.activity.LastWeekStarGiftUserRankCO;
import com.red.circle.other.app.dto.clientobject.activity.UserRankCO;
import com.red.circle.other.app.dto.clientobject.activity.WeekStarGiftUserRankCO;
import com.red.circle.other.app.dto.clientobject.activity.WeekStarHistoryVO;
import com.red.circle.other.app.dto.clientobject.gift.GiftConfigCO;
import com.red.circle.other.app.dto.cmd.activity.WeekStarGiftQueryCmd;
import com.red.circle.other.app.dto.cmd.activity.WeekStarRankingQueryCmd;
import com.red.circle.other.app.dto.cmd.activity.WeekStarExchangeCmd;
import com.red.circle.other.inner.enums.activity.PropsActivityTypeEnum;
import com.red.circle.other.inner.model.dto.activity.props.ActivityResource;
import com.red.circle.other.inner.model.dto.material.FragmentsBackpackDTO;

import java.util.List;
import java.util.Set;

/**
 * 周星相关接口.
 *
 * @author pengliang on 2021/4/19
 */
public interface WeekStarService {

  WeekStarGiftUserRankCO getGiftRanking(WeekStarRankingQueryCmd cmd);

  List<GiftConfigCO> listGift(WeekStarGiftQueryCmd cmd);

  List<ActivityResource> listReward(AppExtCommand cmd);

  String countDown();

  String weekStarStartEndTime();

  List<LastWeekStarGiftUserRankCO> lastWeekFirstPlace(AppExtCommand cmd);

  /**
   * 获取我的排名.
   */
  UserRankCO getMyRank(WeekStarRankingQueryCmd cmd);

  /**
   * 获取历史TOP1.
   */
  List<WeekStarHistoryVO> getHistoryTop1(AppExtCommand cmd);

  /**
   * 碎片兑换.
   */
  Long exchange(WeekStarExchangeCmd cmd);

  List<ActivityResource> listActivityResource(SysOriginPlatformEnum sysOrigin, PropsActivityTypeEnum propsActivityTypeEnum);

  List<FragmentsBackpackDTO> listFragmentsByUserId(Long userId, Set<Long> fragmentsIds);
}
