Spaces:
Sleeping
Sleeping
| from sqlalchemy import Column, Integer, String, Text, ForeignKey, DateTime, Enum | |
| from sqlalchemy.orm import relationship | |
| from sqlalchemy.sql import func | |
| from datetime import datetime | |
| import enum | |
| from app.db.database import Base | |
| class MessageCreator(str, enum.Enum): | |
| """Enum for message creator""" | |
| USER = "USER" | |
| ASSISTANT = "ASSISTANT" | |
| class Message(Base): | |
| """Message model""" | |
| __tablename__ = "messages" | |
| message_id = Column(Integer, primary_key=True, index=True, autoincrement=True) | |
| chat_id = Column(Integer, ForeignKey("chats.chat_id", ondelete="CASCADE"), nullable=False, index=True) | |
| created_by = Column(Enum(MessageCreator), nullable=False) | |
| text = Column(Text, nullable=True) | |
| file_paths = Column(Text, nullable=True) # Store as JSON string | |
| created_at = Column(DateTime, nullable=False, default=func.now(), index=True) | |
| # Relationship | |
| chat = relationship("Chat", back_populates="messages") | |
| def __repr__(self): | |
| return f"<Message(message_id={self.message_id}, chat_id={self.chat_id}, created_by={self.created_by})>" | |