# Generated by Django 6.0.6 on 2026-06-20 18:57 import django.db.models.deletion from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name="Einrichtung", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), ("name", models.CharField(max_length=120)), ("address", models.CharField(blank=True, max_length=200)), ("contact", models.CharField(blank=True, max_length=120)), ], options={ "ordering": ["name"], }, ), migrations.CreateModel( name="Availability", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), ("start", models.DateTimeField(verbose_name="Beginn")), ("end", models.DateTimeField(verbose_name="Ende")), ( "pilot", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="availabilities", to=settings.AUTH_USER_MODEL, ), ), ], options={ "verbose_name": "Verfügbarkeit", "verbose_name_plural": "Verfügbarkeiten", "ordering": ["start"], }, ), migrations.CreateModel( name="Fahrgast", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), ("name", models.CharField(max_length=120)), ("address", models.CharField(blank=True, max_length=200)), ( "mobility_notes", models.TextField( blank=True, help_text="Mobilität, Vorlieben, Hinweise für die Fahrt.", verbose_name="Hinweise", ), ), ( "einrichtung", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="fahrgaeste", to="rides.einrichtung", ), ), ], options={ "verbose_name": "Fahrgast", "verbose_name_plural": "Fahrgäste", "ordering": ["name"], }, ), migrations.CreateModel( name="Profile", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), ( "role", models.CharField( choices=[ ("coordinator", "Koordination"), ("pilot", "Pilot"), ("requester", "Besteller"), ], max_length=20, ), ), ("phone", models.CharField(blank=True, max_length=40)), ( "user", models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, related_name="profile", to=settings.AUTH_USER_MODEL, ), ), ], ), migrations.CreateModel( name="Ride", fields=[ ( "id", models.BigAutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID" ), ), ("scheduled_at", models.DateTimeField(verbose_name="Termin")), ( "status", models.CharField( choices=[ ("requested", "Angefragt"), ("planned", "Geplant"), ("claimed", "Übernommen"), ("done", "Erledigt"), ("cancelled", "Abgesagt"), ], default="requested", max_length=20, ), ), ("pickup_label", models.CharField(max_length=200, verbose_name="Abholort")), ("pickup_lat", models.FloatField()), ("pickup_lng", models.FloatField()), ("dest_label", models.CharField(max_length=200, verbose_name="Ziel")), ("dest_lat", models.FloatField()), ("dest_lng", models.FloatField()), ( "route_geojson", models.JSONField( blank=True, help_text="Gecachte Route (Start→Ziel) vom Routing-Dienst.", null=True, ), ), ("note", models.TextField(blank=True, verbose_name="Notiz zur Fahrt")), ( "assigned_pilot", models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="rides", to=settings.AUTH_USER_MODEL, ), ), ( "fahrgast", models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, related_name="rides", to="rides.fahrgast", ), ), ( "requested_by", models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="requested_rides", to=settings.AUTH_USER_MODEL, ), ), ], options={ "verbose_name": "Fahrt", "verbose_name_plural": "Fahrten", "ordering": ["scheduled_at"], }, ), ]