ishaq101's picture
update Criteria field type
b0853c5
import uuid
from config.get_config import master_config
from sqlalchemy import Column, String, Integer, TIMESTAMP, func
from sqlalchemy.dialects.postgresql import UUID, ARRAY, DOUBLE_PRECISION, BOOLEAN
from sqlalchemy.orm import declarative_base
# from sqlalchemy.ext.asyncio import create_async_engine, async_sessionmaker
# from config.constant import EnvPostgresConstants
# engine = create_async_engine(
# EnvPostgresConstants.CONSTRING.replace('psycopg2', 'asyncpg'),
# pool_pre_ping=True,
# pool_recycle=300,
# )
# AsyncSessionLocal = async_sessionmaker(
# engine,
# expire_on_commit=False,
# )
Base = declarative_base()
class CVUser(Base):
__tablename__ = "cv_user"
user_id = Column(UUID(as_uuid=True), primary_key=True, server_default=func.uuid_generate_v4())
username = Column(String, nullable=False, unique=True)
hashed_password = Column(String, nullable=False)
email = Column(String, nullable=False, unique=True)
full_name = Column(String, nullable=False)
role = Column(String, nullable=False)
is_active = Column(BOOLEAN, nullable=False)
tenant_id = Column(UUID(as_uuid=True), primary_key=False)
created_at = Column(TIMESTAMP(timezone=True), server_default=master_config.JAKARTA_NOW)
date_modified = Column(TIMESTAMP(timezone=True), server_default=master_config.JAKARTA_NOW)
notes = Column(String)
class CVTenant(Base):
__tablename__ = "cv_tenant"
tenant_id = Column(UUID(as_uuid=True), primary_key=True, server_default=func.uuid_generate_v4())
tenant_name = Column(String, nullable=False, unique=True)
created_at = Column(TIMESTAMP(timezone=True), server_default=master_config.JAKARTA_NOW)
date_modified = Column(TIMESTAMP(timezone=True), server_default=master_config.JAKARTA_NOW)
notes = Column(String)
class CVFile(Base):
__tablename__ = "cv_file"
file_id = Column(UUID(as_uuid=True), primary_key=True, server_default=func.uuid_generate_v4())
user_id = Column(UUID(as_uuid=True), nullable=False)
file_type = Column(String, nullable=False)
filename = Column(String, nullable=False)
url = Column(String, nullable=False)
is_extracted = Column(BOOLEAN, nullable=False)
is_deleted = Column(BOOLEAN, nullable=False)
uploaded_at = Column(TIMESTAMP(timezone=True), server_default=master_config.JAKARTA_NOW)
date_modified = Column(TIMESTAMP(timezone=True), server_default=master_config.JAKARTA_NOW)
class CVProfile(Base):
__tablename__ = "cv_profile"
profile_id = Column(UUID(as_uuid=True), primary_key=True, server_default=func.uuid_generate_v4())
fullname = Column(String, nullable=False)
gpa_edu_1 = Column(DOUBLE_PRECISION)
univ_edu_1 = Column(String)
major_edu_1 = Column(String)
gpa_edu_2 = Column(DOUBLE_PRECISION)
univ_edu_2 = Column(String)
major_edu_2 = Column(String)
gpa_edu_3 = Column(DOUBLE_PRECISION)
univ_edu_3 = Column(String)
major_edu_3 = Column(String)
domicile = Column(String)
yoe = Column(Integer)
hardskills = Column(ARRAY(String))
softskills = Column(ARRAY(String))
certifications = Column(ARRAY(String))
business_domain = Column(ARRAY(String))
filename = Column(String, nullable=False)
file_id = Column(UUID(as_uuid=True), primary_key=False)
created_at = Column(TIMESTAMP(timezone=True), server_default=master_config.JAKARTA_NOW)
class CVFilter(Base):
__tablename__ = "cv_filter"
criteria_id = Column(UUID(as_uuid=True), primary_key=True, server_default=func.uuid_generate_v4())
gpa_edu_1 = Column(DOUBLE_PRECISION)
gpa_edu_2 = Column(DOUBLE_PRECISION)
gpa_edu_3 = Column(DOUBLE_PRECISION)
univ_edu_1 = Column(String)
univ_edu_2 = Column(String)
univ_edu_3 = Column(String)
major_edu_1 = Column(String)
major_edu_2 = Column(String)
major_edu_3 = Column(String)
domicile = Column(String)
yoe = Column(Integer)
hardskills = Column(ARRAY(String))
softskills = Column(ARRAY(String))
certifications = Column(ARRAY(String))
business_domain = Column(ARRAY(String))
created_at = Column(TIMESTAMP(timezone=True), server_default=master_config.JAKARTA_NOW)
class CVWeight(Base):
__tablename__ = "cv_weight"
weight_id = Column(UUID(as_uuid=True), primary_key=True, server_default=master_config.JAKARTA_NOW)
criteria_id = Column(UUID(as_uuid=True), primary_key=False, nullable=False)
gpa_edu_1 = Column(DOUBLE_PRECISION)
gpa_edu_2 = Column(DOUBLE_PRECISION)
gpa_edu_3 = Column(DOUBLE_PRECISION)
univ_edu_1 = Column(DOUBLE_PRECISION)
univ_edu_2 = Column(DOUBLE_PRECISION)
univ_edu_3 = Column(DOUBLE_PRECISION)
major_edu_1 = Column(DOUBLE_PRECISION)
major_edu_2 = Column(DOUBLE_PRECISION)
major_edu_3 = Column(DOUBLE_PRECISION)
domicile = Column(DOUBLE_PRECISION)
yoe = Column(DOUBLE_PRECISION)
hardskills = Column(DOUBLE_PRECISION)
softskills = Column(DOUBLE_PRECISION)
certifications = Column(DOUBLE_PRECISION)
business_domain = Column(DOUBLE_PRECISION)
created_at = Column(TIMESTAMP(timezone=True), server_default=master_config.JAKARTA_NOW)
class CVMatching(Base):
__tablename__ = "cv_matching"
matching_id = Column(UUID(as_uuid=True), primary_key=True, server_default=func.uuid_generate_v4())
profile_id = Column(UUID(as_uuid=True))
weight_id = Column(UUID(as_uuid=True))
gpa_edu_1 = Column(BOOLEAN)
gpa_edu_2 = Column(BOOLEAN)
gpa_edu_3 = Column(BOOLEAN)
univ_edu_1 = Column(BOOLEAN)
univ_edu_2 = Column(BOOLEAN)
univ_edu_3 = Column(BOOLEAN)
major_edu_1 = Column(BOOLEAN)
major_edu_2 = Column(BOOLEAN)
major_edu_3 = Column(BOOLEAN)
domicile = Column(BOOLEAN)
yoe = Column(BOOLEAN)
hardskills = Column(BOOLEAN)
softskills = Column(BOOLEAN)
certifications = Column(BOOLEAN)
business_domain = Column(BOOLEAN)
created_at = Column(TIMESTAMP(timezone=True), server_default=master_config.JAKARTA_NOW)
class CVScore(Base):
__tablename__ = "cv_score"
scoring_id = Column(UUID(as_uuid=True), primary_key=True, server_default=func.uuid_generate_v4())
matching_id = Column(UUID(as_uuid=True))
profile_id = Column(UUID(as_uuid=True))
score = Column(Integer)
created_at = Column(TIMESTAMP(timezone=True), server_default=master_config.JAKARTA_NOW)