from datetime import datetime from pydantic import BaseModel class CategoryOut(BaseModel): id: str name: str model_config = {"from_attributes": True} class DocumentOut(BaseModel): id: str user_id: str filename: str title: str | None file_size: int status: str document_type: str | None extracted_data: str | None # JSON string — frontend calls JSON.parse() tags: str | None # JSON array string error_message: str | None created_at: datetime processed_at: datetime | None categories: list[CategoryOut] = [] model_config = {"from_attributes": True} class DocumentPage(BaseModel): items: list[DocumentOut] total: int page: int pages: int class DocumentStatusOut(BaseModel): id: str status: str error_message: str | None processed_at: datetime | None model_config = {"from_attributes": True} class DocumentTypeUpdate(BaseModel): document_type: str class TagsUpdate(BaseModel): tags: list[str] class TitleUpdate(BaseModel): title: str