Source code for vitap_vtop_client.course_page.model.course_page_model

from typing import List, Optional

from pydantic import BaseModel


[docs] class CourseOptionModel(BaseModel): """A course from the course page dropdown.""" value: str label: str course_code: str = "" course_title: str = "" course_type: str = ""
[docs] class SlotOptionModel(BaseModel): """A slot from the slot dropdown.""" value: str label: str
[docs] class CourseClassEntryModel(BaseModel): """A class row from the course slots table.""" sl_no: int class_group: str = "" course_code: str = "" course_title: str = "" course_type: str = "" class_id: str = "" slot: str = "" faculty: str = "" semester_id: str = "" # Needed alongside class_id to open the course detail page. erp_id: str = ""
[docs] class ReferenceMaterialModel(BaseModel): """A file attached to a lecture.""" label: str download_path: str
[docs] class LectureEntryModel(BaseModel): """A lecture row from the course detail page.""" sl_no: int date: str = "" formatted_date: str = "" day: str = "" topic: str = "" reference_materials: List[ReferenceMaterialModel] = []
[docs] class CourseInfoModel(BaseModel): """The course summary shown at the top of the detail page.""" class_group: str = "" course_code: str = "" course_title: str = "" course_type: str = "" class_id: str = "" slot: str = "" faculty: str = "" course_id: str = ""
[docs] class CoursePageDetailModel(BaseModel): """A course's detail page, with its lectures and downloadable material.""" course_info: CourseInfoModel = CourseInfoModel() semester_id: str = "" download_all_path: Optional[str] = None download_general_materials_path: Optional[str] = None syllabus_download_path: Optional[str] = None course_plan_download_path: Optional[str] = None lectures: List[LectureEntryModel] = []
[docs] class CoursesResponseModel(BaseModel): courses: List[CourseOptionModel] = []
[docs] class SlotsResponseModel(BaseModel): slots: List[SlotOptionModel] = [] class_entries: List[CourseClassEntryModel] = []