|
27 | 27 | TIMESTAMP, |
28 | 28 | ) |
29 | 29 | import sqlalchemy |
| 30 | +import geoalchemy2 |
30 | 31 | from sqlalchemy.orm import relationship, load_only, backref |
31 | 32 | from sqlalchemy import or_, and_ |
32 | 33 |
|
@@ -791,6 +792,68 @@ def is_anonymous(self): |
791 | 792 | def get_id(self): |
792 | 793 | return self.id |
793 | 794 |
|
| 795 | +class WazeAllerts(Base): |
| 796 | + __tablename__ = "waze_alerts" |
| 797 | + |
| 798 | + alert_subtype = Column(BigInteger(), nullable=True) |
| 799 | + alert_type = Column(Text(), nullable=True) |
| 800 | + back_filled = Column(Boolean(), nullable = True) |
| 801 | + city = Column(Text(), nullable = True) |
| 802 | + confidence = Column(Integer(), nullable = True) |
| 803 | + created_at = Column(DateTime(), nullable = True) |
| 804 | + ended_at_estimate = Column(DateTime(), nullable = True) |
| 805 | + geom = Column(geoalchemy2.types.Geometry(geometry_type='LINESTRING', from_text='ST_GeomFromEWKT', name='geometry'), nullable=True) |
| 806 | + id = Column(BigInteger(), nullable=False,primary_key=True) |
| 807 | + jam_uuid = Column(Text(), nullable=True) |
| 808 | + latitude = Column(Float(), nullable=True) |
| 809 | + longitude = Column(Float(), nullable=True) |
| 810 | + magvar = Column(Integer(), nullable=True) |
| 811 | + number_thumbs_up = Column(Integer(), nullable=True) |
| 812 | + reliability = Column(Integer(), nullable=True) |
| 813 | + report_by_municipality_user = Column(Boolean(), nullable=True) |
| 814 | + report_description = Column(Text(), nullable=True) |
| 815 | + report_rating = Column() |
| 816 | + road_type = Column(Integer(), nullable=True) |
| 817 | + street = Column(Text(), nullable=True) |
| 818 | + uuid = Column(Text(), nullable=True) |
| 819 | + def serialize(self): |
| 820 | + return { |
| 821 | + "alert_subtype": self.alert_subtype, |
| 822 | + "alert_type": self.alert_type, |
| 823 | + "back_filled": self.back_filled, |
| 824 | + "city": self.city, |
| 825 | + "confidence": self.confidence, |
| 826 | + "created_at": self.created_at, |
| 827 | + "ended_at_estimate": self.ended_at_estimate, |
| 828 | + "geom": self.geom, |
| 829 | + "id": self.id, |
| 830 | + "jam_uuid": self.jam_uuid, |
| 831 | + "latitude": self.latitude, |
| 832 | + "longitude": self.longitude, |
| 833 | + "magvar": self.magvar, |
| 834 | + "number_thumbs_up": self.number_thumbs_up, |
| 835 | + "reliability": self.reliability, |
| 836 | + "report_by_municipality_user": self.report_by_municipality_user, |
| 837 | + "report_description": self.report_description, |
| 838 | + "report_rating": self.report_rating, |
| 839 | + "road_type": self.road_type, |
| 840 | + "street": self.street, |
| 841 | + "uuid": self.uuid |
| 842 | + } |
| 843 | + |
| 844 | + # Flask-Login integration |
| 845 | + def is_authenticated(self): |
| 846 | + return True |
| 847 | + |
| 848 | + def is_active(self): |
| 849 | + return True |
| 850 | + |
| 851 | + def is_anonymous(self): |
| 852 | + return False |
| 853 | + |
| 854 | + def get_id(self): |
| 855 | + return self.id |
| 856 | + |
794 | 857 |
|
795 | 858 | class NewsFlash(Base): |
796 | 859 | __tablename__ = "news_flash" |
@@ -2069,6 +2132,7 @@ class InvolvedMarkerView(Base): |
2069 | 2132 |
|
2070 | 2133 | class WazeAlert(Base): |
2071 | 2134 | __tablename__ = "waze_alerts" |
| 2135 | + __table_args__ = {'extend_existing': True} |
2072 | 2136 |
|
2073 | 2137 | id = Column(BigInteger(), primary_key=True) |
2074 | 2138 | city = Column(Text()) |
|
0 commit comments