"""Request / Response Pydantic models.""" from __future__ import annotations from pydantic import BaseModel, Field class ChatRequest(BaseModel): message: str = Field(..., min_length=1) conversation_id: str = Field(..., min_length=1) tools: list[str] = Field(default_factory=list) model: str = Field(default="flash", pattern="^(flash|pro)$") class ChatResponse(BaseModel): """Non-streaming chat response (for reference; SSE is primary).""" conversation_id: str content: str class ConversationCreate(BaseModel): title: str = Field(default="New conversation") class ConversationUpdate(BaseModel): title: str class MessageOut(BaseModel): id: str role: str content: str created_at: str class ConversationOut(BaseModel): id: str title: str created_at: str updated_at: str class ConversationDetail(ConversationOut): """Conversation with messages, returned by GET /api/conversations/{id}.""" messages: list[MessageOut] = Field(default_factory=list)