199 lines
7.1 KiB
Python
199 lines
7.1 KiB
Python
# 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"],
|
|
},
|
|
),
|
|
]
|