feat(phase-b): school/timetable API routers + graph nav tree

New routers (all previously untracked):
- graph_tree_router: /graph/tree, /graph/node/children, /graph/calendar/academic
  Supabase-driven tree builder; institute DB resolved by teacher email scan
- school_router: /school/status (role + calendar flags), /school/info PATCH
  Self-heals profiles.school_id from institute_memberships if null
- timetable_builder_router: /timetable/setup (AcademicYear/Term/Week + SchoolTimetable),
  /timetable/slots (read/write TimetableSlot nodes), /timetable/init (TeacherTimetable)
- user_init_router: /user/init (provision user node in institute DB)

routers.py: register all new routers with correct prefixes
users.py: add JournalNode and PlannerNode schema classes

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
This commit is contained in:
2026-05-26 01:24:44 +01:00
co-authored by Claude Sonnet 4.6
parent 9e9976c7a6
commit 4c34da6370
6 changed files with 1249 additions and 1 deletions
+9 -1
View File
@@ -1,5 +1,13 @@
from typing import ClassVar
from .base_nodes import UserBaseNode
from .base_nodes import UserBaseNode, CCBaseNode
class UserNode(UserBaseNode):
__primarylabel__: ClassVar[str] = 'User'
class JournalNode(CCBaseNode):
__primarylabel__: ClassVar[str] = 'Journal'
user_id: str
class PlannerNode(CCBaseNode):
__primarylabel__: ClassVar[str] = 'Planner'
user_id: str