from typing import ClassVar, Union
from modules.database.tools.neontology.baserelationship import BaseRelationship
import modules.database.schemas.nodes.users as user_nodes
import modules.database.schemas.nodes.workers.workers as worker_nodes
import modules.database.schemas.nodes.schools.schools as school_nodes
import modules.database.schemas.nodes.workers.timetable as worker_timetable
import modules.database.schemas.nodes.schools.timetable as school_timetable

class EntityHasTimetable(BaseRelationship):
    __relationshiptype__: ClassVar[str] = 'HAS_TIMETABLE'
    source: Union[user_nodes.UserNode, worker_nodes.TeacherNode, worker_nodes.StudentNode, school_nodes.SubjectClassNode]
    target: worker_timetable.WorkerTimetableNode
    

class SchoolHasTimetable(BaseRelationship):
    __relationshiptype__: ClassVar[str] = 'HAS_TIMETABLE'
    source: school_nodes.SchoolNode
    target: school_timetable.SchoolTimetableNode