"""Pydantic модели для расписаний.""" from datetime import date from typing import List, Optional from uuid import UUID from pydantic import BaseModel, Field class Task(BaseModel): """Модель задания в расписании.""" id: Optional[UUID] = None title: str = Field(..., description="Название задания") description: Optional[str] = Field(None, description="Подробное описание") duration_minutes: int = Field(..., ge=1, description="Длительность в минутах") category: str = Field(..., description="Категория задания") image_url: Optional[str] = Field(None, description="URL изображения") completed: bool = Field(default=False, description="Выполнено ли задание") order: int = Field(default=0, description="Порядок в расписании") class Schedule(BaseModel): """Модель расписания.""" id: Optional[UUID] = None title: str = Field(..., description="Название расписания") date: date = Field(..., description="Дата расписания") tasks: List[Task] = Field(default_factory=list, description="Список заданий") user_id: Optional[UUID] = None created_at: Optional[str] = None class ScheduleGenerateRequest(BaseModel): """Запрос на генерацию расписания.""" child_age: int = Field(..., ge=1, le=18, description="Возраст ребенка") preferences: List[str] = Field(default_factory=list, description="Предпочтения ребенка") date: date = Field(..., description="Дата расписания") existing_tasks: Optional[List[str]] = Field(None, description="Существующие задания для учета")