# Generated by Django 5.2.7 on 2025-11-09 20:40 import django.db.models.deletion import uuid from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ ("core", "0009_add_consent_expiry_date"), ] operations = [ migrations.CreateModel( name="DocumentationDelayTracker", fields=[ ( "id", models.UUIDField( default=uuid.uuid4, editable=False, primary_key=True, serialize=False, verbose_name="ID", ), ), ("created_at", models.DateTimeField(auto_now_add=True, verbose_name="Created At")), ("updated_at", models.DateTimeField(auto_now=True, verbose_name="Updated At")), ( "document_type", models.CharField( choices=[ ("SESSION_NOTE", "Session Note"), ("ASSESSMENT", "Assessment"), ("PROGRESS_REPORT", "Progress Report"), ("DISCHARGE_SUMMARY", "Discharge Summary"), ("MDT_NOTE", "MDT Note"), ], max_length=30, verbose_name="Document Type", ), ), ( "document_id", models.UUIDField( help_text="UUID of the document being tracked", verbose_name="Document ID" ), ), ( "due_date", models.DateField( help_text="Date by which documentation should be completed", verbose_name="Due Date", ), ), ( "completed_at", models.DateTimeField(blank=True, null=True, verbose_name="Completed At"), ), ( "status", models.CharField( choices=[ ("PENDING", "Pending"), ("OVERDUE", "Overdue"), ("COMPLETED", "Completed"), ("ESCALATED", "Escalated"), ], default="PENDING", max_length=20, verbose_name="Status", ), ), ("days_overdue", models.IntegerField(default=0, verbose_name="Days Overdue")), ( "alert_sent_at", models.DateTimeField(blank=True, null=True, verbose_name="Alert Sent At"), ), ( "alert_count", models.PositiveIntegerField( default=0, help_text="Number of alerts sent to senior", verbose_name="Alert Count", ), ), ( "last_alert_at", models.DateTimeField(blank=True, null=True, verbose_name="Last Alert At"), ), ( "escalated_at", models.DateTimeField(blank=True, null=True, verbose_name="Escalated At"), ), ("notes", models.TextField(blank=True, verbose_name="Notes")), ( "assigned_to", models.ForeignKey( help_text="Therapist responsible for completing the documentation", on_delete=django.db.models.deletion.CASCADE, related_name="assigned_documentation", to=settings.AUTH_USER_MODEL, verbose_name="Assigned To", ), ), ( "escalated_to", models.ForeignKey( blank=True, help_text="Clinical Coordinator or Admin if escalated", null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="escalated_documentation", to=settings.AUTH_USER_MODEL, verbose_name="Escalated To", ), ), ( "senior_therapist", models.ForeignKey( help_text="Senior therapist to be notified of delays", on_delete=django.db.models.deletion.CASCADE, related_name="supervised_documentation", to=settings.AUTH_USER_MODEL, verbose_name="Senior Therapist", ), ), ( "tenant", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, related_name="%(app_label)s_%(class)s_related", to="core.tenant", verbose_name="Tenant", ), ), ], options={ "verbose_name": "Documentation Delay Tracker", "verbose_name_plural": "Documentation Delay Trackers", "ordering": ["-days_overdue", "due_date"], "indexes": [ models.Index( fields=["assigned_to", "status"], name="core_docume_assigne_6bea36_idx" ), models.Index( fields=["senior_therapist", "status"], name="core_docume_senior__e29953_idx" ), models.Index( fields=["status", "due_date"], name="core_docume_status_c3dd3f_idx" ), models.Index( fields=["tenant", "status"], name="core_docume_tenant__3f0b75_idx" ), ], }, ), ]