# app/db/models.py from sqlalchemy import Column, Integer, String, Boolean, DateTime, ForeignKey, Float, Text from sqlalchemy.orm import relationship from datetime import datetime from .database import Base class User(Base): __tablename__ = "users" id = Column(Integer, primary_key=True, index=True) username = Column(String(150), unique=True, index=True, nullable=False) email = Column(String(200), unique=True, index=True, nullable=True) hashed_password = Column(String(200), nullable=False) is_active = Column(Boolean, default=False) is_superuser = Column(Boolean, default=False) created_at = Column(DateTime, default=datetime.utcnow) predictions = relationship("Prediction", back_populates="user") class Prediction(Base): __tablename__ = "predictions" id = Column(Integer, primary_key=True, index=True) user_id = Column(Integer, ForeignKey("users.id"), nullable=True) input_text = Column(Text, nullable=False) prediction = Column(String(100), nullable=False) confidence = Column(Float, nullable=True) created_at = Column(DateTime, default=datetime.utcnow) user = relationship("User", back_populates="predictions")