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

import com.red.circle.other.infra.database.mongo.entity.user.friend.FriendApplyStatus;
import com.red.circle.other.infra.database.mongo.entity.user.friend.FriendsApply;
import java.util.List;

/**
 * 好友申请列表.
 *
 * @author pengliang on 2021/5/6
 */
public interface FriendsApplyListService {

  /**
   * 添加申请记录.
   *
   * @param friendsApply 模型.
   */
  void add(FriendsApply friendsApply);

  /**
   * 改变用户状态.
   *
   * @param userId      用户id
   * @param applyUserId 申请用户id
   * @param status      状态
   */
  void changeStatus(Long userId, Long applyUserId, FriendApplyStatus status);

  /**
   * 添加申请记录.
   *
   * @param userId       用户id.
   * @param lastTimingId 最后一条时序记录id.
   */
  List<FriendsApply> flow(Long userId, Long lastTimingId);

  /**
   * 统计申请记录.
   *
   * @param userId 用户id.
   */
  Long countFriendsApply(Long userId);

}
