from sqlalchemy import Column, String, Text, DateTime, ForeignKey from sqlalchemy.orm import relationship from datetime import datetime from core.database import Base class Conversation(Base): __tablename__ = "conversations" id = Column(String, primary_key=True, index=True) user_id = Column(String, index=True) title = Column(String, default="New Chat") created_at = Column(DateTime, default=datetime.utcnow) updated_at = Column(DateTime, default=datetime.utcnow, onupdate=datetime.utcnow) # Relationship to messages messages = relationship("Message", back_populates="conversation", cascade="all, delete-orphan") class Message(Base): __tablename__ = "messages" id = Column(String, primary_key=True, index=True) conversation_id = Column(String, ForeignKey("conversations.id")) role = Column(String) # 'user' or 'assistant' content = Column(Text) timestamp = Column(DateTime, default=datetime.utcnow) conversation = relationship("Conversation", back_populates="messages")