Merge branch 'main' of gitlab.prodcontest.com:team-39/backend

This commit is contained in:
ivankirpichnikov
2025-11-23 01:42:49 +03:00
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()
@@ -227,6 +228,30 @@ vacancy_embedding_table: Final = Table(
Column("vector", Vector, 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)
@@ -251,3 +276,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)