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

/// 用户请求历史仓储接口
abstract class UserRequestHistoryRepository {
  // ── 监听 ─────────────────────────────────────────────────────────────────

  Stream<List<UserRequestHistory>> watchAll();

  Stream<UserRequestHistory?> watchById(int id);

  Stream<List<UserRequestHistory>> watchByStatus(int status);

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

  Future<List<UserRequestHistory>> getAll();

  Future<UserRequestHistory?> getById(int id);

  Future<List<UserRequestHistory>> getByStatus(int status);

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

  Future<void> insertOrReplace(UserRequestHistory history);

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

  Future<void> update(UserRequestHistory history);

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

  Future<void> delete(int id);

  Future<void> clear();
}
