from dataclasses import dataclass | |
from datetime import datetime | |
from typing import List, Dict | |
from src.domain.enums.interview_status import InterviewStatus | |
from src.domain.enums.emotion_types import EmotionType | |
class Interview: | |
id: str | |
candidate_id: str | |
job_id: str | |
video_path: str | |
status: InterviewStatus | |
questions: List[str] | |
responses_transcription: List[str] | |
timestamp: datetime | |
duration: int | |
emotional_analysis: Dict[EmotionType, float] | |
def is_completed(self) -> bool: | |
return self.status == InterviewStatus.COMPLETED | |
def is_reviewable(self) -> bool: | |
return self.status in [ | |
InterviewStatus.COMPLETED, | |
InterviewStatus.PENDING_REVIEW, | |
] | |