package com.red.circle.other.infra.database.mongo.service.user.count;

import com.red.circle.other.infra.database.mongo.entity.user.count.UserGuardCount;
import java.util.List;

/**
 * 用户守护.
 *
 * @author pengliang on 2021/11/15
 */
public interface UserGuardCountService {

  /**
   * 累计贡献-持续15天内.
   *
   * @param userId      用户id
   * @param guardUserId 守护用户id
   * @param quantity    数量
   */
  void incrLasts15Days(Long userId, Long guardUserId, Long quantity);

  /**
   * 累计贡献-持续15天内.
   *
   * @param userId       用户id
   * @param guardUserIds 守护用户id集合
   * @param quantity     数量
   */
  void incrLasts15Days(Long userId, List<Long> guardUserIds, Long quantity);

  /**
   * 用户守护榜单.
   *
   * @param guardUserId 守护用户id
   * @param topSize     数量
   */
  List<UserGuardCount> listUserGuardTop(Long guardUserId, Integer topSize);

}
