from sqlalchemy import UUID, Column, Float, ForeignKey, Integer, String from sqlalchemy.ext.hybrid import hybrid_property from sqlalchemy.orm import relationship from src.database.core import Base from src.models import DefaultMixin, IdentityMixin, TimeStampMixin from src.workorder.model import MasterWorkOrder class EquipmentWorkscopeGroup(Base, DefaultMixin): __tablename__ = "oh_tr_equipment_workscope_group" workscope_group_id = Column(UUID(as_uuid=True), ForeignKey('oh_ms_workscope_group.id')) location_tag = Column(String, nullable=False) workscope_group = relationship("MasterActivity", lazy="selectin", back_populates="equipment_workscope_groups") equipment = relationship( "StandardScope", lazy="raise", primaryjoin="and_(EquipmentWorkscopeGroup.location_tag == foreign(StandardScope.location_tag))", uselist=False, # Add this if it's a one-to-one relationship )