feat(): load key skills and vacancies scripts

This commit is contained in:
gitgernit
2025-11-23 01:41:48 +03:00
parent 2887b0a1e0
commit 4b66c2f6be
7 changed files with 309 additions and 9 deletions
@@ -34,6 +34,7 @@ from template_project.application.resume.entity import (
)
from template_project.application.user.entity import User
from template_project.application.user.profile.entity import Profile
from template_project.application.vacancy.entity import Vacancy, VacancyEmbedding
meta_data: Final = MetaData()
mapper_registry: Final = registry()
@@ -205,6 +206,30 @@ resume_project_table: Final = Table(
Column("description", String, nullable=False),
)
vacancy_table: Final = Table(
"vacancy",
meta_data,
Column("id", UUID, primary_key=True),
Column("deleted_at", DateTime(timezone=True)),
Column("created_at", DateTime(timezone=True), nullable=False),
Column("position", String, nullable=False),
Column("from_salary", Numeric, nullable=False),
Column("to_salary", Numeric, nullable=False),
Column("experience_type", String, nullable=False),
Column("description", String, nullable=False),
Column("key_skills", StringArrayType(), nullable=False, server_default=text("'[]'::jsonb")),
)
vacancy_embedding_table: Final = Table(
"vacancy_embedding",
meta_data,
Column("id", UUID, primary_key=True),
Column("deleted_at", DateTime(timezone=True)),
Column("created_at", DateTime(timezone=True), nullable=False),
Column("vacancy_id", UUID, ForeignKey("vacancy.id", ondelete="CASCADE"), nullable=False),
Column("vector", Vector, nullable=False),
)
mapper_registry.map_imperatively(User, user_table)
mapper_registry.map_imperatively(AccessToken, access_token_table)
@@ -229,3 +254,11 @@ mapper_registry.map_imperatively(
mapper_registry.map_imperatively(ResumeExperience, resume_experience_table)
mapper_registry.map_imperatively(ResumeEducation, resume_education_table)
mapper_registry.map_imperatively(ResumeProject, resume_project_table)
mapper_registry.map_imperatively(
Vacancy,
vacancy_table,
properties={
"key_skills": vacancy_table.c.key_skills,
},
)
mapper_registry.map_imperatively(VacancyEmbedding, vacancy_embedding_table)