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

/// 工作空间仓储接口
abstract class WorkspaceRepository {
  // ── 监听 ─────────────────────────────────────────────────────────────────

  Stream<List<Workspace>> watchAll();

  Stream<Workspace?> watchById(int id);

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

  Future<List<Workspace>> getAll();

  Future<Workspace?> getById(int id);

  Future<List<Workspace>> getByOwner(int ownerId);

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

  Future<void> insertOrReplace(Workspace workspace);

  Future<void> insertOrReplaceAll(List<Workspace> workspaces);

  Future<void> update(Workspace workspace);

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

  Future<void> delete(int id);

  Future<void> clear();
}
