305 lines
14 KiB
Python
305 lines
14 KiB
Python
import modules.database.schemas.nodes.schools.timetable as neo_timetable
|
|
from modules.database.tools.neontology.baserelationship import BaseRelationship
|
|
from typing import ClassVar
|
|
|
|
# Timetable hierarchy structure relationships
|
|
class AcademicTimetableHasAcademicYear(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_TIMETABLE_HAS_ACADEMIC_YEAR'
|
|
source: neo_timetable.SchoolTimetableNode
|
|
target: neo_timetable.AcademicYearNode
|
|
|
|
class AcademicYearHasAcademicTerm(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_YEAR_HAS_ACADEMIC_TERM'
|
|
source: neo_timetable.AcademicYearNode
|
|
target: neo_timetable.AcademicTermNode
|
|
|
|
class AcademicYearHasAcademicTermBreak(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_YEAR_HAS_ACADEMIC_TERM_BREAK'
|
|
source: neo_timetable.AcademicYearNode
|
|
target: neo_timetable.AcademicTermBreakNode
|
|
|
|
class AcademicYearHasAcademicWeek(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_YEAR_HAS_ACADEMIC_WEEK'
|
|
source: neo_timetable.AcademicYearNode
|
|
target: neo_timetable.AcademicWeekNode
|
|
|
|
class AcademicYearHasHolidayWeek(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_YEAR_HAS_HOLIDAY_WEEK'
|
|
source: neo_timetable.AcademicYearNode
|
|
target: neo_timetable.HolidayWeekNode
|
|
|
|
class AcademicTermHasAcademicWeek(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_TERM_HAS_ACADEMIC_WEEK'
|
|
source: neo_timetable.AcademicTermNode
|
|
target: neo_timetable.AcademicWeekNode
|
|
|
|
class AcademicTermBreakHasHolidayWeek(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_TERM_BREAK_HAS_HOLIDAY_WEEK'
|
|
source: neo_timetable.AcademicTermBreakNode
|
|
target: neo_timetable.HolidayWeekNode
|
|
|
|
class AcademicTermBreakHasHolidayDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_TERM_BREAK_HAS_HOLIDAY_DAY'
|
|
source: neo_timetable.AcademicTermBreakNode
|
|
target: neo_timetable.HolidayDayNode
|
|
|
|
class AcademicTermHasAcademicDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_TERM_HAS_ACADEMIC_DAY'
|
|
source: neo_timetable.AcademicTermNode
|
|
target: neo_timetable.AcademicDayNode
|
|
|
|
class AcademicTermHasHolidayDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_TERM_HAS_HOLIDAY_DAY'
|
|
source: neo_timetable.AcademicTermNode
|
|
target: neo_timetable.HolidayDayNode
|
|
|
|
class AcademicTermHasOffTimetableDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_TERM_HAS_OFF_TIMETABLE_DAY'
|
|
source: neo_timetable.AcademicTermNode
|
|
target: neo_timetable.OffTimetableDayNode
|
|
|
|
class AcademicTermHasStaffDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_TERM_HAS_STAFF_DAY'
|
|
source: neo_timetable.AcademicTermNode
|
|
target: neo_timetable.StaffDayNode
|
|
|
|
class AcademicWeekHasAcademicDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_WEEK_HAS_ACADEMIC_DAY'
|
|
source: neo_timetable.AcademicWeekNode
|
|
target: neo_timetable.AcademicDayNode
|
|
|
|
class AcademicWeekHasHolidayDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_WEEK_HAS_HOLIDAY_DAY'
|
|
source: neo_timetable.AcademicWeekNode
|
|
target: neo_timetable.HolidayDayNode
|
|
|
|
class AcademicWeekHasOffTimetableDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_WEEK_HAS_OFF_TIMETABLE_DAY'
|
|
source: neo_timetable.AcademicWeekNode
|
|
target: neo_timetable.OffTimetableDayNode
|
|
|
|
class AcademicWeekHasStaffDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_WEEK_HAS_STAFF_DAY'
|
|
source: neo_timetable.AcademicWeekNode
|
|
target: neo_timetable.StaffDayNode
|
|
|
|
class HolidayWeekHasHolidayDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'HOLIDAY_WEEK_HAS_HOLIDAY_DAY'
|
|
source: neo_timetable.HolidayWeekNode
|
|
target: neo_timetable.HolidayDayNode
|
|
|
|
class AcademicDayHasAcademicPeriod(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_DAY_HAS_ACADEMIC_PERIOD'
|
|
source: neo_timetable.AcademicDayNode
|
|
target: neo_timetable.AcademicPeriodNode
|
|
|
|
class AcademicDayHasRegistrationPeriod(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_DAY_HAS_REGISTRATION_PERIOD'
|
|
source: neo_timetable.AcademicDayNode
|
|
target: neo_timetable.RegistrationPeriodNode
|
|
|
|
class AcademicDayHasBreakPeriod(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_DAY_HAS_BREAK_PERIOD'
|
|
source: neo_timetable.AcademicDayNode
|
|
target: neo_timetable.BreakPeriodNode
|
|
|
|
class AcademicDayHasOffTimetablePeriod(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_DAY_HAS_OFF_TIMETABLE_PERIOD'
|
|
source: neo_timetable.AcademicDayNode
|
|
target: neo_timetable.OffTimetablePeriodNode
|
|
|
|
# Timetable sequence relationships
|
|
class AcademicYearFollowsAcademicYear(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_YEAR_FOLLOWS_ACADEMIC_YEAR'
|
|
source: neo_timetable.AcademicYearNode
|
|
target: neo_timetable.AcademicYearNode
|
|
|
|
class AcademicTermFollowsAcademicTermBreak(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_TERM_FOLLOWS_ACADEMIC_TERM_BREAK'
|
|
source: neo_timetable.AcademicTermBreakNode # Term break ends
|
|
target: neo_timetable.AcademicTermNode # New term starts
|
|
|
|
class AcademicTermBreakFollowsAcademicTerm(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_TERM_BREAK_FOLLOWS_ACADEMIC_TERM'
|
|
source: neo_timetable.AcademicTermNode # Term ends
|
|
target: neo_timetable.AcademicTermBreakNode # Term break starts
|
|
|
|
class AcademicWeekFollowsAcademicWeek(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_WEEK_FOLLOWS_ACADEMIC_WEEK'
|
|
source: neo_timetable.AcademicWeekNode
|
|
target: neo_timetable.AcademicWeekNode
|
|
|
|
class HolidayWeekFollowsHolidayWeek(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'HOLIDAY_WEEK_FOLLOWS_HOLIDAY_WEEK'
|
|
source: neo_timetable.HolidayWeekNode
|
|
target: neo_timetable.HolidayWeekNode
|
|
|
|
class AcademicWeekFollowsHolidayWeek(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_WEEK_FOLLOWS_HOLIDAY_WEEK'
|
|
source: neo_timetable.HolidayWeekNode
|
|
target: neo_timetable.AcademicWeekNode
|
|
|
|
class HolidayWeekFollowsAcademicWeek(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'HOLIDAY_WEEK_FOLLOWS_ACADEMIC_WEEK'
|
|
source: neo_timetable.AcademicWeekNode
|
|
target: neo_timetable.HolidayWeekNode
|
|
|
|
class AcademicDayFollowsAcademicDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_DAY_FOLLOWS_ACADEMIC_DAY'
|
|
source: neo_timetable.AcademicDayNode
|
|
target: neo_timetable.AcademicDayNode
|
|
|
|
class AcademicDayFollowsHolidayDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_DAY_FOLLOWS_HOLIDAY_DAY'
|
|
source: neo_timetable.HolidayDayNode
|
|
target: neo_timetable.AcademicDayNode
|
|
|
|
class AcademicDayFollowsOffTimetableDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_DAY_FOLLOWS_OFF_TIMETABLE_DAY'
|
|
source: neo_timetable.OffTimetableDayNode
|
|
target: neo_timetable.AcademicDayNode
|
|
|
|
class AcademicDayFollowsStaffDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_DAY_FOLLOWS_STAFF_DAY'
|
|
source: neo_timetable.StaffDayNode
|
|
target: neo_timetable.AcademicDayNode
|
|
|
|
class HolidayDayFollowsHolidayDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'HOLIDAY_DAY_FOLLOWS_HOLIDAY_DAY'
|
|
source: neo_timetable.HolidayDayNode
|
|
target: neo_timetable.HolidayDayNode
|
|
|
|
class HolidayDayFollowsAcademicDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'HOLIDAY_DAY_FOLLOWS_ACADEMIC_DAY'
|
|
source: neo_timetable.AcademicDayNode
|
|
target: neo_timetable.HolidayDayNode
|
|
|
|
class HolidayDayFollowsOffTimetableDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'HOLIDAY_DAY_FOLLOWS_OFF_TIMETABLE_DAY'
|
|
source: neo_timetable.OffTimetableDayNode
|
|
target: neo_timetable.HolidayDayNode
|
|
|
|
class HolidayDayFollowsStaffDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'HOLIDAY_DAY_FOLLOWS_STAFF_DAY'
|
|
source: neo_timetable.StaffDayNode
|
|
target: neo_timetable.HolidayDayNode
|
|
|
|
class OffTimetableDayFollowsOffTimetableDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'OFF_TIMETABLE_DAY_FOLLOWS_OFF_TIMETABLE_DAY'
|
|
source: neo_timetable.OffTimetableDayNode
|
|
target: neo_timetable.OffTimetableDayNode
|
|
|
|
class OffTimetableDayFollowsAcademicDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'OFF_TIMETABLE_DAY_FOLLOWS_ACADEMIC_DAY'
|
|
source: neo_timetable.AcademicDayNode
|
|
target: neo_timetable.OffTimetableDayNode
|
|
|
|
class OffTimetableDayFollowsHolidayDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'OFF_TIMETABLE_DAY_FOLLOWS_HOLIDAY_DAY'
|
|
source: neo_timetable.HolidayDayNode
|
|
target: neo_timetable.OffTimetableDayNode
|
|
|
|
class OffTimetableDayFollowsStaffDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'OFF_TIMETABLE_DAY_FOLLOWS_STAFF_DAY'
|
|
source: neo_timetable.StaffDayNode
|
|
target: neo_timetable.OffTimetableDayNode
|
|
|
|
class StaffDayFollowsStaffDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'STAFF_DAY_FOLLOWS_STAFF_DAY'
|
|
source: neo_timetable.StaffDayNode
|
|
target: neo_timetable.StaffDayNode
|
|
|
|
class StaffDayFollowsAcademicDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'STAFF_DAY_FOLLOWS_ACADEMIC_DAY'
|
|
source: neo_timetable.AcademicDayNode
|
|
target: neo_timetable.StaffDayNode
|
|
|
|
class StaffDayFollowsHolidayDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'STAFF_DAY_FOLLOWS_HOLIDAY_DAY'
|
|
source: neo_timetable.HolidayDayNode
|
|
target: neo_timetable.StaffDayNode
|
|
|
|
class StaffDayFollowsOffTimetableDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'STAFF_DAY_FOLLOWS_OFF_TIMETABLE_DAY'
|
|
source: neo_timetable.OffTimetableDayNode
|
|
target: neo_timetable.StaffDayNode
|
|
|
|
class AcademicPeriodFollowsAcademicPeriod(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_PERIOD_FOLLOWS_ACADEMIC_PERIOD'
|
|
source: neo_timetable.AcademicPeriodNode
|
|
target: neo_timetable.AcademicPeriodNode
|
|
|
|
class AcademicPeriodFollowsBreakPeriod(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_PERIOD_FOLLOWS_BREAK_PERIOD'
|
|
source: neo_timetable.BreakPeriodNode
|
|
target: neo_timetable.AcademicPeriodNode
|
|
|
|
class AcademicPeriodFollowsRegistrationPeriod(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_PERIOD_FOLLOWS_REGISTRATION_PERIOD'
|
|
source: neo_timetable.RegistrationPeriodNode
|
|
target: neo_timetable.AcademicPeriodNode
|
|
|
|
class AcademicPeriodFollowsOffTimetablePeriod(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'ACADEMIC_PERIOD_FOLLOWS_OFF_TIMETABLE_PERIOD'
|
|
source: neo_timetable.OffTimetablePeriodNode
|
|
target: neo_timetable.AcademicPeriodNode
|
|
|
|
class BreakPeriodFollowsAcademicPeriod(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'BREAK_PERIOD_FOLLOWS_ACADEMIC_PERIOD'
|
|
source: neo_timetable.AcademicPeriodNode
|
|
target: neo_timetable.BreakPeriodNode
|
|
|
|
class RegistrationPeriodFollowsAcademicPeriod(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'REGISTRATION_PERIOD_FOLLOWS_ACADEMIC_PERIOD'
|
|
source: neo_timetable.AcademicPeriodNode
|
|
target: neo_timetable.RegistrationPeriodNode
|
|
|
|
class RegistrationPeriodFollowsOffTimetablePeriod(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'REGISTRATION_PERIOD_FOLLOWS_OFF_TIMETABLE_PERIOD'
|
|
source: neo_timetable.OffTimetablePeriodNode
|
|
target: neo_timetable.RegistrationPeriodNode
|
|
|
|
class OffTimetablePeriodFollowsAcademicPeriod(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'OFF_TIMETABLE_PERIOD_FOLLOWS_ACADEMIC_PERIOD'
|
|
source: neo_timetable.AcademicPeriodNode
|
|
target: neo_timetable.OffTimetablePeriodNode
|
|
|
|
class OffTimetablePeriodFollowsRegistrationPeriod(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'OFF_TIMETABLE_PERIOD_FOLLOWS_REGISTRATION_PERIOD'
|
|
source: neo_timetable.RegistrationPeriodNode
|
|
target: neo_timetable.OffTimetablePeriodNode
|
|
|
|
class OffTimetablePeriodFollowsOffTimetablePeriod(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'OFF_TIMETABLE_PERIOD_FOLLOWS_OFF_TIMETABLE_PERIOD'
|
|
source: neo_timetable.OffTimetablePeriodNode
|
|
target: neo_timetable.OffTimetablePeriodNode
|
|
|
|
class BreakPeriodFollowsBreakPeriod(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'BREAK_PERIOD_FOLLOWS_BREAK_PERIOD'
|
|
source: neo_timetable.BreakPeriodNode
|
|
target: neo_timetable.BreakPeriodNode
|
|
|
|
class BreakPeriodFollowsRegistrationPeriod(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'BREAK_PERIOD_FOLLOWS_REGISTRATION_PERIOD'
|
|
source: neo_timetable.RegistrationPeriodNode
|
|
target: neo_timetable.BreakPeriodNode
|
|
|
|
class BreakPeriodFollowsOffTimetablePeriod(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'BREAK_PERIOD_FOLLOWS_OFF_TIMETABLE_PERIOD'
|
|
source: neo_timetable.OffTimetablePeriodNode
|
|
target: neo_timetable.BreakPeriodNode
|
|
|
|
class RegistrationPeriodFollowsBreakPeriod(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'REGISTRATION_PERIOD_FOLLOWS_BREAK_PERIOD'
|
|
source: neo_timetable.BreakPeriodNode
|
|
target: neo_timetable.RegistrationPeriodNode
|
|
|
|
class OffTimetablePeriodFollowsBreakPeriod(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'OFF_TIMETABLE_PERIOD_FOLLOWS_BREAK_PERIOD'
|
|
source: neo_timetable.BreakPeriodNode
|
|
target: neo_timetable.OffTimetablePeriodNode
|
|
|
|
class RegistrationPeriodFollowsRegistrationPeriod(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'REGISTRATION_PERIOD_FOLLOWS_REGISTRATION_PERIOD'
|
|
source: neo_timetable.RegistrationPeriodNode
|
|
target: neo_timetable.RegistrationPeriodNode |