from uuid import UUID from typing import Any from pydantic import BaseModel class CandidateResponse(BaseModel): id: UUID name: str | None = None email: str | None = None role_type: str | None = None engineer_type: str | None = None years_of_experience: float | None = None most_recent_company: str | None = None parsed_summary: str | None = None parsed_skills: str | None = None programming_languages: list[str] = [] backend_frameworks: list[str] = [] frontend_technologies: list[str] = [] growth_velocity: float = 0.5 gen_ai_experience: bool | None = None looking_for: str | None = None open_to_working_at: str | None = None is_actively_or_passively_looking: str | None = None model_config = {"from_attributes": True} class UploadResponse(BaseModel): task_id: str # First task ID (backward compat) task_ids: list[str] = [] # ALL task IDs — poll all to confirm full ingestion queued: int message: str class TaskStatusResponse(BaseModel): task_id: str status: str result: Any | None = None