from sqlalchemy import Column, Integer, String, ForeignKey, JSON, Text from sqlalchemy.orm import relationship from .database import Base class Job(Base): __tablename__ = "jobs" id = Column(Integer, primary_key=True, index=True) title = Column(String, nullable=False) company = Column(String, nullable=False) name = Column(String, nullable=True) content = Column(Text, nullable=False) requirements = Column(JSON, nullable=True) class Resume(Base): __tablename__ = "resumes" id = Column(Integer, primary_key=True, index=True) name = Column(String, nullable=False) content = Column(Text, nullable=False) category = Column(String, nullable=True) parsed_fields = Column(JSON, nullable=True) class Education(Base): __tablename__ = "educations" id = Column(Integer, primary_key=True, index=True) name = Column(String, nullable=False) degree = Column(String, nullable=True) institution = Column(String, nullable=True) class Certificate(Base): __tablename__ = "certificates" id = Column(Integer, primary_key=True, index=True) name = Column(String, nullable=False) issuer = Column(String, nullable=True) class Experience(Base): __tablename__ = "experiences" id = Column(Integer, primary_key=True, index=True) name = Column(String, nullable=False) company = Column(String, nullable=True) years = Column(Integer, nullable=True) class Skill(Base): __tablename__ = "skills" id = Column(Integer, primary_key=True, index=True) name = Column(String, nullable=False) level = Column(String, nullable=True) class Candidate(Base): __tablename__ = "candidates" id = Column(Integer, primary_key=True, index=True) name = Column(String, nullable=False) education_id = Column(Integer, ForeignKey("educations.id")) certificate_id = Column(Integer, ForeignKey("certificates.id")) experience_id = Column(Integer, ForeignKey("experiences.id")) skill_id = Column(Integer, ForeignKey("skills.id")) resume_id = Column(Integer, ForeignKey("resumes.id")) education = relationship("Education") certificate = relationship("Certificate") experience = relationship("Experience") skill = relationship("Skill") resume = relationship("Resume")