web.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. from sqlalchemy.dialects.postgresql import UUID
  2. from extensions.ext_database import db
  3. from models.model import Message
  4. class SavedMessage(db.Model):
  5. __tablename__ = 'saved_messages'
  6. __table_args__ = (
  7. db.PrimaryKeyConstraint('id', name='saved_message_pkey'),
  8. db.Index('saved_message_message_idx', 'app_id', 'message_id', 'created_by_role', 'created_by'),
  9. )
  10. id = db.Column(UUID, server_default=db.text('uuid_generate_v4()'))
  11. app_id = db.Column(UUID, nullable=False)
  12. message_id = db.Column(UUID, nullable=False)
  13. created_by_role = db.Column(db.String(255), nullable=False, server_default=db.text("'end_user'::character varying"))
  14. created_by = db.Column(UUID, nullable=False)
  15. created_at = db.Column(db.DateTime, nullable=False, server_default=db.text('CURRENT_TIMESTAMP(0)'))
  16. @property
  17. def message(self):
  18. return db.session.query(Message).filter(Message.id == self.message_id).first()
  19. class PinnedConversation(db.Model):
  20. __tablename__ = 'pinned_conversations'
  21. __table_args__ = (
  22. db.PrimaryKeyConstraint('id', name='pinned_conversation_pkey'),
  23. db.Index('pinned_conversation_conversation_idx', 'app_id', 'conversation_id', 'created_by_role', 'created_by'),
  24. )
  25. id = db.Column(UUID, server_default=db.text('uuid_generate_v4()'))
  26. app_id = db.Column(UUID, nullable=False)
  27. conversation_id = db.Column(UUID, nullable=False)
  28. created_by_role = db.Column(db.String(255), nullable=False, server_default=db.text("'end_user'::character varying"))
  29. created_by = db.Column(UUID, nullable=False)
  30. created_at = db.Column(db.DateTime, nullable=False, server_default=db.text('CURRENT_TIMESTAMP(0)'))