ibuilder / models.py
Soufianesejjari's picture
Add experience management and skill categorization to profile model
b39667b
raw
history blame
1.47 kB
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] = []