Marwan Alwali 84c1fb798e update
2025-09-08 19:52:52 +03:00

370 lines
13 KiB
Python

# Generated by Django 5.2.6 on 2025-09-08 07:28
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"
),
),
]