# Generated by Django 5.2.4 on 2025-08-04 04:41 import django.db.models.deletion from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ("appointments", "0001_initial"), ("core", "0001_initial"), ("patients", "0001_initial"), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.AddField( model_name="appointmentrequest", name="patient", field=models.ForeignKey( help_text="Patient requesting appointment", on_delete=django.db.models.deletion.CASCADE, related_name="appointment_requests", to="patients.patientprofile", ), ), migrations.AddField( model_name="appointmentrequest", name="provider", field=models.ForeignKey( help_text="Healthcare provider", on_delete=django.db.models.deletion.CASCADE, related_name="provider_appointments", to=settings.AUTH_USER_MODEL, ), ), migrations.AddField( model_name="appointmentrequest", name="rescheduled_from", field=models.ForeignKey( blank=True, help_text="Original appointment if rescheduled", null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="rescheduled_appointments", to="appointments.appointmentrequest", ), ), migrations.AddField( model_name="appointmentrequest", name="tenant", field=models.ForeignKey( help_text="Organization tenant", on_delete=django.db.models.deletion.CASCADE, related_name="appointment_requests", to="core.tenant", ), ), migrations.AddField( model_name="appointmenttemplate", name="created_by", field=models.ForeignKey( blank=True, help_text="User who created the template", null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="created_appointment_templates", to=settings.AUTH_USER_MODEL, ), ), migrations.AddField( model_name="appointmenttemplate", name="tenant", field=models.ForeignKey( help_text="Organization tenant", on_delete=django.db.models.deletion.CASCADE, related_name="appointment_templates", to="core.tenant", ), ), migrations.AddField( model_name="queueentry", name="appointment", field=models.ForeignKey( help_text="Associated appointment", on_delete=django.db.models.deletion.CASCADE, related_name="queue_entries", to="appointments.appointmentrequest", ), ), migrations.AddField( model_name="queueentry", name="assigned_provider", field=models.ForeignKey( blank=True, help_text="Assigned provider", null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="assigned_queue_entries", to=settings.AUTH_USER_MODEL, ), ), migrations.AddField( model_name="queueentry", name="patient", field=models.ForeignKey( help_text="Patient in queue", on_delete=django.db.models.deletion.CASCADE, related_name="queue_entries", to="patients.patientprofile", ), ), migrations.AddField( model_name="queueentry", name="updated_by", field=models.ForeignKey( blank=True, help_text="User who last updated entry", null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="updated_queue_entries", to=settings.AUTH_USER_MODEL, ), ), migrations.AddField( model_name="slotavailability", name="created_by", field=models.ForeignKey( blank=True, help_text="User who created the slot", null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="created_availability_slots", to=settings.AUTH_USER_MODEL, ), ), migrations.AddField( model_name="slotavailability", name="provider", field=models.ForeignKey( help_text="Healthcare provider", on_delete=django.db.models.deletion.CASCADE, related_name="availability_slots", to=settings.AUTH_USER_MODEL, ), ), migrations.AddField( model_name="slotavailability", name="tenant", field=models.ForeignKey( help_text="Organization tenant", on_delete=django.db.models.deletion.CASCADE, related_name="availability_slots", to="core.tenant", ), ), migrations.AddField( model_name="telemedicinesession", name="appointment", field=models.OneToOneField( help_text="Associated appointment", on_delete=django.db.models.deletion.CASCADE, related_name="telemedicine_session", to="appointments.appointmentrequest", ), ), migrations.AddField( model_name="telemedicinesession", name="created_by", field=models.ForeignKey( blank=True, help_text="User who created the session", null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="created_telemedicine_sessions", to=settings.AUTH_USER_MODEL, ), ), migrations.AddField( model_name="waitingqueue", name="created_by", field=models.ForeignKey( blank=True, help_text="User who created the queue", null=True, on_delete=django.db.models.deletion.SET_NULL, related_name="created_waiting_queues", to=settings.AUTH_USER_MODEL, ), ), migrations.AddField( model_name="waitingqueue", name="providers", field=models.ManyToManyField( blank=True, help_text="Providers associated with this queue", related_name="waiting_queues", to=settings.AUTH_USER_MODEL, ), ), migrations.AddField( model_name="waitingqueue", name="tenant", field=models.ForeignKey( help_text="Organization tenant", on_delete=django.db.models.deletion.CASCADE, related_name="waiting_queues", to="core.tenant", ), ), migrations.AddField( model_name="queueentry", name="queue", field=models.ForeignKey( help_text="Waiting queue", on_delete=django.db.models.deletion.CASCADE, related_name="queue_entries", to="appointments.waitingqueue", ), ), migrations.AddIndex( model_name="appointmentrequest", index=models.Index( fields=["tenant", "status"], name="appointment_tenant__979096_idx" ), ), migrations.AddIndex( model_name="appointmentrequest", index=models.Index( fields=["patient", "status"], name="appointment_patient_803ab4_idx" ), ), migrations.AddIndex( model_name="appointmentrequest", index=models.Index( fields=["provider", "scheduled_datetime"], name="appointment_provide_ef6955_idx", ), ), migrations.AddIndex( model_name="appointmentrequest", index=models.Index( fields=["scheduled_datetime"], name="appointment_schedul_8f6c0e_idx" ), ), migrations.AddIndex( model_name="appointmentrequest", index=models.Index( fields=["priority", "urgency_score"], name="appointment_priorit_cdad1a_idx", ), ), migrations.AddIndex( model_name="appointmentrequest", index=models.Index( fields=["appointment_type", "specialty"], name="appointment_appoint_49fcc4_idx", ), ), migrations.AddIndex( model_name="appointmenttemplate", index=models.Index( fields=["tenant", "specialty"], name="appointment_tenant__8f5ab7_idx" ), ), migrations.AddIndex( model_name="appointmenttemplate", index=models.Index( fields=["appointment_type"], name="appointment_appoint_da9846_idx" ), ), migrations.AddIndex( model_name="appointmenttemplate", index=models.Index( fields=["is_active"], name="appointment_is_acti_953e67_idx" ), ), migrations.AddIndex( model_name="slotavailability", index=models.Index( fields=["tenant", "provider", "date"], name="appointment_tenant__d41564_idx", ), ), migrations.AddIndex( model_name="slotavailability", index=models.Index( fields=["date", "start_time"], name="appointment_date_e6d843_idx" ), ), migrations.AddIndex( model_name="slotavailability", index=models.Index( fields=["specialty"], name="appointment_special_158174_idx" ), ), migrations.AddIndex( model_name="slotavailability", index=models.Index( fields=["is_active", "is_blocked"], name="appointment_is_acti_4bd0a5_idx", ), ), migrations.AlterUniqueTogether( name="slotavailability", unique_together={("provider", "date", "start_time")}, ), migrations.AddIndex( model_name="telemedicinesession", index=models.Index( fields=["appointment"], name="appointment_appoint_34f472_idx" ), ), migrations.AddIndex( model_name="telemedicinesession", index=models.Index(fields=["status"], name="appointment_status_f49676_idx"), ), migrations.AddIndex( model_name="telemedicinesession", index=models.Index( fields=["scheduled_start"], name="appointment_schedul_8a4e8e_idx" ), ), migrations.AddIndex( model_name="waitingqueue", index=models.Index( fields=["tenant", "queue_type"], name="appointment_tenant__e21f2a_idx" ), ), migrations.AddIndex( model_name="waitingqueue", index=models.Index( fields=["specialty"], name="appointment_special_b50647_idx" ), ), migrations.AddIndex( model_name="waitingqueue", index=models.Index( fields=["is_active"], name="appointment_is_acti_e2f2a7_idx" ), ), migrations.AddIndex( model_name="queueentry", index=models.Index( fields=["queue", "status"], name="appointment_queue_i_d69f8c_idx" ), ), migrations.AddIndex( model_name="queueentry", index=models.Index( fields=["patient"], name="appointment_patient_beccf1_idx" ), ), migrations.AddIndex( model_name="queueentry", index=models.Index( fields=["priority_score"], name="appointment_priorit_48b785_idx" ), ), migrations.AddIndex( model_name="queueentry", index=models.Index( fields=["joined_at"], name="appointment_joined__709843_idx" ), ), ]