from typing import List, Optional from pydantic import BaseModel from enum import Enum class Category(str, Enum): TECHNICAL = "Technical" SOFT_SKILLS = "Soft Skills" DOMAIN_KNOWLEDGE = "Domain Knowledge" class Skill(BaseModel): img: Optional[str] = None # Allow null values name: str category: Optional[Category] = None class Project(BaseModel): img: Optional[str] = None title: str description: str techStack: Optional[str] = None githubUrl: Optional[str] = None demoUrl: Optional[str] = None class SocialMedia(BaseModel): linkedin: Optional[str] = None github: Optional[str] = None instagram: Optional[str] = None class Chatbot(BaseModel): token: str apiBaseURL: str class Education(BaseModel): school: str degree: str fieldOfStudy: str startDate: str endDate: str class Experience(BaseModel): company: str position: str startDate: str endDate: Optional[str] = None description: Optional[str] = None class Profile(BaseModel): name: str title: str email: str bio: str tagline: Optional[str] = None # Allow null values social: Optional[SocialMedia] = None profileImg: Optional[str] = None heroImg: Optional[str] = None chatbot: Optional[Chatbot] = None projects: List[Project] = [] skills: List[Skill] = [] topSkills: List[str] = [] educations: List[Education] = [] experiences: List[Experience] = []