You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
884 B
46 lines
884 B
from __future__ import annotations
|
|
|
|
from datetime import datetime
|
|
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class DirectorySummary(BaseModel):
|
|
id: str
|
|
name: str
|
|
parent_id: str | None
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
|
|
class DirectoryItem(BaseModel):
|
|
kind: str = Field(default="directory")
|
|
id: str
|
|
name: str
|
|
mime_type: str | None = None
|
|
size_bytes: int | None = None
|
|
created_at: datetime
|
|
updated_at: datetime
|
|
|
|
|
|
class DirectoryChildrenResponse(BaseModel):
|
|
directory: DirectorySummary
|
|
items: list[DirectoryItem]
|
|
next_cursor: str | None = None
|
|
|
|
|
|
class CreateDirectoryRequest(BaseModel):
|
|
parent_id: str
|
|
name: str
|
|
|
|
|
|
class CreateDirectoryResponse(BaseModel):
|
|
directory: DirectorySummary
|
|
|
|
|
|
class RenameDirectoryRequest(BaseModel):
|
|
name: str
|
|
|
|
|
|
class MoveDirectoryRequest(BaseModel):
|
|
target_parent_id: str
|
|
|