first commit

This commit is contained in:
Anurag Jangid 2026-10-08 02:50:35 +05:30
commit 7a72438fd1
74 changed files with 7548 additions and 0 deletions

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,13 @@
from pydantic import BaseModel
from typing import List
from datetime import datetime
class PronunciationItem(BaseModel):
word: str
phonetic: str
syllables: List[str]
definition: str
class PronunciationDB(PronunciationItem):
id: str
created_at: datetime

View file

@ -0,0 +1,22 @@
from pydantic import BaseModel
from typing import List, Optional
from datetime import datetime
class QuestionItem(BaseModel):
question: str
expected_answer: str
hint: str
difficulty: Optional[str] = "Medium"
category: Optional[str] = "Technical"
class QuestionSetIn(BaseModel):
resume_id: str
requirement_id: str
class QuestionSetOut(BaseModel):
id: str
user_id: str
resume_id: str
requirement_id: str
questions: List[QuestionItem]
created_at: datetime

View file

@ -0,0 +1,18 @@
from pydantic import BaseModel, Field
from typing import List, Optional
from datetime import datetime
class RequirementsIn(BaseModel):
role_name: str
experience_years: int = 0
mandatory_skills: List[str] = []
nice_to_have_skills: List[str] = []
job_description: Optional[str] = None
class RequirementsOut(RequirementsIn):
id: str
user_id: str
created_at: datetime
updated_at: datetime

View file

@ -0,0 +1,31 @@
from pydantic import BaseModel
from typing import Optional, List
from datetime import datetime
from bson import ObjectId
class ParsedResume(BaseModel):
name: Optional[str] = None
email: Optional[str] = None
phone: Optional[str] = None
linkedin: Optional[str] = None
github: Optional[str] = None
website: Optional[str] = None
objective: Optional[str] = None
skills: List[str] = []
languages: List[str] = []
interests: List[str] = []
projects: List[dict] = []
education: List[dict] = []
experience: List[dict] = []
raw_text: str = ""
class ResumeOut(BaseModel):
id: str
filename: str
file_type: str
uploaded_by: str
parsed: ParsedResume
uploaded_at: str
gridfs_id: Optional[str] = None

View file

@ -0,0 +1,22 @@
from pydantic import BaseModel, Field, EmailStr
from typing import Optional
from datetime import datetime
class ScheduleIn(BaseModel):
resume_id: str
candidate_email: EmailStr
candidate_name: str
interview_date: str # ISO string or YYYY-MM-DD
interview_time: str # HH:MM AM/PM
interview_type: str = "Technical" # Technical, HR, etc.
meeting_link: Optional[str] = None
notes: Optional[str] = None
class ScheduleOut(ScheduleIn):
id: str
user_id: str
status: str = "Scheduled" # Scheduled, Completed, Cancelled
created_at: datetime
updated_at: datetime

View file

@ -0,0 +1,19 @@
from pydantic import BaseModel, EmailStr
from typing import Optional
from datetime import datetime
class UserInDB(BaseModel):
google_id: str
email: EmailStr
name: str
picture: Optional[str] = None
created_at: datetime = None
last_login: datetime = None
class UserOut(BaseModel):
google_id: str
email: str
name: str
picture: Optional[str] = None