import enum from sqlalchemy import Column, Date, DateTime, Enum, ForeignKey, Integer, String, Text, func from app.cores.database import Base from sqlalchemy.orm import relationship class ApplicationStatus(str, enum.Enum): applied = "applied" interview = "interview" offer = "offer" rejected = "rejected" class Application(Base): __tablename__ = "applications" id = Column(Integer, primary_key=True, nullable=False) user_id = Column(Integer, ForeignKey("users.id", ondelete="CASCADE"), nullable=False) company = Column(String, nullable=False) role = Column(String, nullable=False) status = Column(Enum(ApplicationStatus), nullable=False, default=ApplicationStatus.applied) applied_date = Column(Date, nullable=False) jd_text = Column(Text, nullable=True) notes = Column(Text, nullable=True) created_at = Column(DateTime(timezone=True), server_default=func.now()) owner = relationship("User", back_populates="applications")