Spaces:
Sleeping
Sleeping
| from typing import Optional | |
| from pydantic import model_validator | |
| from sqlmodel import Field | |
| from typing_extensions import Self | |
| from .person import Person | |
| from utils.enums.major import Major | |
| class Student(Person, table=True): | |
| """ | |
| Represents a Student, inheriting from Person, with an additional major field. | |
| Attributes: | |
| major (str): The major that the student is pursuing. | |
| Methods: | |
| set_id() -> Self: An SQLModel model validator that automatically sets the student's ID with a "STU" prefix through handle_id method in the Person class. | |
| """ | |
| major: str = Field(default=Major.COMPUTER_SCIENCE) | |
| def set_id(self) -> Self: | |
| self.handle_id(prefix="STU") | |
| return self | |
| def __str__(self) -> str: | |
| """ | |
| Returns a string representation of the student. | |
| Returns: | |
| str: A description of the student including their name, ID number, and major. | |
| """ | |
| return f"Student(name: {self.name}, id: {self.id}, major: {self.major})" | |