class MusicModel(db.Model): __tablename__ = 'music_recs' id = db.Column(db.Integer, primary_key=True) song = db.Column(db.String(), nullable=False) artist = db.Column(db.String(), nullable=True) musics = db.Column(db.JSON(), nullable=True) state = db.Column(db.Boolean, default=False) ip = db.Column(db.String(), nullable=True) agent = db.Column(db.String(), nullable=True) @classmethod def find_by_ip(cls, ip: str) -> "MusicModel": return cls.query.filter_by(ip=ip).all() @classmethod def find_all(cls) -> List["MusicModel"]: return cls.query.all() @property def serialized(self): """Return object data in serializeable format""" return { 'id': self.id, 'song': self.song, 'artist': self.artist, 'musics': self.musics, 'state': self.state, 'ip': self.ip, 'agent': self.agent, } def save_to_db(self) -> None: db.session.add(self) db.session.commit()
class StatsModel(db.Model): __tablename__ = 'stats' _id = db.Column(db.Integer, primary_key=True) type = db.Column(db.String(255)) data = db.Column(db.JSON(9000)) def __init__(self, type, data): self.type = type self.data = data def json(self): return { 'type': self.type, 'data': self.data, } @classmethod def find_by_type(cls, type): return cls.query.filter_by(type=type).first() def save_to_db(self): db.session.add(self) db.session.commit() def delete_from_db(self): db.session.delete(self) db.session.commit()
class Hospital(db.Model): """ Hospital data class """ __tablename__ = 'hospitals_current' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(255), nullable=False) address = db.Column(db.String(255), nullable=False) state = db.Column(db.String(255), nullable=False) contact = db.Column(db.String(255)) geojson = db.Column(db.JSON()) icu_low_state = db.Column(db.String(255)) icu_high_state = db.Column(db.String(255)) ecmo_state = db.Column(db.String(255)) last_update = db.Column(db.DateTime()) helipad_nearby = db.Column(db.Boolean()) def __init__(self, **kwargs): self.__dict__.update(kwargs) def __repr__(self): return '<Hospital %r>' % self.name def as_dict(self): result = { 'geometry': self.geojson, 'properties': { 'index': self.id, 'name': self.name, 'address': self.address, 'contact': self.contact, 'icu_low_state': self.icu_low_state, 'icu_high_state': self.icu_high_state, 'ecmo_state': self.ecmo_state, 'last_update': self.last_update, 'helipad_nearby': self.helipad_nearby } } return result
class HospitalDevelopmentAggregated(db.Model): """ Hospital data class """ __abstract__ = True name = db.Column(db.String()) ids = db.Column(db.String(), primary_key=True) geojson = db.Column(db.JSON()) centroid = db.Column(db.JSON()) icu_low_care_frei = db.Column(db.JSON()) icu_low_care_belegt = db.Column(db.JSON()) icu_low_care_einschaetzung = db.Column(db.JSON()) icu_low_care_in_24h = db.Column(db.JSON()) icu_high_care_frei = db.Column(db.JSON()) icu_high_care_belegt = db.Column(db.JSON()) icu_high_care_einschaetzung = db.Column(db.JSON()) icu_high_care_in_24h = db.Column(db.JSON()) icu_ecmo_care_frei = db.Column(db.JSON()) icu_ecmo_care_belegt = db.Column(db.JSON()) icu_ecmo_care_einschaetzung = db.Column(db.JSON()) icu_ecmo_care_in_24h = db.Column(db.JSON()) ecmo_faelle_jahr = db.Column(db.JSON()) covid19_aktuell = db.Column(db.JSON()) covid19_kumulativ = db.Column(db.JSON()) covid19_beatmet = db.Column(db.JSON()) covid19_verstorben = db.Column(db.JSON()) def __init__(self, **kwargs): self.__dict__.update(kwargs) def __repr__(self): return f'<DIVI Hospital Development {self.name}>' def as_dict(self): result = { 'geometry': self.geojson, 'properties': { 'name': self.name, 'ids': self.ids, 'centroid': self.centroid, 'icu_low_care_frei': self.icu_low_care_frei, 'icu_low_care_belegt': self.icu_low_care_belegt, 'icu_low_care_einschaetzung': self.icu_low_care_einschaetzung, 'icu_low_care_in_24h': self.icu_low_care_in_24h, 'icu_high_care_frei': self.icu_high_care_frei, 'icu_high_care_belegt': self.icu_high_care_belegt, 'icu_high_care_einschaetzung': self.icu_high_care_einschaetzung, 'icu_high_care_in_24h': self.icu_high_care_in_24h, 'icu_ecmo_care_frei': self.icu_ecmo_care_frei, 'icu_ecmo_care_belegt': self.icu_ecmo_care_belegt, 'icu_ecmo_care_einschaetzung': self.icu_ecmo_care_einschaetzung, 'icu_ecmo_care_in_24h': self.icu_ecmo_care_in_24h, 'ecmo_faelle_jahr': self.ecmo_faelle_jahr, 'covid19_aktuell': self.covid19_aktuell, 'covid19_kumulativ': self.covid19_kumulativ, 'covid19_beatmet': self.covid19_beatmet, 'covid19_verstorben': self.covid19_verstorben } } return result
class HospitalDevelopment(db.Model): """ Hospital data class """ __tablename__ = 'divi_hospitals_development' __table_args__ = (PrimaryKeyConstraint('gemeindeschluessel', 'ort', 'bundeslandschluessel', 'plz', 'webaddresse'), ) gemeindeschluessel = db.Column(db.String()) ort = db.Column(db.String()) bundeslandschluessel = db.Column(db.String()) plz = db.Column(db.String()) webaddresse = db.Column(db.String()) geojson = db.Column(db.JSON()) id = db.Column(db.Integer()) name = db.Column(db.JSON()) address = db.Column(db.JSON()) state = db.Column(db.JSON()) contact = db.Column(db.JSON()) helipad_nearby = db.Column(db.Boolean()) icu_low_care_frei = db.Column(db.JSON()) icu_low_care_belegt = db.Column(db.JSON()) icu_low_care_einschaetzung = db.Column(db.JSON()) icu_low_care_in_24h = db.Column(db.JSON()) icu_high_care_frei = db.Column(db.JSON()) icu_high_care_belegt = db.Column(db.JSON()) icu_high_care_einschaetzung = db.Column(db.JSON()) icu_high_care_in_24h = db.Column(db.JSON()) icu_ecmo_care_frei = db.Column(db.JSON()) icu_ecmo_care_belegt = db.Column(db.JSON()) icu_ecmo_care_einschaetzung = db.Column(db.JSON()) icu_ecmo_care_in_24h = db.Column(db.JSON()) ecmo_faelle_jahr = db.Column(db.JSON()) covid19_aktuell = db.Column(db.JSON()) covid19_kumulativ = db.Column(db.JSON()) covid19_beatmet = db.Column(db.JSON()) covid19_verstorben = db.Column(db.JSON()) def __init__(self, **kwargs): self.__dict__.update(kwargs) def __repr__(self): return f'<DIVI Hospital Development {self.ort}>' def as_dict(self): result = { 'geometry': self.geojson, 'properties': { 'gemeindeschluessel': self.gemeindeschluessel, 'ort': self.ort, 'bundeslandschluessel': self.bundeslandschluessel, 'plz': self.plz, 'webaddresse': self.webaddresse, 'id': self.id, 'name': self.name, 'address': self.address, 'state': self.state, 'contact': self.contact, 'helipad_nearby': self.helipad_nearby, 'icu_low_care_frei': self.icu_low_care_frei, 'icu_low_care_belegt': self.icu_low_care_belegt, 'icu_low_care_einschaetzung': self.icu_low_care_einschaetzung, 'icu_low_care_in_24h': self.icu_low_care_in_24h, 'icu_high_care_frei': self.icu_high_care_frei, 'icu_high_care_belegt': self.icu_high_care_belegt, 'icu_high_care_einschaetzung': self.icu_high_care_einschaetzung, 'icu_high_care_in_24h': self.icu_high_care_in_24h, 'icu_ecmo_care_frei': self.icu_ecmo_care_frei, 'icu_ecmo_care_belegt': self.icu_ecmo_care_belegt, 'icu_ecmo_care_einschaetzung': self.icu_ecmo_care_einschaetzung, 'icu_ecmo_care_in_24h': self.icu_ecmo_care_in_24h, 'ecmo_faelle_jahr': self.ecmo_faelle_jahr, 'covid19_aktuell': self.covid19_aktuell, 'covid19_kumulativ': self.covid19_kumulativ, 'covid19_beatmet': self.covid19_beatmet, 'covid19_verstorben': self.covid19_verstorben } } return result