shoaibahmed912's picture
updated models.py
0f86b72 verified
Raw History Blame Contribute Delete
1.32 kB
from __future__ import annotations
from typing import List, Literal, Optional
from pydantic import BaseModel, Field
class PersonalDetails(BaseModel):
name: Optional[str] = None
father_name: Optional[str] = None
registration_number: Optional[str] = None
roll_number: Optional[str] = None
program: Optional[str] = None
department: Optional[str] = None
institute: Optional[str] = None
class SubjectResult(BaseModel):
code: Optional[str] = None
title: Optional[str] = None
marks: Optional[float] = None
credit_hours: Optional[float] = None
grade: Optional[str] = None
gpa: Optional[float] = Field(default=None, description="Subject grade points, if shown on the transcript.")
class SemesterResult(BaseModel):
semester: Optional[str] = None
subjects: List[SubjectResult] = Field(default_factory=list)
semester_gpa: Optional[float] = None
credit_hours: Optional[float] = None
class TranscriptResponse(BaseModel):
document_status: Literal["transcript", "not_transcript", "unreadable"]
message: Optional[str] = None
personal_details: PersonalDetails = Field(default_factory=PersonalDetails)
semesters: List[SemesterResult] = Field(default_factory=list)
cgpa: Optional[float] = None
total_credit_hours: Optional[float] = None