interviewbot / backend /schemas /interview.py
sajith-0701's picture
v2.1
d50ee26
from pydantic import BaseModel
from typing import Optional, List, Dict
class StartInterviewRequest(BaseModel):
role_id: Optional[str] = None
custom_role: Optional[str] = None
interview_type: Optional[str] = "resume"
topic_id: Optional[str] = None
job_description_id: Optional[str] = None
class VerifyResumeJdRequest(BaseModel):
role_id: Optional[str] = None
custom_role: Optional[str] = None
job_description_id: str
class SubmitAnswerRequest(BaseModel):
session_id: str
question_id: str
answer: str
class QuitInterviewRequest(BaseModel):
session_id: str
class InterviewQuestion(BaseModel):
question_id: str
question: str
difficulty: str = "medium"
question_number: int = 1
total_questions: int = 10
class InterviewStartResponse(BaseModel):
session_id: str
question: InterviewQuestion
message: str = "Interview started"
class AnswerResponse(BaseModel):
session_id: str
next_question: Optional[InterviewQuestion] = None
is_complete: bool = False
message: str = ""
class QuitInterviewResponse(BaseModel):
session_id: str
report_generated: bool = False
message: str = ""
class QuestionScore(BaseModel):
question: str
answer: str
score: int
feedback: str
class InterviewReport(BaseModel):
session_id: str
overall_score: int
total_questions: int
strengths: List[str]
weaknesses: List[str]
detailed_scores: List[QuestionScore]
recommendations: List[str]
completed_at: str