Spaces:
Running
Running
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] = [] |