Files
proc-rota/djangorota/rota/migrations/0001_initial.py
T
2025-12-09 10:01:04 +00:00

165 lines
5.6 KiB
Python

# Generated by Django 6.0 on 2025-12-09 09:59
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = []
operations = [
migrations.CreateModel(
name="RotaSchedule",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("name", models.CharField(max_length=200, unique=True)),
("start_date", models.DateField()),
("end_date", models.DateField()),
("description", models.TextField(blank=True)),
("created_at", models.DateTimeField(auto_now_add=True)),
],
),
migrations.CreateModel(
name="RotaRun",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("created_at", models.DateTimeField(auto_now_add=True)),
("started_at", models.DateTimeField(blank=True, null=True)),
("finished_at", models.DateTimeField(blank=True, null=True)),
(
"status",
models.CharField(
choices=[
("pending", "Pending"),
("running", "Running"),
("success", "Success"),
("failed", "Failed"),
],
default="pending",
max_length=20,
),
),
("result", models.JSONField(blank=True, null=True)),
("log", models.TextField(blank=True)),
(
"rota",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="runs",
to="rota.rotaschedule",
),
),
],
),
migrations.CreateModel(
name="Assignment",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("role", models.CharField(blank=True, max_length=100)),
("created_at", models.DateTimeField(auto_now_add=True)),
(
"rota",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="rota.rotaschedule",
),
),
],
),
migrations.CreateModel(
name="Worker",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("name", models.CharField(max_length=200)),
("email", models.EmailField(blank=True, max_length=254)),
("site", models.CharField(blank=True, max_length=100)),
("grade", models.IntegerField(blank=True, null=True)),
("fte", models.FloatField(default=1.0)),
("active", models.BooleanField(default=True)),
(
"rotas",
models.ManyToManyField(
related_name="workers",
through="rota.Assignment",
to="rota.rotaschedule",
),
),
],
),
migrations.CreateModel(
name="Leave",
fields=[
(
"id",
models.AutoField(
auto_created=True,
primary_key=True,
serialize=False,
verbose_name="ID",
),
),
("start_date", models.DateField()),
("end_date", models.DateField()),
("reason", models.CharField(blank=True, max_length=255)),
("created_at", models.DateTimeField(auto_now_add=True)),
(
"worker",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
related_name="leaves",
to="rota.worker",
),
),
],
options={
"ordering": ("-start_date",),
},
),
migrations.AddField(
model_name="assignment",
name="worker",
field=models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE, to="rota.worker"
),
),
migrations.AlterUniqueTogether(
name="assignment",
unique_together={("worker", "rota")},
),
]