from datetime import datetime from pydantic import BaseModel, Field class DocumentCreate(BaseModel): title: str content: str = "" folder_id: str | None = None class DocumentUpdate(BaseModel): title: str | None = None folder_id: str | None = None class DocumentContentUpdate(BaseModel): content: str = Field(..., max_length=1_000_000) # 1MB limit class TagInfo(BaseModel): id: str name: str color: str model_config = {"from_attributes": True} class DocumentResponse(BaseModel): id: str title: str content: str project_id: str folder_id: str | None path: str tags: list[TagInfo] = [] created_at: datetime updated_at: datetime model_config = {"from_attributes": True} class DocumentBriefResponse(BaseModel): """Brief document for list views without content.""" id: str title: str project_id: str folder_id: str | None path: str tags: list[TagInfo] = [] created_at: datetime updated_at: datetime model_config = {"from_attributes": True} class DocumentListResponse(BaseModel): documents: list[DocumentBriefResponse]