from sqlalchemy import Column, Integer, String, Text, DateTime, ForeignKey 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, unique=True, index=True) email = Column(String, unique=True, index=True) hashed_password = Column(String) role = Column(String) mobile_number = Column(String, nullable=True) reset_token = Column(String, nullable=True) question_count = Column(Integer, default=0) # Relationship to chat interactions interactions = relationship("ChatInteraction", back_populates="user") class ChatInteraction(Base): __tablename__ = "chat_interactions" id = Column(Integer, primary_key=True, index=True) user_id = Column(Integer, ForeignKey("users.id"), nullable=True) case_id = Column(String, nullable=True) role = Column(String, index=True, nullable=False) # Role context for this interaction query = Column(Text) response = Column(Text) created_at = Column(DateTime, default=datetime.utcnow) # Relationship to user user = relationship("User", back_populates="interactions")