You've already forked RekomenciBackend
feat(): update resume contracts
This commit is contained in:
@@ -6,19 +6,22 @@ from uuid import UUID
|
||||
from uuid_utils.compat import uuid7
|
||||
|
||||
from template_project.application.common.entity import Entity, to_entity
|
||||
from template_project.application.common.enums import ExperienceType
|
||||
from template_project.application.common.enums import EducationGrade, ExperienceType
|
||||
from template_project.application.user.entity import UserId
|
||||
|
||||
ResumeId = NewType("ResumeId", UUID)
|
||||
ResumeEmbeddingId = NewType("ResumeEmbeddingId", UUID)
|
||||
ResumePredictionId = NewType("ResumePredictionId", UUID)
|
||||
ResumeExperienceId = NewType("ResumeExperienceId", UUID)
|
||||
ResumeEducationId = NewType("ResumeEducationId", UUID)
|
||||
ResumeProjectId = NewType("ResumeProjectId", UUID)
|
||||
|
||||
|
||||
@to_entity
|
||||
class Resume(Entity[ResumeId]):
|
||||
user_id: UserId
|
||||
position: str
|
||||
# location: str
|
||||
location: str
|
||||
about_me: str
|
||||
key_skills: list[str]
|
||||
experience_type: ExperienceType
|
||||
@@ -30,6 +33,7 @@ class Resume(Entity[ResumeId]):
|
||||
cls,
|
||||
user_id: UserId,
|
||||
position: str,
|
||||
location: str,
|
||||
about_me: str,
|
||||
key_skills: list[str],
|
||||
experience_type: ExperienceType,
|
||||
@@ -41,6 +45,7 @@ class Resume(Entity[ResumeId]):
|
||||
created_at=datetime.now(tz=UTC),
|
||||
user_id=user_id,
|
||||
position=position,
|
||||
location=location,
|
||||
about_me=about_me,
|
||||
key_skills=key_skills,
|
||||
experience_type=experience_type,
|
||||
@@ -74,4 +79,78 @@ class ResumePrediction(Entity[ResumePredictionId]):
|
||||
from_salary: Decimal
|
||||
to_salary: Decimal
|
||||
recommended_skills: list[str]
|
||||
# common_recommended: str # TODO
|
||||
|
||||
|
||||
@to_entity
|
||||
class ResumeExperience(Entity[ResumeExperienceId]):
|
||||
resume_id: ResumeId
|
||||
place: str
|
||||
description: str
|
||||
months_duration: int
|
||||
|
||||
@classmethod
|
||||
def factory(
|
||||
cls,
|
||||
resume_id: ResumeId,
|
||||
place: str,
|
||||
description: str,
|
||||
months_duration: int,
|
||||
) -> Self:
|
||||
return cls(
|
||||
id=ResumeExperienceId(uuid7()),
|
||||
created_at=datetime.now(tz=UTC),
|
||||
resume_id=resume_id,
|
||||
place=place,
|
||||
description=description,
|
||||
months_duration=months_duration,
|
||||
)
|
||||
|
||||
|
||||
@to_entity
|
||||
class ResumeEducation(Entity[ResumeEducationId]):
|
||||
resume_id: ResumeId
|
||||
place: str
|
||||
grade: EducationGrade
|
||||
specialization: str
|
||||
description: str | None = None
|
||||
|
||||
@classmethod
|
||||
def factory(
|
||||
cls,
|
||||
resume_id: ResumeId,
|
||||
place: str,
|
||||
grade: EducationGrade,
|
||||
specialization: str,
|
||||
description: str | None = None,
|
||||
) -> Self:
|
||||
return cls(
|
||||
id=ResumeEducationId(uuid7()),
|
||||
created_at=datetime.now(tz=UTC),
|
||||
resume_id=resume_id,
|
||||
place=place,
|
||||
grade=grade,
|
||||
specialization=specialization,
|
||||
description=description,
|
||||
)
|
||||
|
||||
|
||||
@to_entity
|
||||
class ResumeProject(Entity[ResumeProjectId]):
|
||||
resume_id: ResumeId
|
||||
name: str
|
||||
description: str
|
||||
|
||||
@classmethod
|
||||
def factory(
|
||||
cls,
|
||||
resume_id: ResumeId,
|
||||
name: str,
|
||||
description: str,
|
||||
) -> Self:
|
||||
return cls(
|
||||
id=ResumeProjectId(uuid7()),
|
||||
created_at=datetime.now(tz=UTC),
|
||||
resume_id=resume_id,
|
||||
name=name,
|
||||
description=description,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user