"""Pydantic модели для диалогов с ИИ.""" from datetime import datetime from typing import List, Optional from uuid import UUID from pydantic import BaseModel, Field class Message(BaseModel): """Модель сообщения в диалоге.""" role: str = Field(..., description="Роль: system, user, assistant") content: str = Field(..., description="Текст сообщения") timestamp: Optional[datetime] = None class ConversationCreate(BaseModel): """Модель для создания диалога.""" user_id: UUID title: Optional[str] = None class ConversationResponse(BaseModel): """Модель ответа с диалогом.""" id: UUID user_id: UUID title: Optional[str] messages: List[Message] = Field(default_factory=list) created_at: datetime updated_at: datetime class ChatRequest(BaseModel): """Запрос на отправку сообщения в чат.""" message: str = Field(..., min_length=1, max_length=2000) conversation_id: Optional[UUID] = None user_id: UUID class ChatResponse(BaseModel): """Ответ от ИИ-агента.""" response: str conversation_id: UUID tokens_used: Optional[int] = None model: Optional[str] = None