# 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")}, ), ]