# Generated by Django 5.2.7 on 2026-01-21 22:39 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='Company', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255)), ('is_uprn_required', models.BooleanField(default=False)), ('created_at', models.DateTimeField(auto_now_add=True)), ], ), migrations.CreateModel( name='JobStatus', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=100)), ('is_starting_status', models.BooleanField(default=False)), ('order', models.PositiveIntegerField(default=0)), ('company', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='statuses', to='core.company')), ], options={ 'verbose_name_plural': 'Job Statuses', 'ordering': ['order'], }, ), migrations.CreateModel( name='Job', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('job_ref', models.CharField(max_length=100)), ('uprn', models.CharField(blank=True, max_length=100, null=True)), ('address_line_1', models.CharField(max_length=255)), ('address_line_2', models.CharField(blank=True, max_length=255, null=True)), ('address_line_3', models.CharField(blank=True, max_length=255, null=True)), ('postcode', models.CharField(max_length=20)), ('description', models.TextField(blank=True, null=True)), ('action', models.TextField(blank=True, null=True)), ('notes', models.TextField(blank=True, null=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('company', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='jobs', to='core.company')), ('status', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='jobs', to='core.jobstatus')), ], options={ 'unique_together': {('company', 'job_ref'), ('company', 'uprn')}, }, ), migrations.CreateModel( name='Profile', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('role', models.CharField(choices=[('ADMIN', 'Admin'), ('STANDARD', 'Standard User')], default='STANDARD', max_length=20)), ('company', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='users', to='core.company')), ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='profile', to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='RequiredFolder', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=100)), ('company', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='required_folders', to='core.company')), ], ), migrations.CreateModel( name='JobFile', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('file', models.FileField(upload_to='job_files/')), ('uploaded_at', models.DateTimeField(auto_now_add=True)), ('job', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='files', to='core.job')), ('uploaded_by', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL)), ('folder', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='files', to='core.requiredfolder')), ], ), migrations.CreateModel( name='JobFolderCompletion', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('is_completed', models.BooleanField(default=False)), ('job', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='folder_completions', to='core.job')), ('folder', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.requiredfolder')), ], options={ 'unique_together': {('job', 'folder')}, }, ), ]