crudkit/muck/models/room.py

19 lines
664 B
Python

from sqlalchemy import Column, Integer, ForeignKey
from sqlalchemy.orm import relationship, foreign, remote
from crudkit.core.base import CRUDMixin
from muck.models.dbref import Dbref, ObjectType
class Room(Dbref):
__tablename__ = "rooms"
id = Column(Integer, ForeignKey("dbref.id"), primary_key=True)
dropto_id = Column(Integer, ForeignKey("dbref.id"), nullable=True)
dropto = relationship("Dbref", remote_side=[CRUDMixin.id], foreign_keys=[dropto_id], primaryjoin=lambda: foreign(Room.dropto_id) == remote(Dbref.id))
__mapper_args__ = {
"polymorphic_identity": ObjectType.ROOM,
"inherit_condition": id == Dbref.id
}