Marwan Alwali 263292f6be update
2025-11-04 00:50:06 +03:00

527 lines
18 KiB
Python

# Generated by Django 5.2.7 on 2025-10-06 21:15
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"),
("hr", "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="waitinglist",
name="created_by",
field=models.ForeignKey(
blank=True,
help_text="User who created the waiting list entry",
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="created_waiting_list_entries",
to=settings.AUTH_USER_MODEL,
),
),
migrations.AddField(
model_name="waitinglist",
name="department",
field=models.ForeignKey(
help_text="Department for appointment",
on_delete=django.db.models.deletion.CASCADE,
related_name="waiting_list_entries",
to="hr.department",
),
),
migrations.AddField(
model_name="waitinglist",
name="patient",
field=models.ForeignKey(
help_text="Patient on waiting list",
on_delete=django.db.models.deletion.CASCADE,
related_name="waiting_list_entries",
to="patients.patientprofile",
),
),
migrations.AddField(
model_name="waitinglist",
name="provider",
field=models.ForeignKey(
blank=True,
help_text="Preferred healthcare provider",
null=True,
on_delete=django.db.models.deletion.CASCADE,
related_name="provider_waiting_list",
to=settings.AUTH_USER_MODEL,
),
),
migrations.AddField(
model_name="waitinglist",
name="removed_by",
field=models.ForeignKey(
blank=True,
help_text="User who removed entry from waiting list",
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="removed_waiting_list_entries",
to=settings.AUTH_USER_MODEL,
),
),
migrations.AddField(
model_name="waitinglist",
name="scheduled_appointment",
field=models.ForeignKey(
blank=True,
help_text="Scheduled appointment from waiting list",
null=True,
on_delete=django.db.models.deletion.SET_NULL,
related_name="waiting_list_entry",
to="appointments.appointmentrequest",
),
),
migrations.AddField(
model_name="waitinglist",
name="tenant",
field=models.ForeignKey(
help_text="Organization tenant",
on_delete=django.db.models.deletion.CASCADE,
related_name="waiting_list_entries",
to="core.tenant",
),
),
migrations.AddField(
model_name="waitinglistcontactlog",
name="contacted_by",
field=models.ForeignKey(
blank=True,
help_text="Staff member who made contact",
null=True,
on_delete=django.db.models.deletion.SET_NULL,
to=settings.AUTH_USER_MODEL,
),
),
migrations.AddField(
model_name="waitinglistcontactlog",
name="waiting_list_entry",
field=models.ForeignKey(
help_text="Associated waiting list entry",
on_delete=django.db.models.deletion.CASCADE,
related_name="contact_logs",
to="appointments.waitinglist",
),
),
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="waitinglist",
index=models.Index(
fields=["tenant", "status"], name="appointment_tenant__a558da_idx"
),
),
migrations.AddIndex(
model_name="waitinglist",
index=models.Index(
fields=["patient", "status"], name="appointment_patient_73f03d_idx"
),
),
migrations.AddIndex(
model_name="waitinglist",
index=models.Index(
fields=["department", "specialty", "status"],
name="appointment_departm_78fd70_idx",
),
),
migrations.AddIndex(
model_name="waitinglist",
index=models.Index(
fields=["priority", "urgency_score"],
name="appointment_priorit_30fb90_idx",
),
),
migrations.AddIndex(
model_name="waitinglist",
index=models.Index(
fields=["status", "created_at"], name="appointment_status_cfe551_idx"
),
),
migrations.AddIndex(
model_name="waitinglist",
index=models.Index(
fields=["provider", "status"], name="appointment_provide_dd6c2b_idx"
),
),
migrations.AddIndex(
model_name="waitinglistcontactlog",
index=models.Index(
fields=["waiting_list_entry", "contact_date"],
name="appointment_waiting_50d8ac_idx",
),
),
migrations.AddIndex(
model_name="waitinglistcontactlog",
index=models.Index(
fields=["contact_outcome"], name="appointment_contact_ad9c45_idx"
),
),
migrations.AddIndex(
model_name="waitinglistcontactlog",
index=models.Index(
fields=["next_contact_date"], name="appointment_next_co_b29984_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"
),
),
]