35 lines
1.4 KiB
Python
35 lines
1.4 KiB
Python
import modules.database.schemas.nodes.calendars as calendar_schemas
|
|
from modules.database.tools.neontology.baserelationship import BaseRelationship
|
|
from typing import ClassVar
|
|
|
|
## Calendar layer relationships
|
|
class CalendarIncludesYear(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'CALENDAR_INCLUDES_YEAR'
|
|
source: calendar_schemas.CalendarNode
|
|
target: calendar_schemas.CalendarYearNode
|
|
|
|
class YearIncludesMonth(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'YEAR_INCLUDES_MONTH'
|
|
source: calendar_schemas.CalendarYearNode
|
|
target: calendar_schemas.CalendarMonthNode
|
|
|
|
class YearIncludesWeek(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'YEAR_INCLUDES_WEEK'
|
|
source: calendar_schemas.CalendarYearNode
|
|
target: calendar_schemas.CalendarWeekNode
|
|
|
|
class MonthIncludesDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'MONTH_INCLUDES_DAY'
|
|
source: calendar_schemas.CalendarMonthNode
|
|
target: calendar_schemas.CalendarDayNode
|
|
|
|
class WeekIncludesDay(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'WEEK_INCLUDES_DAY'
|
|
source: calendar_schemas.CalendarWeekNode
|
|
target: calendar_schemas.CalendarDayNode
|
|
|
|
class DayIncludesTimeChunk(BaseRelationship):
|
|
__relationshiptype__: ClassVar[str] = 'DAY_INCLUDES_TIME_CHUNK'
|
|
source: calendar_schemas.CalendarDayNode
|
|
target: calendar_schemas.CalendarTimeChunkNode
|