|
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) |
|
|