import 'package:im_app/domain/entities/pending_friend_request_history.dart';

/// 待处理好友请求历史仓储接口
abstract class PendingFriendRequestHistoryRepository {
  // ── 监听 ─────────────────────────────────────────────────────────────────

  Stream<List<PendingFriendRequestHistory>> watchAll();

  Stream<PendingFriendRequestHistory?> watchById(int id);

  Stream<List<PendingFriendRequestHistory>> watchByUid(int uid);

  // ── 读取 ─────────────────────────────────────────────────────────────────

  Future<List<PendingFriendRequestHistory>> getAll();

  Future<PendingFriendRequestHistory?> getById(int id);

  Future<List<PendingFriendRequestHistory>> getByUid(int uid);

  // ── 写入 ─────────────────────────────────────────────────────────────────

  Future<void> insertOrReplace(PendingFriendRequestHistory history);

  Future<void> insertOrReplaceAll(List<PendingFriendRequestHistory> histories);

  Future<void> update(PendingFriendRequestHistory history);

  // ── 删除 ─────────────────────────────────────────────────────────────────

  Future<void> delete(int id);

  Future<void> deleteByUid(int uid);

  Future<void> clear();
}
