trainvel/sncfgtfs/migrations/0001_initial.py

912 lines
33 KiB
Python

# Generated by Django 5.0.1 on 2024-05-09 17:16
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = []
operations = [
migrations.CreateModel(
name="StopTime",
fields=[
(
"id",
models.CharField(
max_length=255,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("arrival_time", models.DurationField(verbose_name="Arrival time")),
("departure_time", models.DurationField(verbose_name="Departure time")),
("stop_sequence", models.IntegerField(verbose_name="Stop sequence")),
(
"stop_headsign",
models.CharField(
blank=True, max_length=255, verbose_name="Stop headsign"
),
),
(
"pickup_type",
models.IntegerField(
choices=[
(0, "Regular"),
(1, "None"),
(2, "Must phone agency"),
(3, "Must coordinate with driver"),
],
default=0,
null=True,
verbose_name="Pickup type",
),
),
(
"drop_off_type",
models.IntegerField(
choices=[
(0, "Regular"),
(1, "None"),
(2, "Must phone agency"),
(3, "Must coordinate with driver"),
],
default=0,
null=True,
verbose_name="Drop off type",
),
),
(
"timepoint",
models.BooleanField(
default=True, null=True, verbose_name="Timepoint"
),
),
],
options={
"verbose_name": "Stop time",
"verbose_name_plural": "Stop times",
},
),
migrations.CreateModel(
name="Trip",
fields=[
(
"id",
models.CharField(
max_length=255,
primary_key=True,
serialize=False,
verbose_name="Trip ID",
),
),
(
"headsign",
models.CharField(
blank=True, max_length=255, verbose_name="Trip headsign"
),
),
(
"short_name",
models.CharField(
blank=True, max_length=255, verbose_name="Trip short name"
),
),
(
"direction_id",
models.IntegerField(
choices=[(0, "Outbound"), (1, "Inbound")],
null=True,
verbose_name="Direction",
),
),
(
"block_id",
models.CharField(
blank=True, max_length=255, verbose_name="Block ID"
),
),
(
"shape_id",
models.CharField(
blank=True, max_length=255, verbose_name="Shape ID"
),
),
(
"wheelchair_accessible",
models.IntegerField(
choices=[
(0, "No information"),
(1, "Possible"),
(2, "Not possible"),
],
default=0,
null=True,
verbose_name="Wheelchair accessible",
),
),
(
"bikes_allowed",
models.IntegerField(
choices=[
(0, "No information"),
(1, "Possible"),
(2, "Not possible"),
],
default=0,
null=True,
verbose_name="Bikes allowed",
),
),
],
options={
"verbose_name": "Trip",
"verbose_name_plural": "Trips",
},
),
migrations.CreateModel(
name="GTFSFeed",
fields=[
(
"code",
models.CharField(
help_text="Unique code of the feed.",
max_length=64,
primary_key=True,
serialize=False,
verbose_name="code",
),
),
(
"name",
models.CharField(
help_text="Full name that describes the feed.",
max_length=255,
unique=True,
verbose_name="name",
),
),
(
"country",
models.CharField(
choices=[
("AL", "Albania"),
("AD", "Andorra"),
("AM", "Armenia"),
("AT", "Austria"),
("AZ", "Azerbaijan"),
("BE", "Belgium"),
("BA", "Bosnia and Herzegovina"),
("BG", "Bulgaria"),
("HR", "Croatia"),
("CY", "Cyprus"),
("CZ", "Czech Republic"),
("DK", "Denmark"),
("EE", "Estonia"),
("FI", "Finland"),
("FR", "France"),
("GE", "Georgia"),
("DE", "Germany"),
("GR", "Greece"),
("HU", "Hungary"),
("IS", "Iceland"),
("IE", "Ireland"),
("IT", "Italy"),
("LV", "Latvia"),
("LI", "Liechtenstein"),
("LT", "Lithuania"),
("LU", "Luxembourg"),
("MT", "Malta"),
("MD", "Moldova"),
("MC", "Monaco"),
("ME", "Montenegro"),
("NL", "Netherlands"),
("MK", "North Macedonia"),
("NO", "Norway"),
("PL", "Poland"),
("PT", "Portugal"),
("RO", "Romania"),
("SM", "San Marino"),
("RS", "Serbia"),
("SK", "Slovakia"),
("SI", "Slovenia"),
("ES", "Spain"),
("SE", "Sweden"),
("CH", "Switzerland"),
("TR", "Turkey"),
("GB", "United Kingdom"),
("UA", "Ukraine"),
],
max_length=2,
verbose_name="country",
),
),
(
"feed_url",
models.URLField(
help_text="URL to download the GTFS feed. Must point to a ZIP archive. See https://gtfs.org/schedule/ for more information.",
verbose_name="feed URL",
),
),
(
"rt_feed_url",
models.URLField(
blank=True,
default="",
help_text="URL to download the GTFS-Realtime feed, in the GTFS-RT format. See https://gtfs.org/realtime/ for more information.",
verbose_name="realtime feed URL",
),
),
(
"last_modified",
models.DateTimeField(
default=None, null=True, verbose_name="last modified date"
),
),
(
"etag",
models.CharField(
blank=True,
default="",
help_text="If applicable, corresponds to the tag of the last downloaded file. If it is not modified, the file is the same.",
max_length=255,
verbose_name="ETag",
),
),
],
options={
"verbose_name": "GTFS feed",
"verbose_name_plural": "GTFS feeds",
"ordering": ("country", "name"),
"indexes": [
models.Index(fields=["name"], name="sncfgtfs_gt_name_43c613_idx")
],
},
),
migrations.CreateModel(
name="Calendar",
fields=[
(
"id",
models.CharField(
max_length=255,
primary_key=True,
serialize=False,
verbose_name="Service ID",
),
),
("monday", models.BooleanField(verbose_name="Monday")),
("tuesday", models.BooleanField(verbose_name="Tuesday")),
("wednesday", models.BooleanField(verbose_name="Wednesday")),
("thursday", models.BooleanField(verbose_name="Thursday")),
("friday", models.BooleanField(verbose_name="Friday")),
("saturday", models.BooleanField(verbose_name="Saturday")),
("sunday", models.BooleanField(verbose_name="Sunday")),
("start_date", models.DateField(verbose_name="Start date")),
("end_date", models.DateField(verbose_name="End date")),
(
"gtfs_feed",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="sncfgtfs.gtfsfeed",
verbose_name="GTFS feed",
),
),
],
options={
"verbose_name": "Calendar",
"verbose_name_plural": "Calendars",
"ordering": ("id",),
},
),
migrations.CreateModel(
name="Agency",
fields=[
(
"id",
models.CharField(
max_length=255,
primary_key=True,
serialize=False,
verbose_name="Agency ID",
),
),
("name", models.CharField(max_length=255, verbose_name="Agency name")),
("url", models.URLField(verbose_name="Agency URL")),
(
"timezone",
models.CharField(max_length=255, verbose_name="Agency timezone"),
),
(
"lang",
models.CharField(
blank=True, max_length=255, verbose_name="Agency language"
),
),
(
"phone",
models.CharField(
blank=True, max_length=255, verbose_name="Agency phone"
),
),
(
"email",
models.EmailField(
blank=True, max_length=254, verbose_name="Agency email"
),
),
(
"gtfs_feed",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="sncfgtfs.gtfsfeed",
verbose_name="GTFS feed",
),
),
],
options={
"verbose_name": "Agency",
"verbose_name_plural": "Agencies",
"ordering": ("name",),
},
),
migrations.CreateModel(
name="Route",
fields=[
(
"id",
models.CharField(
max_length=255,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"short_name",
models.CharField(max_length=255, verbose_name="Route short name"),
),
(
"long_name",
models.CharField(
blank=True, max_length=255, verbose_name="Route long name"
),
),
(
"desc",
models.CharField(
blank=True, max_length=255, verbose_name="Route description"
),
),
(
"type",
models.IntegerField(
choices=[
(0, "Tram"),
(1, "Metro"),
(2, "Rail"),
(3, "Bus"),
(4, "Ferry"),
(5, "Cable car"),
(6, "Gondola"),
(7, "Funicular"),
],
verbose_name="Route type",
),
),
("url", models.URLField(blank=True, verbose_name="Route URL")),
(
"color",
models.CharField(
blank=True, max_length=255, verbose_name="Route color"
),
),
(
"text_color",
models.CharField(
blank=True, max_length=255, verbose_name="Route text color"
),
),
(
"agency",
models.ForeignKey(
blank=True,
default=None,
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="routes",
to="sncfgtfs.agency",
verbose_name="Agency",
),
),
(
"gtfs_feed",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="sncfgtfs.gtfsfeed",
verbose_name="GTFS feed",
),
),
],
options={
"verbose_name": "Route",
"verbose_name_plural": "Routes",
"ordering": ("id",),
},
),
migrations.CreateModel(
name="Stop",
fields=[
(
"id",
models.CharField(
max_length=255,
primary_key=True,
serialize=False,
verbose_name="Stop ID",
),
),
(
"code",
models.CharField(
blank=True, max_length=255, verbose_name="Stop code"
),
),
("name", models.CharField(max_length=255, verbose_name="Stop name")),
(
"desc",
models.CharField(
blank=True, max_length=255, verbose_name="Stop description"
),
),
("lon", models.FloatField(verbose_name="Stop longitude")),
("lat", models.FloatField(verbose_name="Stop latitude")),
(
"zone_id",
models.CharField(
blank=True, max_length=255, verbose_name="Zone ID"
),
),
("url", models.URLField(blank=True, verbose_name="Stop URL")),
(
"location_type",
models.IntegerField(
blank=True,
choices=[
(0, "Stop/platform"),
(1, "Station"),
(2, "Entrance/exit"),
(3, "Generic node"),
(4, "Boarding area"),
],
default=0,
verbose_name="Location type",
),
),
(
"timezone",
models.CharField(
blank=True, max_length=255, verbose_name="Stop timezone"
),
),
(
"level_id",
models.CharField(
blank=True, max_length=255, verbose_name="Level ID"
),
),
(
"wheelchair_boarding",
models.IntegerField(
blank=True,
choices=[
(0, "No information"),
(1, "Possible"),
(2, "Not possible"),
],
default=0,
verbose_name="Wheelchair boarding",
),
),
(
"platform_code",
models.CharField(
blank=True, max_length=255, verbose_name="Platform code"
),
),
(
"gtfs_feed",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="sncfgtfs.gtfsfeed",
verbose_name="GTFS feed",
),
),
(
"parent_station",
models.ForeignKey(
blank=True,
null=True,
on_delete=django.db.models.deletion.PROTECT,
related_name="children",
to="sncfgtfs.stop",
verbose_name="Parent station",
),
),
],
options={
"verbose_name": "Stop",
"verbose_name_plural": "Stops",
"ordering": ("id",),
},
),
migrations.CreateModel(
name="StopTimeUpdate",
fields=[
(
"stop_time",
models.OneToOneField(
on_delete=django.db.models.deletion.CASCADE,
primary_key=True,
related_name="update",
serialize=False,
to="sncfgtfs.stoptime",
verbose_name="Stop time",
),
),
("arrival_delay", models.DurationField(verbose_name="Arrival delay")),
("arrival_time", models.DateTimeField(verbose_name="Arrival time")),
(
"departure_delay",
models.DurationField(verbose_name="Departure delay"),
),
("departure_time", models.DateTimeField(verbose_name="Departure time")),
(
"schedule_relationship",
models.IntegerField(
choices=[
(0, "Scheduled"),
(1, "Skipped"),
(2, "No data"),
(3, "Unscheduled"),
],
default=0,
verbose_name="Schedule relationship",
),
),
],
options={
"verbose_name": "Stop time update",
"verbose_name_plural": "Stop time updates",
"ordering": ("trip_update", "stop_time"),
},
),
migrations.AddField(
model_name="stoptime",
name="stop",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="stop_times",
to="sncfgtfs.stop",
verbose_name="Stop ID",
),
),
migrations.CreateModel(
name="Transfer",
fields=[
(
"id",
models.CharField(
max_length=255,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"transfer_type",
models.IntegerField(
choices=[
(0, "Recommended"),
(1, "Timed"),
(2, "Minimum time"),
(3, "Not possible"),
],
default=0,
verbose_name="Transfer type",
),
),
(
"min_transfer_time",
models.IntegerField(
blank=True, verbose_name="Minimum transfer time"
),
),
(
"from_stop",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="transfers_from",
to="sncfgtfs.stop",
verbose_name="From stop",
),
),
(
"to_stop",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="transfers_to",
to="sncfgtfs.stop",
verbose_name="To stop",
),
),
],
options={
"verbose_name": "Transfer",
"verbose_name_plural": "Transfers",
"ordering": ("id",),
},
),
migrations.CreateModel(
name="TripUpdate",
fields=[
(
"trip",
models.OneToOneField(
on_delete=django.db.models.deletion.CASCADE,
primary_key=True,
related_name="update",
serialize=False,
to="sncfgtfs.trip",
verbose_name="Trip",
),
),
("start_date", models.DateField(verbose_name="Start date")),
("start_time", models.TimeField(verbose_name="Start time")),
(
"schedule_relationship",
models.IntegerField(
choices=[
(0, "Scheduled"),
(1, "Added"),
(2, "Unscheduled"),
(3, "Canceled"),
(5, "Replacement"),
(6, "Duplicated"),
(7, "Deleted"),
],
default=0,
verbose_name="Schedule relationship",
),
),
],
options={
"verbose_name": "Trip update",
"verbose_name_plural": "Trip updates",
"ordering": ("start_date", "trip"),
},
),
migrations.AddField(
model_name="trip",
name="gtfs_feed",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="sncfgtfs.gtfsfeed",
verbose_name="GTFS feed",
),
),
migrations.AddField(
model_name="trip",
name="route",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="trips",
to="sncfgtfs.route",
verbose_name="Route",
),
),
migrations.AddField(
model_name="trip",
name="service",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="trips",
to="sncfgtfs.calendar",
verbose_name="Service",
),
),
migrations.AddField(
model_name="stoptime",
name="trip",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="stop_times",
to="sncfgtfs.trip",
verbose_name="Trip",
),
),
migrations.CreateModel(
name="CalendarDate",
fields=[
(
"id",
models.CharField(
max_length=255,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("date", models.DateField(verbose_name="Date")),
(
"exception_type",
models.IntegerField(
choices=[(1, "Added"), (2, "Removed")],
verbose_name="Exception type",
),
),
(
"service",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="dates",
to="sncfgtfs.calendar",
verbose_name="Service",
),
),
],
options={
"verbose_name": "Calendar date",
"verbose_name_plural": "Calendar dates",
"ordering": ("id",),
"indexes": [
models.Index(
fields=["service"], name="sncfgtfs_ca_service_837ec3_idx"
),
models.Index(fields=["date"], name="sncfgtfs_ca_date_6c4732_idx"),
],
},
),
migrations.CreateModel(
name="FeedInfo",
fields=[
(
"id",
models.BigAutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
(
"publisher_name",
models.CharField(
max_length=255, verbose_name="Feed publisher name"
),
),
("publisher_url", models.URLField(verbose_name="Feed publisher URL")),
(
"lang",
models.CharField(max_length=255, verbose_name="Feed language"),
),
("start_date", models.DateField(verbose_name="Feed start date")),
("end_date", models.DateField(verbose_name="Feed end date")),
(
"version",
models.CharField(max_length=255, verbose_name="Feed version"),
),
(
"gtfs_feed",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="sncfgtfs.gtfsfeed",
verbose_name="GTFS feed",
),
),
],
options={
"verbose_name": "Feed info",
"verbose_name_plural": "Feed infos",
"ordering": ("publisher_name",),
"indexes": [
models.Index(
fields=["gtfs_feed"], name="sncfgtfs_fe_gtfs_fe_b5e3d7_idx"
)
],
},
),
migrations.AddIndex(
model_name="calendar",
index=models.Index(
fields=["gtfs_feed"], name="sncfgtfs_ca_gtfs_fe_061858_idx"
),
),
migrations.AddIndex(
model_name="agency",
index=models.Index(fields=["name"], name="sncfgtfs_ag_name_fe3bcd_idx"),
),
migrations.AddIndex(
model_name="agency",
index=models.Index(
fields=["gtfs_feed"], name="sncfgtfs_ag_gtfs_fe_588658_idx"
),
),
migrations.AddIndex(
model_name="route",
index=models.Index(
fields=["gtfs_feed"], name="sncfgtfs_ro_gtfs_fe_818b6e_idx"
),
),
migrations.AddIndex(
model_name="stop",
index=models.Index(fields=["name"], name="sncfgtfs_st_name_63b266_idx"),
),
migrations.AddIndex(
model_name="stop",
index=models.Index(fields=["code"], name="sncfgtfs_st_code_5b6ba9_idx"),
),
migrations.AddIndex(
model_name="stop",
index=models.Index(
fields=["gtfs_feed"], name="sncfgtfs_st_gtfs_fe_a59997_idx"
),
),
migrations.AddIndex(
model_name="tripupdate",
index=models.Index(fields=["trip"], name="sncfgtfs_tr_trip_id_56a7e3_idx"),
),
migrations.AlterUniqueTogether(
name="tripupdate",
unique_together={("trip", "start_date", "start_time")},
),
migrations.AddField(
model_name="stoptimeupdate",
name="trip_update",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="stop_time_updates",
to="sncfgtfs.tripupdate",
verbose_name="Trip update",
),
),
migrations.AddIndex(
model_name="trip",
index=models.Index(fields=["route"], name="sncfgtfs_tr_route_i_003721_idx"),
),
migrations.AddIndex(
model_name="trip",
index=models.Index(
fields=["gtfs_feed"], name="sncfgtfs_tr_gtfs_fe_55db7e_idx"
),
),
migrations.AddIndex(
model_name="stoptime",
index=models.Index(fields=["stop"], name="sncfgtfs_st_stop_id_e3012f_idx"),
),
migrations.AddIndex(
model_name="stoptime",
index=models.Index(fields=["trip"], name="sncfgtfs_st_trip_id_751dca_idx"),
),
migrations.AddIndex(
model_name="stoptimeupdate",
index=models.Index(
fields=["trip_update"], name="sncfgtfs_st_trip_up_a7fabf_idx"
),
),
migrations.AddIndex(
model_name="stoptimeupdate",
index=models.Index(
fields=["stop_time"], name="sncfgtfs_st_stop_ti_96270f_idx"
),
),
migrations.AlterUniqueTogether(
name="stoptimeupdate",
unique_together={("trip_update", "stop_time")},
),
]