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
