Files
New-planet-ai-agent/models/schedule.py

41 lines
1.8 KiB
Python

"""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="Существующие задания для учета")