diff --git a/backend/app/routers/sessions.py b/backend/app/routers/sessions.py index c5d3a8a..c8dfb46 100644 --- a/backend/app/routers/sessions.py +++ b/backend/app/routers/sessions.py @@ -7,6 +7,7 @@ from sqlalchemy.orm import selectinload from app.dependencies import get_db, get_current_user from app.models.child import Child +from app.models.morning_routine import MorningRoutineItem from app.models.schedule import ScheduleBlock, ScheduleTemplate from app.models.subject import Subject # noqa: F401 — needed for selectinload chain from app.models.session import DailySession, TimerEvent @@ -68,6 +69,18 @@ async def _broadcast_session(db: AsyncSession, session: DailySession) -> None: ) completed_ids = [e.block_id for e in events_result.scalars().all() if e.block_id] + # Fetch morning routine items via child → user_id + child_result = await db.execute(select(Child).where(Child.id == session.child_id)) + child = child_result.scalar_one_or_none() + morning_routine: list[str] = [] + if child: + routine_result = await db.execute( + select(MorningRoutineItem) + .where(MorningRoutineItem.user_id == child.user_id) + .order_by(MorningRoutineItem.order_index, MorningRoutineItem.id) + ) + morning_routine = [item.text for item in routine_result.scalars().all()] + payload = { "event": "session_update", "session": { @@ -81,6 +94,7 @@ async def _broadcast_session(db: AsyncSession, session: DailySession) -> None: "completed_block_ids": completed_ids, "day_start_time": day_start_time, "day_end_time": day_end_time, + "morning_routine": morning_routine, } await manager.broadcast(session.child_id, payload)