"""Схемы для задач и поиска.""" from datetime import datetime from typing import Any from pydantic import BaseModel, Field class TaskCreate(BaseModel): """Создание задачи.""" type: str input_data: dict[str, Any] = Field(default_factory=dict) class TaskResponse(BaseModel): """Ответ с информацией о задаче.""" id: str type: str status: str queue_position: int | None = None eta_seconds: int | None = None input_data: dict[str, Any] = Field(default_factory=dict) result: dict[str, Any] | None = None error: str | None = None created_at: datetime model_config = {"from_attributes": True} class SearchRequest(BaseModel): """Запрос на семантический поиск источников.""" query: str = Field(min_length=3, max_length=1000) lang: str | None = Field(default=None, description="Язык: ru, en или None для всех") year_from: int | None = Field(default=None, ge=1900, le=2100) year_to: int | None = Field(default=None, ge=1900, le=2100) category: str | None = Field(default=None, description="Тематическая категория")