diff --git a/app/models.py b/app/models.py index 3d20425..364ac3f 100644 --- a/app/models.py +++ b/app/models.py @@ -66,3 +66,36 @@ class AuditTrail(Base): action = Column(String) details = Column(Text) timestamp = Column(DateTime, default=datetime.utcnow) + +# *** + +# All comments are in English. + +from sqlalchemy import Column, String, Text, DateTime, ForeignKey +from sqlalchemy.orm import declarative_base, relationship +from datetime import datetime + +Base = declarative_base() + +class Conversation(Base): + __tablename__ = "conversations" + id = Column(String, primary_key=True) + title = Column(String) + messages = relationship("Message", back_populates="conversation") + +class Message(Base): + __tablename__ = "messages" + id = Column(String, primary_key=True) + conversation_id = Column(String, ForeignKey("conversations.id")) + role = Column(String) # "user" or "assistant" + content = Column(Text) + created_at = Column(DateTime, default=datetime.utcnow) + conversation = relationship("Conversation", back_populates="messages") + +class Attachment(Base): + __tablename__ = "attachments" + id = Column(String, primary_key=True) + conversation_id = Column(String, ForeignKey("conversations.id")) + filename = Column(String) + mime_type = Column(String) + data = Column(Text) # base64 or small text payload