ruby2210/rag-chatbot
0
1"""2Base models for the RAG Chatbot application.3"""4from sqlalchemy import Column, String, DateTime, Text, Integer, ForeignKey5from sqlalchemy.dialects.postgresql import JSONB6from sqlalchemy.orm import relationship7from datetime import datetime8from ..utils.database import Base9 10 11class ChatSession(Base):12 """13 Represents a user's conversation with the RAG chatbot, containing conversation history and state.14 """15 __tablename__ = "chat_sessions"16 17 id = Column(String, primary_key=True, index=True)18 user_id = Column(String, index=True) # Optional user identifier19 created_at = Column(DateTime, default=datetime.utcnow)20 updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow)21 session_metadata = Column(JSONB, default={}) # Additional metadata about the session22 23 # Relationship to chat history24 history = relationship("ChatHistory", back_populates="session", cascade="all, delete-orphan")25 26 def __repr__(self):27 return f"<ChatSession(id={self.id}, user_id={self.user_id})>"