class Koordinat(FikspunktregisterObjekt): __tablename__ = "koordinat" sridid = Column(Integer, ForeignKey("sridtype.sridid"), nullable=False) srid = relationship("Srid", lazy="joined") sx = Column(Float) sy = Column(Float) sz = Column(Float) t = Column(TIMESTAMP(timezone=True), default=func.current_timestamp()) transformeret = Column(StringEnum(Boolean), nullable=False, default=Boolean.FALSE) _fejlmeldt = Column("fejlmeldt", StringEnum(Boolean), nullable=False, default=Boolean.FALSE) artskode = Column(IntEnum(Artskode), nullable=True, default=Artskode.NULL) x = Column(Float) y = Column(Float) z = Column(Float) sagseventfraid = Column(String, ForeignKey("sagsevent.id"), nullable=False) sagsevent = relationship("Sagsevent", foreign_keys=[sagseventfraid], back_populates="koordinater") sagseventtilid = Column(String, ForeignKey("sagsevent.id"), nullable=True) slettet = relationship( "Sagsevent", foreign_keys=[sagseventtilid], back_populates="koordinater_slettede", ) punktid = Column(String(36), ForeignKey("punkt.id"), nullable=False) punkt = relationship("Punkt", back_populates="koordinater") beregninger = relationship("Beregning", secondary=beregning_koordinat, back_populates="koordinater") tidsserier = relationship( "Tidsserie", order_by="Tidsserie.objektid", viewonly=True, secondary=tidsserie_koordinat, ) @property def fejlmeldt(self): return self._fejlmeldt == Boolean.TRUE @fejlmeldt.setter def fejlmeldt(self, value: Boolean): if value: self._fejlmeldt = Boolean.TRUE else: self._fejlmeldt = Boolean.FALSE
class RegisteringFraObjekt(DeclarativeBase): # SQLALchemy knows abstract classes do not map to a table. # If class is not declared abstract then SQLAlchemy whines about missing table declaration. __abstract__ = True objektid = Column(Integer, primary_key=True) _registreringfra = Column( "registreringfra", TIMESTAMP(timezone=True), nullable=False, default=func.current_timestamp(), ) @property def registreringfra(self): return self._registreringfra
class Observation(FikspunktregisterObjekt): __tablename__ = "observation" id = Column(String, nullable=False, unique=True, default=fire.uuid) value1 = Column(Float, nullable=False) value2 = Column(Float) value3 = Column(Float) value4 = Column(Float) value5 = Column(Float) value6 = Column(Float) value7 = Column(Float) value8 = Column(Float) value9 = Column(Float) value10 = Column(Float) value11 = Column(Float) value12 = Column(Float) value13 = Column(Float) value14 = Column(Float) value15 = Column(Float) sagseventfraid = Column(String, ForeignKey("sagsevent.id"), nullable=False) sagsevent = relationship("Sagsevent", foreign_keys=[sagseventfraid], back_populates="observationer") sagseventtilid = Column(String, ForeignKey("sagsevent.id"), nullable=True) slettet = relationship( "Sagsevent", foreign_keys=[sagseventtilid], back_populates="observationer_slettede", ) observationstidspunkt = Column(TIMESTAMP(timezone=True), nullable=False) antal = Column(Integer, nullable=False, default=1) gruppe = Column(Integer) observationstypeid = Column( Integer, ForeignKey("observationstype.observationstypeid")) observationstype = relationship("ObservationsType", back_populates="observationer", lazy="joined") sigtepunktid = Column(String(36), ForeignKey("punkt.id")) sigtepunkt = relationship("Punkt", foreign_keys=[sigtepunktid]) opstillingspunktid = Column(String(36), ForeignKey("punkt.id")) opstillingspunkt = relationship("Punkt", foreign_keys=[opstillingspunktid]) beregninger = relationship("Beregning", secondary=beregning_observation, back_populates="observationer") __mapper_args__ = { "polymorphic_identity": "observation", "polymorphic_on": observationstypeid, }