from datetime import time from pydantic import BaseModel from app.schemas.subject import SubjectOut class ScheduleBlockCreate(BaseModel): subject_id: int | None = None time_start: time time_end: time duration_minutes: int | None = None label: str | None = None notes: str | None = None order_index: int = 0 class ScheduleBlockUpdate(BaseModel): subject_id: int | None = None time_start: time | None = None time_end: time | None = None duration_minutes: int | None = None label: str | None = None notes: str | None = None order_index: int | None = None class ScheduleBlockOut(BaseModel): id: int subject_id: int | None subject: SubjectOut | None = None time_start: time time_end: time duration_minutes: int | None label: str | None notes: str | None order_index: int model_config = {"from_attributes": True} class ScheduleTemplateCreate(BaseModel): name: str child_id: int | None = None is_default: bool = False day_start_time: time | None = None day_end_time: time | None = None blocks: list[ScheduleBlockCreate] = [] class ScheduleTemplateUpdate(BaseModel): name: str | None = None child_id: int | None = None is_default: bool | None = None day_start_time: time | None = None day_end_time: time | None = None class ScheduleTemplateOut(BaseModel): id: int name: str child_id: int | None is_default: bool day_start_time: time | None day_end_time: time | None blocks: list[ScheduleBlockOut] = [] model_config = {"from_attributes": True}