from datetime import datetime from pydantic import BaseModel, Field class ConversationCreate(BaseModel): title: str | None = Field(default=None, max_length=200) subject: str = "" grade: str = "" class ConversationRename(BaseModel): title: str = Field(..., min_length=1, max_length=200) pinned: bool | None = None class ChatSend(BaseModel): content: str = Field(..., min_length=1, max_length=4000) subject: str = "" grade: str = "" class MessageOut(BaseModel): id: int role: str content: str created_at: datetime | None = None model_config = {"from_attributes": True} class ConversationOut(BaseModel): id: int title: str subject: str = "" grade: str = "" pinned: bool = False created_at: datetime | None = None updated_at: datetime | None = None messages: list[MessageOut] = Field(default_factory=list) model_config = {"from_attributes": True}