Spaces:
Running
Running
| 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) | |