api/modules/database/schemas/relationships/planning_relationships.py
2025-07-11 13:52:19 +00:00

48 lines
2.1 KiB
Python

from typing import ClassVar, Union
from modules.database.tools.neontology.baserelationship import BaseRelationship
from modules.database.schemas.nodes.schools.timetable import AcademicPeriodNode, RegistrationPeriodNode
from modules.database.schemas.nodes.workers.timetable import TeacherTimetableNode, TimetableLessonNode, PlannedLessonNode
from modules.database.schemas.nodes.workers.workers import TeacherNode
from modules.database.schemas.nodes.schools.schools import SubjectClassNode
from modules.database.schemas.nodes.schools.pastoral import YearGroupSyllabusNode
class TimetableLessonBelongsToPeriod(BaseRelationship):
__relationshiptype__: ClassVar[str] = 'LESSON_BELONGS_TO_PERIOD'
source: TimetableLessonNode
target: Union[AcademicPeriodNode, RegistrationPeriodNode]
class TimetableLessonHasPlannedLesson(BaseRelationship):
__relationshiptype__: ClassVar[str] = 'TIMETABLE_LESSON_HAS_PLANNED_LESSON'
source: TimetableLessonNode
target: PlannedLessonNode
class TeacherHasTimetable(BaseRelationship):
__relationshiptype__: ClassVar[str] = 'TEACHER_HAS_TIMETABLE'
source: TeacherNode
target: TeacherTimetableNode
class TimetableHasClass(BaseRelationship):
__relationshiptype__: ClassVar[str] = 'TIMETABLE_HAS_CLASS'
source: TeacherTimetableNode
target: SubjectClassNode
class ClassHasLesson(BaseRelationship):
__relationshiptype__: ClassVar[str] = 'CLASS_HAS_LESSON'
source: SubjectClassNode
target: TimetableLessonNode
class TimetableLessonFollowsTimetableLesson(BaseRelationship):
__relationshiptype__: ClassVar[str] = 'TIMETABLE_LESSON_FOLLOWS_TIMETABLE_LESSON'
source: Union[TimetableLessonNode, PlannedLessonNode]
target: Union[TimetableLessonNode, PlannedLessonNode]
class PlannedLessonFollowsPlannedLesson(BaseRelationship):
__relationshiptype__: ClassVar[str] = 'PLANNED_LESSON_FOLLOWS_PLANNED_LESSON'
source: PlannedLessonNode
target: PlannedLessonNode
class SubjectClassBelongsToYearGroupSyllabus(BaseRelationship):
__relationshiptype__: ClassVar[str] = 'SUBJECT_CLASS_BELONGS_TO_YEAR_GROUP_SYLLABUS'
source: SubjectClassNode
target: YearGroupSyllabusNode