127 lines
2.0 KiB
Python
127 lines
2.0 KiB
Python
from __future__ import annotations
|
|
|
|
from pydantic import BaseModel
|
|
|
|
|
|
class ErrorBody(BaseModel):
|
|
code: str
|
|
message: str
|
|
details: dict[str, str] | None = None
|
|
|
|
|
|
class ErrorResponse(BaseModel):
|
|
error: ErrorBody
|
|
|
|
|
|
class DirectoryEntry(BaseModel):
|
|
name: str
|
|
path: str
|
|
modified: str
|
|
|
|
|
|
class FileEntry(BaseModel):
|
|
name: str
|
|
path: str
|
|
size: int
|
|
modified: str
|
|
|
|
|
|
class BrowseResponse(BaseModel):
|
|
path: str
|
|
directories: list[DirectoryEntry]
|
|
files: list[FileEntry]
|
|
|
|
|
|
class MkdirRequest(BaseModel):
|
|
parent_path: str
|
|
name: str
|
|
|
|
|
|
class MkdirResponse(BaseModel):
|
|
path: str
|
|
|
|
|
|
class RenameRequest(BaseModel):
|
|
path: str
|
|
new_name: str
|
|
|
|
|
|
class RenameResponse(BaseModel):
|
|
path: str
|
|
|
|
|
|
class DeleteRequest(BaseModel):
|
|
path: str
|
|
|
|
|
|
class DeleteResponse(BaseModel):
|
|
path: str
|
|
|
|
|
|
class TaskListItem(BaseModel):
|
|
id: str
|
|
operation: str
|
|
status: str
|
|
source: str
|
|
destination: str
|
|
created_at: str
|
|
finished_at: str | None = None
|
|
|
|
|
|
class TaskListResponse(BaseModel):
|
|
items: list[TaskListItem]
|
|
|
|
|
|
class TaskDetailResponse(BaseModel):
|
|
id: str
|
|
operation: str
|
|
status: str
|
|
source: str
|
|
destination: str
|
|
done_bytes: int | None = None
|
|
total_bytes: int | None = None
|
|
done_items: int | None = None
|
|
total_items: int | None = None
|
|
current_item: str | None = None
|
|
failed_item: str | None = None
|
|
error_code: str | None = None
|
|
error_message: str | None = None
|
|
created_at: str
|
|
started_at: str | None = None
|
|
finished_at: str | None = None
|
|
|
|
|
|
class CopyRequest(BaseModel):
|
|
source: str
|
|
destination: str
|
|
|
|
|
|
class TaskCreateResponse(BaseModel):
|
|
task_id: str
|
|
status: str
|
|
|
|
|
|
class MoveRequest(BaseModel):
|
|
source: str
|
|
destination: str
|
|
|
|
|
|
class BookmarkCreateRequest(BaseModel):
|
|
path: str
|
|
label: str
|
|
|
|
|
|
class BookmarkItem(BaseModel):
|
|
id: int
|
|
path: str
|
|
label: str
|
|
created_at: str
|
|
|
|
|
|
class BookmarkListResponse(BaseModel):
|
|
items: list[BookmarkItem]
|
|
|
|
|
|
class BookmarkDeleteResponse(BaseModel):
|
|
id: int
|