You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from sqlalchemy import func
  2. from sqlalchemy.orm import Mapped, mapped_column
  3. from models.base import Base
  4. from .engine import db
  5. from .model import Message
  6. from .types import StringUUID
  7. class SavedMessage(Base):
  8. __tablename__ = "saved_messages"
  9. __table_args__ = (
  10. db.PrimaryKeyConstraint("id", name="saved_message_pkey"),
  11. db.Index("saved_message_message_idx", "app_id", "message_id", "created_by_role", "created_by"),
  12. )
  13. id = mapped_column(StringUUID, server_default=db.text("uuid_generate_v4()"))
  14. app_id = mapped_column(StringUUID, nullable=False)
  15. message_id = mapped_column(StringUUID, nullable=False)
  16. created_by_role = mapped_column(
  17. db.String(255), nullable=False, server_default=db.text("'end_user'::character varying")
  18. )
  19. created_by = mapped_column(StringUUID, nullable=False)
  20. created_at = mapped_column(db.DateTime, nullable=False, server_default=func.current_timestamp())
  21. @property
  22. def message(self):
  23. return db.session.query(Message).filter(Message.id == self.message_id).first()
  24. class PinnedConversation(Base):
  25. __tablename__ = "pinned_conversations"
  26. __table_args__ = (
  27. db.PrimaryKeyConstraint("id", name="pinned_conversation_pkey"),
  28. db.Index("pinned_conversation_conversation_idx", "app_id", "conversation_id", "created_by_role", "created_by"),
  29. )
  30. id = mapped_column(StringUUID, server_default=db.text("uuid_generate_v4()"))
  31. app_id = mapped_column(StringUUID, nullable=False)
  32. conversation_id: Mapped[str] = mapped_column(StringUUID)
  33. created_by_role = mapped_column(
  34. db.String(255), nullable=False, server_default=db.text("'end_user'::character varying")
  35. )
  36. created_by = mapped_column(StringUUID, nullable=False)
  37. created_at = mapped_column(db.DateTime, nullable=False, server_default=func.current_timestamp())