import modules.database.schemas.nodes.calendars as calendar_schemas
from modules.database.tools.neontology.baserelationship import BaseRelationship
from typing import ClassVar

# Sequenced Relationships for Calendar
class YearFollowsYear(BaseRelationship):
    __relationshiptype__: ClassVar[str] = 'YEAR_FOLLOWS_YEAR'
    source: calendar_schemas.CalendarYearNode
    target: calendar_schemas.CalendarYearNode

class MonthFollowsMonth(BaseRelationship):
    __relationshiptype__: ClassVar[str] = 'MONTH_FOLLOWS_MONTH'
    source: calendar_schemas.CalendarMonthNode
    target: calendar_schemas.CalendarMonthNode

class WeekFollowsWeek(BaseRelationship):
    __relationshiptype__: ClassVar[str] = 'WEEK_FOLLOWS_WEEK'
    source: calendar_schemas.CalendarWeekNode
    target: calendar_schemas.CalendarWeekNode

class DayFollowsDay(BaseRelationship):
    __relationshiptype__: ClassVar[str] = 'DAY_FOLLOWS_DAY'
    source: calendar_schemas.CalendarDayNode
    target: calendar_schemas.CalendarDayNode

class TimeChunkFollowsTimeChunk(BaseRelationship):
    __relationshiptype__: ClassVar[str] = 'TIME_CHUNK_FOLLOWS_TIME_CHUNK'
    source: calendar_schemas.CalendarTimeChunkNode
    target: calendar_schemas.CalendarTimeChunkNode
