import '../models/file_item.dart';
import '../models/viewer_session.dart';
import '../models/editor_session.dart';
import '../models/annotation.dart';

abstract class FileRepository {
  Future<List<FileItem>> getFiles(String orgId, String path);
  Future<FileItem?> getFile(String orgId, String path);
  Future<void> uploadFile(String orgId, FileItem file);
  Future<void> deleteFile(String orgId, String path);
  Future<void> createFolder(String orgId, String parentPath, String folderName);
  Future<void> moveFile(String orgId, String sourcePath, String targetPath);
  Future<void> renameFile(String orgId, String path, String newName);
  Future<List<FileItem>> searchFiles(String orgId, String query);
  Future<ViewerSession> requestViewerSession(String orgId, String fileId);
  Future<EditorSession> requestEditorSession(String orgId, String fileId);
  Future<void> saveAnnotations(
    String orgId,
    String fileId,
    List<Annotation> annotations,
  );
}
