dha-soa-assistant / app /models /message.py
dauduchieu
deploy
b439a3c
Raw
History Blame Contribute Delete
1.1 kB
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})>"