Agentic-ATS / src /database_integration.py
Rustamshry's picture
Update src/database_integration.py
c4d6e1d verified
from sqlalchemy import create_engine, Column, Integer, String, Float
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
Base = declarative_base()
class Candidate(Base):
__tablename__ = 'candidates'
id = Column(Integer, primary_key=True)
unique_id = Column(String, unique=True)
name = Column(String)
location = Column(String)
experience = Column(String)
education = Column(String)
skills = Column(String)
class Job(Base):
__tablename__ = 'jobs'
id = Column(Integer, primary_key=True)
unique_id = Column(String, unique=True)
title = Column(String)
description = Column(String)
DATABASE_URL = "sqlite:////tmp/ats_demo.db"
engine = create_engine(DATABASE_URL, echo=False)
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
def save_candidate(parsed_data, unique_id):
candidate = Candidate(
unique_id=unique_id,
name=parsed_data.get("name"),
location=parsed_data.get("location"),
experience=parsed_data.get("experience"),
education=parsed_data.get("education"),
skills=parsed_data.get("skills")
)
session.add(candidate)
session.commit()
def save_job(job_title, job_description, unique_id):
job = Job(
unique_id=unique_id,
title=job_title,
description=job_description
)
session.add(job)
session.commit()
def delete_candidate(unique_id):
candidate = session.query(Candidate).filter_by(unique_id=unique_id).first()
if candidate:
session.delete(candidate)
session.commit()
return True
return False
def delete_job(unique_id):
job = session.query(Job).filter_by(unique_id=unique_id).first()
if job:
session.delete(job)
session.commit()
return True
return False