HR-ATS-Portal/backend/verification_check/enums.py

65 lines
1.7 KiB
Python

from enum import Enum
from pydantic import BaseModel
from typing import Optional
from datetime import date, datetime
import uuid
class CompetencyRating(int, Enum):
NEEDS_IMPROVEMENT = 1
SATISFACTORY = 2
GOOD = 3
EXCELLENT = 4
class ReHireEligibility(str, Enum):
YES = "yes"
NO = "no"
CONDITIONAL = "conditional"
# SECTION 1: INFORMATION & RECORD OVERVIEW
class RecordOverview(BaseModel):
position_applied:Optional[str]=None
department_id:Optional[uuid.UUID]=None
department:Optional[str]=None
date_time:Optional[datetime]=None
# SECTION 2: EMPLOYMENT VERIFICATION & DUTIES
class EmploymentVerification(BaseModel):
confirmed_job_title:Optional[str]=None
confirmed_from:Optional[date]=None
confirmed_to:Optional[date]=None
reason_for_leaving:Optional[str]=None
# SECTION 3: one row of the competency grid (1-4 tick + Notes column)
class CompetencyScore(BaseModel):
rating:Optional[CompetencyRating]=None
notes:Optional[str]=None
class CompetencyEvaluation(BaseModel):
technical_knowledge:Optional[CompetencyScore]=None
reliability:Optional[CompetencyScore]=None
communication:Optional[CompetencyScore]=None
problem_solving:Optional[CompetencyScore]=None
# SECTION 4: QUALITATIVE EVALUATION & KEY INSIGHTS
class QualitativeEvaluation(BaseModel):
strengths:Optional[str]=None
areas_for_growth:Optional[str]=None
rehire_eligibility:Optional[ReHireEligibility]=None
rehire_comments:Optional[str]=None
# SECTION 5: REFEREE CONTACT & RELATIONSHIP VERIFICATION
class RefereeDetails(BaseModel):
full_name:Optional[str]=None
current_title:Optional[str]=None
company:Optional[str]=None
phone:Optional[str]=None
email:Optional[str]=None