Mercurial > libervia-backend
diff libervia/backend/memory/sqla_mapping.py @ 4389:4895cf954fbe
memory (sqla): add "parent_node_id" and "linked_mode_id" to PubsubNode:
This is to prepare for the implementation of XEP-0496 and XEP-0499.
rel 463
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 29 Aug 2025 17:59:12 +0200 |
parents | a1ac33fe6b97 |
children |
line wrap: on
line diff
--- a/libervia/backend/memory/sqla_mapping.py Fri Aug 29 11:44:43 2025 +0200 +++ b/libervia/backend/memory/sqla_mapping.py Fri Aug 29 17:59:12 2025 +0200 @@ -653,10 +653,37 @@ subtype = Column(Text, nullable=True) extra = Column(JSON) + linked_node_id = Column(Integer, ForeignKey("pubsub_nodes.id", ondelete="CASCADE"), nullable=True) + parent_node_id = Column(Integer, ForeignKey("pubsub_nodes.id", ondelete="CASCADE"), nullable=True) + items = relationship("PubsubItem", back_populates="node", passive_deletes=True) affiliations = relationship("PubsubAffiliation", back_populates="node", passive_deletes=True) subscriptions = relationship("PubsubSub", back_populates="node", passive_deletes=True) + linked_node = relationship( + "PubsubNode", + remote_side=[id], + foreign_keys=[linked_node_id], + back_populates="linking_nodes" + ) + linking_nodes = relationship( + "PubsubNode", + foreign_keys=[linked_node_id], + back_populates="linked_node", + ) + + parent_node = relationship( + "PubsubNode", + remote_side=[id], + foreign_keys=[parent_node_id], + back_populates="child_nodes" + ) + child_nodes = relationship( + "PubsubNode", + foreign_keys=[parent_node_id], + back_populates="parent_node", + ) + def __str__(self): return f"Pubsub node {self.name!r} at {self.service}"