Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

web.py 1.9KB

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