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