173 lines
6.9 KiB
Python
173 lines
6.9 KiB
Python
|
|
from sqlalchemy.sql import func
|
||
|
|
from sqlalchemy.dialects import postgresql
|
||
|
|
from webinterface import db
|
||
|
|
from sqlalchemy.ext.declarative import declarative_base
|
||
|
|
|
||
|
|
Model = declarative_base()
|
||
|
|
engine = create_engine(os.environ.get('SQLALCHEMY_GTFSDB_URI'), echo=False)
|
||
|
|
Session = sessionmaker(bind=engine, autocommit=False, autoflush=True)
|
||
|
|
session = Session()
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
class sArchivosGTFS(Model):
|
||
|
|
__tablename__ = 'gtfs'
|
||
|
|
__bind_key__ = 'gtfs_static'
|
||
|
|
id = Column(Integer, primary_key=True, nullable=False, autoincrement=True)
|
||
|
|
|
||
|
|
descripcion = Column(String)
|
||
|
|
file = Column(String)
|
||
|
|
hash = Column(String)
|
||
|
|
size = Column(Integer)
|
||
|
|
loaded = Column(Integer, default=0)
|
||
|
|
ts = Column(Datetime, default=func.now())
|
||
|
|
|
||
|
|
#agency_id,agency_name,agency_url,agency_timezone,agency_lang,agency_phone,agency_fare_url
|
||
|
|
#DTPR,División de Transporte Público Regional,http://www.dtpr.gob.cl/,America/Santiago,es,+562 2421 3580,
|
||
|
|
class sAgencia(Model):
|
||
|
|
__tablename__ = 'agency'
|
||
|
|
__bind_key__ = 'gtfs_static'
|
||
|
|
id = Column(Integer, primary_key=True, nullable=False, autoincrement=True)
|
||
|
|
|
||
|
|
agency_id = Column(String)
|
||
|
|
agency_name = Column(String)
|
||
|
|
agency_url = Column(String)
|
||
|
|
agency_timezone = Column(String)
|
||
|
|
agency_lang = Column(String)
|
||
|
|
agency_phone = Column(String)
|
||
|
|
agency_fare_url = Column(String)
|
||
|
|
|
||
|
|
#service_id,start_date,end_date,monday,tuesday,wednesday,thursday,friday,saturday,sunday
|
||
|
|
#S,20210101,20311231,0,0,0,0,0,1,0
|
||
|
|
#D,20210101,20311231,0,0,0,0,0,0,1
|
||
|
|
#L,20210101,20311231,1,1,1,1,1,0,0
|
||
|
|
class sCalendario(Model):
|
||
|
|
__tablename__ = 'calendar'
|
||
|
|
__bind_key__ = 'gtfs_static'
|
||
|
|
id = Column(Integer, primary_key=True, nullable=False, autoincrement=True)
|
||
|
|
|
||
|
|
service_id = Column(String)
|
||
|
|
start_date = Column(String)
|
||
|
|
end_date = Column(String)
|
||
|
|
monday = Column(Integer)
|
||
|
|
tuesday = Column(Integer)
|
||
|
|
wednesday = Column(Integer)
|
||
|
|
thursday = Column(Integer)
|
||
|
|
friday = Column(Integer)
|
||
|
|
saturday = Column(Integer)
|
||
|
|
sunday = Column(Integer)
|
||
|
|
|
||
|
|
#feed_publisher_name,feed_publisher_url,feed_lang,feed_start_date,feed_end_date,feed_version
|
||
|
|
#División de Transporte Público Regional,http://www.dtpr.gob.cl/,es,20210101,20311231,Gran Concepción20220616
|
||
|
|
class sFeedInfo(Model):
|
||
|
|
__tablename__ = 'feed_info'
|
||
|
|
__bind_key__ = 'gtfs_static'
|
||
|
|
id = Column(Integer, primary_key=True, nullable=False, autoincrement=True)
|
||
|
|
|
||
|
|
feed_publisher_name = Column(String)
|
||
|
|
feed_publisher_url = Column(String)
|
||
|
|
feed_lang = Column(String)
|
||
|
|
feed_start_date = Column(String)
|
||
|
|
feed_end_date = Column(String)
|
||
|
|
feed_version = Column(String)
|
||
|
|
|
||
|
|
#route_id,agency_id,route_short_name,route_long_name,route_desc,route_type,route_url,route_color,route_text_color
|
||
|
|
#625,DTPR,70KH,Nonguén - Parque Tumbes,,3,,0d7215,ffffff
|
||
|
|
#600,DTPR,41CR,Parque Empresarial Biobío - Terminal Collao,,3,,ad0101,ffffff
|
||
|
|
class sRuta(Model):
|
||
|
|
__tablename__ = 'routes'
|
||
|
|
__bind_key__ = 'gtfs_static'
|
||
|
|
|
||
|
|
id = Column(Integer, primary_key=True, nullable=False, autoincrement=True)
|
||
|
|
|
||
|
|
route_id = Column(String)
|
||
|
|
agency_id = Column(String)
|
||
|
|
route_short_name = Column(String)
|
||
|
|
route_long_name = Column(String)
|
||
|
|
route_desc = Column(String)
|
||
|
|
route_type = Column(Integer)
|
||
|
|
route_url = Column(String)
|
||
|
|
route_color = Column(String)
|
||
|
|
route_text_color = Column(String)
|
||
|
|
|
||
|
|
#shape_id,shape_pt_lat,shape_pt_lon,shape_pt_sequence,shape_dist_traveled
|
||
|
|
#1136979693,-36.843,-73.00984,1
|
||
|
|
#1136979693,-36.843,-73.00984,2
|
||
|
|
class sFormas(Model):
|
||
|
|
__tablename__ = 'shapes'
|
||
|
|
__bind_key__ = 'gtfs_static'
|
||
|
|
|
||
|
|
id = Column(Integer, primary_key=True, nullable=False, autoincrement=True)
|
||
|
|
|
||
|
|
shape_id = Column(String)
|
||
|
|
shape_pt_lat = Column(Double)
|
||
|
|
shape_pt_lon = Column(Double)
|
||
|
|
shape_pt_sequence = Column(Integer)
|
||
|
|
shape_dist_traveled = Column(Double)
|
||
|
|
|
||
|
|
#stop_id,stop_code,stop_name,stop_desc,stop_lat,stop_lon,zone_id,stop_url,location_type,parent_station,wheelchair_boarding
|
||
|
|
#40921,,Pque Zoologico Concepcion Poniente,,-36.8400453,-73.00696914,,,,,
|
||
|
|
#40808,,Cno. Nonguen esq Las Vertientes,,-36.83675878,-73.00343935,,,,,
|
||
|
|
class sParadas(Model):
|
||
|
|
__tablename__ = 'stops'
|
||
|
|
__bind_key__ = 'gtfs_static'
|
||
|
|
|
||
|
|
id = Column(Integer, primary_key=True, nullable=False, autoincrement=True)
|
||
|
|
|
||
|
|
stop_id = Column(String)
|
||
|
|
stop_code = Column(String)
|
||
|
|
stop_name = Column(String)
|
||
|
|
stop_desc = Column(String)
|
||
|
|
stop_lat = Column(Double)
|
||
|
|
stop_lon = Column(Double)
|
||
|
|
zone_id = Column(String)
|
||
|
|
stop_url = Column(String)
|
||
|
|
location_type = Column(Integer)
|
||
|
|
parent_station = Column(String)
|
||
|
|
wheelchair_boarding = Column(Integer)
|
||
|
|
#trip_id,arrival_time,departure_time,stop_id,stop_sequence, timepoint,shape_dist_traveled
|
||
|
|
#trip_id,arrival_time,departure_time,stop_id,stop_sequence,stop_headsign,pickup_type,drop_off_type,timepoint
|
||
|
|
#c8b17d5f-4-76aabf89-b,05:01:00,05:01:00,40439,1,,,,1
|
||
|
|
#c8b17d5f-4-76aabf89-b,05:02:00,05:02:00,40440,2,,,,0
|
||
|
|
class sDetenciones(Model):
|
||
|
|
__tablename__ = 'stop_times'
|
||
|
|
__bind_key__ = 'gtfs_static'
|
||
|
|
|
||
|
|
id = Column(Integer, primary_key=True, nullable=False, autoincrement=True)
|
||
|
|
|
||
|
|
trip_id = Column(String)
|
||
|
|
arrival_time = Column(String)
|
||
|
|
departure_time = Column(String)
|
||
|
|
stop_id = Column(String)
|
||
|
|
stop_sequence = Column(Integer)
|
||
|
|
stop_headsign = Column(String)
|
||
|
|
pickup_type = Column(Integer)
|
||
|
|
drop_off_type = Column(Integer)
|
||
|
|
timepoint = Column(Integer)
|
||
|
|
#,,,,,,
|
||
|
|
|
||
|
|
#route_id,service_id,trip_id,trip_headsign, direction_id,block_id,shape_id,wheelchair_accessible,bikes_allowed
|
||
|
|
#route_id,service_id,trip_id,trip_headsign,trip_short_name,direction_id,block_id,shape_id,wheelchair_accessible,bikes_allowed
|
||
|
|
#625,S,c8b17d5f-4-76aabf89-b,Nonguén,,1,,1136979694,,
|
||
|
|
#625,S,4d018d35-7-76aabf89-b,Parque Tumbes,,0,,1136979693,,
|
||
|
|
#ac48288b-1-56195eaf-8,b1910f5b,1,0,1168259538,,0,0,1-1,1
|
||
|
|
#d9e94be9-f-56195eaf-8,b1910f5b,1,0,1168259538,,0,0,1-1,2
|
||
|
|
class sServicio(Model):
|
||
|
|
__tablename__ = 'trips'
|
||
|
|
__bind_key__ = 'gtfs_static'
|
||
|
|
|
||
|
|
id = Column(String, primary_key=True, nullable=False)
|
||
|
|
|
||
|
|
route_id = Column(String) # Ruta.rutaid
|
||
|
|
service_id = Column(String)
|
||
|
|
trip_id = Column(String)
|
||
|
|
trip_headsign = Column(String)
|
||
|
|
trip_short_name = Column(String)
|
||
|
|
direction_id = Column(Integer)
|
||
|
|
block_id = Column(String)
|
||
|
|
shape_id = Column(String)
|
||
|
|
wheelchair_accessible = Column(Integer)
|
||
|
|
bikes_allowed = Column(Integer)
|
||
|
|
|
||
|
|
# 4cc08782-c-76aabf89-b
|