import datetime from typing import ClassVar, Optional, List, Union from ..base_nodes import CCBaseNode class EntityTimetableBaseNode(CCBaseNode): start_date: datetime.date end_date: datetime.date class WorkerTimetableNode(EntityTimetableBaseNode): __primarylabel__: ClassVar[str] = 'WorkerTimetable' worker_timetable_id: str class TeacherTimetableNode(EntityTimetableBaseNode): __primarylabel__: ClassVar[str] = 'TeacherTimetable' teacher_timetable_id: str class UserTeacherTimetableNode(EntityTimetableBaseNode): __primarylabel__: ClassVar[str] = 'UserTeacherTimetable' user_teacher_timetable_id: str class StudentTimetableNode(EntityTimetableBaseNode): __primarylabel__: ClassVar[str] = 'StudentTimetable' student_timetable_id: str class SchoolAdminTimetableNode(EntityTimetableBaseNode): __primarylabel__: ClassVar[str] = 'SchoolAdminTimetable' school_admin_timetable_id: str class DeveloperTimetableNode(EntityTimetableBaseNode): __primarylabel__: ClassVar[str] = 'DeveloperTimetable' developer_timetable_id: str class SuperAdminTimetableNode(EntityTimetableBaseNode): __primarylabel__: ClassVar[str] = 'SuperAdminTimetable' super_admin_timetable_id: str class TimetableLessonNode(CCBaseNode): __primarylabel__: ClassVar[str] = 'TimetableLesson' subject_class: str date: datetime.date start_time: datetime.time end_time: datetime.time period_code: str class PlannedLessonNode(CCBaseNode): __primarylabel__: ClassVar[str] = 'PlannedLesson' date: datetime.date start_time: datetime.time end_time: datetime.time period_code: str subject_class: str year_group: str subject: str teacher_code: str planning_status: str topic_code: Optional[str] = None topic_name: Optional[str] = None lesson_code: Optional[str] = None lesson_name: Optional[str] = None learning_statement_codes: Optional[List[str]] = None learning_statements: Optional[List[str]] = None learning_resource_codes: Optional[List[str]] = None learning_resources: Optional[List[str]] = None