diff -r 659ab465152e -r f9788970fa46 datamodel.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/datamodel.py Wed Jul 29 23:45:53 2020 +0300 @@ -0,0 +1,55 @@ +import sqlalchemy.ext.declarative +GtfsBase = sqlalchemy.ext.declarative.declarative_base(name = 'GtfsBase') + +class GtfsRoute(GtfsBase): + __tablename__ = 'routes' + id = sqlalchemy.Column(sqlalchemy.String, primary_key = True) + reference = sqlalchemy.Column(sqlalchemy.String) + description = sqlalchemy.Column(sqlalchemy.String) + type = sqlalchemy.Column(sqlalchemy.Integer) + +class GtfsShape(GtfsBase): + __tablename__ = 'shapes' + id = sqlalchemy.Column(sqlalchemy.String, primary_key = True) + length = sqlalchemy.Column(sqlalchemy.Numeric, default = 0) + shape_coordinates = sqlalchemy.Column(sqlalchemy.String) + +class GtfsTrip(GtfsBase): + __tablename__ = 'trips' + id = sqlalchemy.Column(sqlalchemy.String, primary_key = True) + route_id = sqlalchemy.Column(sqlalchemy.String, sqlalchemy.ForeignKey(GtfsRoute.id)) + service = sqlalchemy.Column(sqlalchemy.String) + shape_id = sqlalchemy.Column(sqlalchemy.String, sqlalchemy.ForeignKey(GtfsShape.id)) + route = sqlalchemy.orm.relationship('GtfsRoute', foreign_keys = 'GtfsTrip.route_id') + shape = sqlalchemy.orm.relationship('GtfsShape', foreign_keys = 'GtfsTrip.shape_id') + +class GtfsService(GtfsBase): + __tablename__ = 'services' + id = sqlalchemy.Column(sqlalchemy.String, primary_key = True) + +class GtfsStop(GtfsBase): + __tablename__ = 'stops' + stop_id = sqlalchemy.Column(sqlalchemy.String, primary_key = True) + stop_name = sqlalchemy.Column(sqlalchemy.String) + stop_latitude = sqlalchemy.Column(sqlalchemy.Numeric) + stop_longitude = sqlalchemy.Column(sqlalchemy.Numeric) + stop_region = sqlalchemy.Column(sqlalchemy.String) + stop_region_major = sqlalchemy.Column(sqlalchemy.Boolean) + +class GtfsRegion(GtfsBase): + # Not a gtfs data set, but the Gtfs prefix added for consistency + __tablename__ = 'regions' + region_name = sqlalchemy.Column(sqlalchemy.String, primary_key = True) + region_name_sv = sqlalchemy.Column(sqlalchemy.String) + region_name_en = sqlalchemy.Column(sqlalchemy.String) + region_name_ja = sqlalchemy.Column(sqlalchemy.String) + region_short_name = sqlalchemy.Column(sqlalchemy.String) + region_short_name_sv = sqlalchemy.Column(sqlalchemy.String) + region_short_name_en = sqlalchemy.Column(sqlalchemy.String) + region_short_name_ja = sqlalchemy.Column(sqlalchemy.String) + region_internal_name = sqlalchemy.Column(sqlalchemy.String) + region_internal_name_sv = sqlalchemy.Column(sqlalchemy.String) + region_internal_name_en = sqlalchemy.Column(sqlalchemy.String) + region_internal_name_ja = sqlalchemy.Column(sqlalchemy.String) + municipality = sqlalchemy.Column(sqlalchemy.String, nullable = False) + external = sqlalchemy.Column(sqlalchemy.Boolean)