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

import com.red.circle.framework.dto.PageResult;
import com.red.circle.other.inner.enums.activity.AgentActivityCountType;
import com.red.circle.other.inner.model.dto.activity.AgentActivityCountDTO;
import java.util.Collection;
import java.util.Set;

/**
 * 代理活动相关
 *
 * @author zongpubin on 2023/8/15
 */
public interface AgentActivityCountClientService {

  /**
   * 增加代理积分.
   *
   * @param teamId   团队
   * @param target   目标值
   * @param regionId 区域ID
   */
  void incrTarget(Long teamId, Long target, String regionId);

  /**
   * 减少代理积分.
   */
  void reduceTarget(Collection<Long> teamIds, Long target);

  /**
   * 删除代理积分.
   */
  void removeByTeamIds(Collection<Long> teamIds);

  /**
   * 归零活动积分.
   */
  void initZero(Long acceptUserId, Long teamId);

  /**
   * 分页列表.
   */
  PageResult<AgentActivityCountDTO> pageData(AgentActivityCountType countType,
      String regionId, Integer current, Integer limitSize);

  /**
   * 归零活动积分团队.
   */
  void initZeroTeam(Long teamId);

  /**
   * 归零活动积分成员.
   */
  void initZeroMember(Set<Long> acceptUserIds);
}
