from sqlalchemy import Column, ForeignKey, Integer, String, Text from sqlalchemy.orm import Session, relationship from app.backend.controllers.base_controller import engine from app.backend.models.base_model import Base class Message(Base): __tablename__ = "messages" id = Column("id", Integer, autoincrement=True, primary_key=True, unique=True) content = Column("text", Text) sender = Column("role", String) chat_id = Column(Integer, ForeignKey("chats.id")) chat = relationship("Chat", back_populates="messages") def new_message(chat_id: int, sender: str, content: str): with Session(autoflush=False, bind=engine) as db: db.add(Message(content=content, sender=sender, chat_id=chat_id)) db.commit() def get_messages_by_chat_id(id: int) -> list[Message]: with Session(autoflush=False, bind=engine) as db: return db.query(Message).filter(Message.chat_id == id)