This commit is contained in:
@@ -36,6 +36,31 @@ VERKEHRSMITTEL_OPTIONEN = [
|
||||
]
|
||||
|
||||
|
||||
class Stop(db.Model):
|
||||
"""A boardable public-transport stop ("Haltestelle") in Austria.
|
||||
|
||||
Sourced from OpenStreetMap; see scripts/fetch_stops.py and stops_import.py.
|
||||
"""
|
||||
|
||||
__tablename__ = "stops"
|
||||
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
osm_type = db.Column(db.String(8), nullable=False)
|
||||
osm_id = db.Column(db.BigInteger, nullable=False)
|
||||
|
||||
name = db.Column(db.String(200), nullable=False)
|
||||
# lowercased, accent-folded copy of name for diacritic-insensitive search
|
||||
name_normalized = db.Column(db.String(200), nullable=False, index=True)
|
||||
stop_type = db.Column(db.String(20), nullable=False, default="other")
|
||||
municipality = db.Column(db.String(120))
|
||||
latitude = db.Column(db.Float, nullable=False)
|
||||
longitude = db.Column(db.Float, nullable=False)
|
||||
|
||||
__table_args__ = (
|
||||
db.UniqueConstraint("osm_type", "osm_id", name="uq_stops_osm"),
|
||||
)
|
||||
|
||||
|
||||
class Trip(db.Model):
|
||||
__tablename__ = "trips"
|
||||
|
||||
@@ -44,10 +69,16 @@ class Trip(db.Model):
|
||||
|
||||
transport_mode = db.Column(db.String(50), nullable=False)
|
||||
line = db.Column(db.String(50))
|
||||
# free-text label as entered; *_stop_id links to a known stop when matched
|
||||
origin = db.Column(db.String(120), nullable=False)
|
||||
origin_stop_id = db.Column(db.Integer, db.ForeignKey("stops.id"))
|
||||
destination = db.Column(db.String(120), nullable=False)
|
||||
destination_stop_id = db.Column(db.Integer, db.ForeignKey("stops.id"))
|
||||
trip_date = db.Column(db.Date, nullable=False, default=date.today)
|
||||
rating = db.Column(db.Integer, nullable=False) # 1-5
|
||||
comment = db.Column(db.Text)
|
||||
|
||||
created_at = db.Column(db.DateTime, server_default=db.func.now())
|
||||
|
||||
origin_stop = db.relationship("Stop", foreign_keys=[origin_stop_id])
|
||||
destination_stop = db.relationship("Stop", foreign_keys=[destination_stop_id])
|
||||
|
||||
Reference in New Issue
Block a user