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


import com.red.circle.common.business.dto.cmd.AppExtCommand;
import com.red.circle.common.business.dto.cmd.app.AppIdLongCmd;
import com.red.circle.other.app.dto.clientobject.activity.ActivityAgentAnchorContentCO;
import com.red.circle.other.inner.enums.task.ReceiveStatusEnum;
import com.red.circle.other.inner.model.dto.activity.props.ActivityRewardProps;
import java.util.List;
import org.apache.commons.lang3.tuple.ImmutableTriple;

/**
 * 代理主播活动.
 *
 * @author pengshigang on 2023/2/13.
 */
public interface ActivityAgentAnchorService {

  /**
   * 代理名下主播当月总积分.
   */
  ImmutableTriple<Long, List<ImmutableTriple<ReceiveStatusEnum, ActivityAgentAnchorContentCO,
      List<ActivityRewardProps>>>, Long> getAgentMonthTargetReward(AppExtCommand cmd);

  /**
   * 代理名下主播数量活动.
   */
  ImmutableTriple<Long, List<ImmutableTriple<ReceiveStatusEnum, ActivityAgentAnchorContentCO,
      List<ActivityRewardProps>>>, Long> getAgentAnchorCountReward(AppExtCommand cmd);

  /**
   * 主播当日积分.
   */
  ImmutableTriple<Long, List<ImmutableTriple<ReceiveStatusEnum, ActivityAgentAnchorContentCO,
      List<ActivityRewardProps>>>, Long> getAnchorDayTargetReward(AppExtCommand cmd);

  /**
   * 主播当月总积分.
   */
  ImmutableTriple<Long, List<ImmutableTriple<ReceiveStatusEnum, ActivityAgentAnchorContentCO,
      List<ActivityRewardProps>>>, Long> getAnchorMonthTargetReward(AppExtCommand cmd);

  /**
   * 代理主播活动满足则领取奖励.
   */
  void receiveAgentAnchor(AppIdLongCmd cmd);

}
