"""Voice schemas for VoIdeaAI.""" from datetime import datetime from typing import Optional from pydantic import BaseModel, Field class ChatRequest(BaseModel): text: str session_id: str | None = None vad_enabled: bool | None = None wake_word_detected: bool | None = None audio_duration_ms: int | None = None pipeline_mode: str | None = None # "fast" | "full" | "off" class ChatResponse(BaseModel): response: str agent_name: str agent_description: str confidence: int verification_status: str processing_time_ms: float interaction_id: str session_id: str suggested_command: str | None = None class CommandCreate(BaseModel): phrase: str = Field(min_length=1, max_length=255) action: str = Field(min_length=1, max_length=50) agent_name: str | None = None class CommandResponse(BaseModel): id: str phrase: str action: str agent_name: str | None count: int is_active: bool class RateRequest(BaseModel): interaction_id: str rating: int = Field(ge=1, le=5) class SessionResponse(BaseModel): id: str title: str status: str idea_id: Optional[str] = None created_at: datetime updated_at: datetime class CreateSessionRequest(BaseModel): title: str = "Новое обсуждение" class SaveIdeaRequest(BaseModel): session_id: str class SaveIdeaResponse(BaseModel): idea_id: str title: str exported: bool = False