class EarthquakeEvents(DB.Model): """ Class representation of earthquake_events table """ __tablename__ = "earthquake_events" __bind_key__ = "senslopedb" __table_args__ = {"schema": "senslopedb"} eq_id = DB.Column(DB.Integer, primary_key=True, nullable=False) ts = DB.Column(DB.DateTime) magnitude = DB.Column(DB.Float(4, 2)) depth = DB.Column(DB.Float(5, 2)) latitude = DB.Column(DB.Float(9, 6)) longitude = DB.Column(DB.Float(9, 6)) critical_distance = DB.Column(DB.Float(6, 3)) issuer = DB.Column(DB.String(20)) processed = DB.Column(DB.Integer, nullable=False) def __repr__(self): return ( f"Type <{self.__class__.__name__}> EQ_ID: {self.eq_id}" f" Magnitude: {self.magnitude} Depth: {self.depth}" f" Critical Distance: {self.critical_distance} issuer: {self.issuer}" )
class Markers(DB.Model): """ Class representation of markers table """ __tablename__ = "markers" __bind_key__ = "senslopedb" __table_args__ = {"schema": "senslopedb"} marker_id = DB.Column(DB.Integer, primary_key=True, nullable=False) site_id = DB.Column(DB.Integer, DB.ForeignKey("commons_db.sites.site_id"), nullable=False) description = DB.Column(DB.String(50)) latitude = DB.Column(DB.Float(9, 6)) longitude = DB.Column(DB.Float(9, 6)) in_use = DB.Column(DB.Boolean) site = DB.relationship("Sites", backref=DB.backref("markers", lazy="dynamic"), lazy="select") def __repr__(self): return (f"Type <{self.__class__.__name__}> Marker ID: {self.marker_id}" f" Site ID: {self.site_id} Description: {self.description}" f" In Use: {self.in_use}")
class EarthquakeAlerts(DB.Model): """ Class representation of earthquake_alerts table """ __tablename__ = "earthquake_alerts" __bind_key__ = "senslopedb" __table_args__ = {"schema": "senslopedb"} ea_id = DB.Column(DB.Integer, primary_key=True, nullable=False) eq_id = DB.Column(DB.Integer, DB.ForeignKey("senslopedb.earthquake_events.eq_id"), nullable=False) site_id = DB.Column(DB.Integer, DB.ForeignKey("commons_db.sites.site_id"), nullable=False) distance = DB.Column(DB.Float(5, 3), nullable=False) eq_event = DB.relationship("EarthquakeEvents", backref=DB.backref("eq_alerts", lazy="subquery"), lazy="select") site = DB.relationship("Sites", backref=DB.backref("eq_alerts", lazy="dynamic"), lazy="select") def __repr__(self): return (f"Type <{self.__class__.__name__}> EQ Alert ID: {self.ea_id}" f" Site ID: {self.site_id} Distance: {self.distance}")
class RainfallPriorities(DB.Model): """ Class representation of rainfall_priorities table """ __tablename__ = "rainfall_priorities" __bind_key__ = "senslopedb" __table_args__ = {"schema": "senslopedb"} priority_id = DB.Column(DB.Integer, primary_key=True, nullable=False) rain_id = DB.Column(DB.Integer, DB.ForeignKey("senslopedb.rainfall_gauges.rain_id"), nullable=False) site_id = DB.Column(DB.Integer, DB.ForeignKey("commons_db.sites.site_id"), nullable=False) distance = DB.Column(DB.Float(5, 2), nullable=False) site = DB.relationship("Sites", backref=DB.backref("rainfall_priorities", lazy="dynamic"), lazy="subquery") rainfall_gauge = DB.relationship("RainfallGauges", backref=DB.backref("rainfall_priorities", lazy="dynamic"), lazy="subquery") def __repr__(self): return ( f"Type <{self.__class__.__name__}> Priority ID: {self.priority_id}" f" Rain ID: {self.rain_id} Distance: {self.distance}")
class RainfallThresholds(DB.Model): """ Class representation of rainfall_thresholds table """ __tablename__ = "rainfall_thresholds" __bind_key__ = "senslopedb" __table_args__ = {"schema": "senslopedb"} rt_id = DB.Column(DB.Integer, primary_key=True, nullable=False) site_id = DB.Column(DB.Integer, DB.ForeignKey("commons_db.sites.site_id"), nullable=False) threshold_name = DB.Column(DB.String(12), nullable=False) threshold_value = DB.Column(DB.Float(8, 5), nullable=False) site = DB.relationship("Sites", backref=DB.backref("rainfall_thresholds", lazy="dynamic"), lazy="subquery") def __repr__(self): return ( f"Type <{self.__class__.__name__}> Rain Threshold ID: {self.rt_id}" f" Site ID: {self.site_id} Thres Name: {self.threshold_name}" f" Threshold Value: {self.threshold_value}")
class OldMonitoringEQ(UserMixin, DB.Model): """ Class representation of public_alert_eq table """ __tablename__ = "public_alert_eq" id = DB.Column(DB.Integer, primary_key=True, nullable=False) trigger_id = DB.Column(DB.Integer, DB.ForeignKey( "public_alert_trigger.trigger_id")) magnitude = DB.Column(DB.Float(2, 1)) latitude = DB.Column(DB.Float(9, 6)) longitude = DB.Column(DB.Float(9, 6)) trigger = DB.relationship(OldMonitoringTriggers, backref=DB.backref( "eq_details", lazy="subquery", uselist=False)) def __repr__(self): return (f"Type <{self.__class__.__name__}> ID: {self.id}" f" Magnitude: {self.magnitude} Trigger ID: {self.trigger_id}")
class MonitoringEarthquake(UserMixin, DB.Model): """ Class representation of monitoring_earthquake table """ __tablename__ = "monitoring_earthquake" __bind_key__ = "ewi_db" __table_args__ = {"schema": "ewi_db"} eq_id = DB.Column(DB.Integer, primary_key=True, nullable=False) magnitude = DB.Column(DB.Float(2, 1), nullable=False) latitude = DB.Column(DB.Float(9, 6), nullable=False) longitude = DB.Column(DB.Float(9, 6), nullable=False) trigger_misc = DB.relationship( "MonitoringTriggersMisc", backref="eq", primaryjoin="MonitoringTriggersMisc.eq_id==MonitoringEarthquake.eq_id") def __repr__(self): return (f"Type <{self.__class__.__name__}> EQ ID: {self.eq_id}" f" Magnitude: {self.magnitude}")
class RainfallGauges(DB.Model): """ Class representation of rainfall_gauges table """ __tablename__ = "rainfall_gauges" __bind_key__ = "senslopedb" __table_args__ = {"schema": "senslopedb"} rain_id = DB.Column(DB.Integer, primary_key=True, nullable=False) gauge_name = DB.Column(DB.String(5), nullable=False) data_source = DB.Column(DB.String(8), nullable=False) latitude = DB.Column(DB.Float(9, 6), nullable=False) longitude = DB.Column(DB.Float(9, 6), nullable=False) date_activated = DB.Column(DB.DateTime, nullable=False) date_deactivated = DB.Column(DB.DateTime) def __repr__(self): return ( f"Type <{self.__class__.__name__}> Rain Gauge ID: {self.rain_id}" f" Gauge Name: {self.gauge_name} Date Activated: {self.date_activated}" )
class RainfallAlerts(DB.Model): """ Class representation of rainfall_alerts table """ __tablename__ = "rainfall_alerts" __bind_key__ = "senslopedb" __table_args__ = {"schema": "senslopedb"} ra_id = DB.Column(DB.Integer, primary_key=True, nullable=False) ts = DB.Column(DB.DateTime, nullable=False) site_id = DB.Column(DB.Integer, DB.ForeignKey("commons_db.sites.site_id"), nullable=False) rain_id = DB.Column(DB.Integer, DB.ForeignKey("senslopedb.rainfall_gauges.rain_id"), nullable=False) rain_alert = DB.Column(DB.String(2)) cumulative = DB.Column(DB.Float(5, 2)) threshold = DB.Column(DB.Float(5, 2)) site = DB.relationship("Sites", backref=DB.backref("rainfall_alerts", lazy="dynamic"), lazy="subquery") rainfall_gauge = DB.relationship("RainfallGauges", backref=DB.backref("rainfall_alerts", lazy="dynamic"), lazy="subquery") def __repr__(self): return ( f"Type <{self.__class__.__name__}> Rain Alert ID: {self.ra_id}" f" TS: {self.ts} Site ID: {self.site_id}" f" Rain Alert: {self.rain_alert} Cumulative: {self.cumulative}")