# Generated by Django 5.2.6 on 2025-09-19 10:58 import django.db.models.deletion from django.conf import settings from django.db import migrations, models class Migration(migrations.Migration): initial = True dependencies = [ ("communications", "0001_initial"), ("core", "0001_initial"), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.AddField( model_name="alertrule", name="tenant", field=models.ForeignKey( help_text="Tenant organization", on_delete=django.db.models.deletion.CASCADE, to="core.tenant", ), ), migrations.AddField( model_name="alertinstance", name="alert_rule", field=models.ForeignKey( help_text="Associated alert rule", on_delete=django.db.models.deletion.CASCADE, related_name="instances", to="communications.alertrule", ), ), migrations.AddField( model_name="communicationchannel", name="created_by", field=models.ForeignKey( blank=True, help_text="Channel creator", null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, ), ), migrations.AddField( model_name="communicationchannel", name="tenant", field=models.ForeignKey( help_text="Tenant organization", on_delete=django.db.models.deletion.CASCADE, to="core.tenant", ), ), migrations.AddField( model_name="deliverylog", name="channel", field=models.ForeignKey( help_text="Communication channel used", on_delete=django.db.models.deletion.CASCADE, related_name="delivery_logs", to="communications.communicationchannel", ), ), migrations.AddField( model_name="message", name="reply_to_message", field=models.ForeignKey( blank=True, help_text="Original message if this is a reply", null=True, on_delete=django.db.models.deletion.SET_NULL, to="communications.message", ), ), migrations.AddField( model_name="message", name="sender", field=models.ForeignKey( help_text="Message sender", on_delete=django.db.models.deletion.CASCADE, related_name="sent_messages", to=settings.AUTH_USER_MODEL, ), ), migrations.AddField( model_name="message", name="tenant", field=models.ForeignKey( help_text="Tenant organization", on_delete=django.db.models.deletion.CASCADE, to="core.tenant", ), ), migrations.AddField( model_name="deliverylog", name="message", field=models.ForeignKey( help_text="Associated message", on_delete=django.db.models.deletion.CASCADE, related_name="delivery_logs", to="communications.message", ), ), migrations.AddField( model_name="messagerecipient", name="message", field=models.ForeignKey( help_text="Associated message", on_delete=django.db.models.deletion.CASCADE, related_name="recipients", to="communications.message", ), ), migrations.AddField( model_name="messagerecipient", name="user", field=models.ForeignKey( blank=True, help_text="User recipient", null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, ), ), migrations.AddField( model_name="deliverylog", name="recipient", field=models.ForeignKey( help_text="Associated recipient", on_delete=django.db.models.deletion.CASCADE, related_name="delivery_logs", to="communications.messagerecipient", ), ), migrations.AddField( model_name="notificationtemplate", name="created_by", field=models.ForeignKey( blank=True, help_text="Template creator", null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, ), ), migrations.AddField( model_name="notificationtemplate", name="tenant", field=models.ForeignKey( help_text="Tenant organization", on_delete=django.db.models.deletion.CASCADE, to="core.tenant", ), ), migrations.AddField( model_name="alertrule", name="notification_template", field=models.ForeignKey( blank=True, help_text="Notification template to use", null=True, on_delete=django.db.models.deletion.SET_NULL, to="communications.notificationtemplate", ), ), migrations.AddIndex( model_name="alertinstance", index=models.Index( fields=["alert_rule", "status"], name="communicati_alert_r_69aa1e_idx" ), ), migrations.AddIndex( model_name="alertinstance", index=models.Index( fields=["severity", "triggered_at"], name="communicati_severit_65b0c9_idx", ), ), migrations.AddIndex( model_name="alertinstance", index=models.Index( fields=["status", "triggered_at"], name="communicati_status_402adb_idx" ), ), migrations.AddIndex( model_name="alertinstance", index=models.Index( fields=["expires_at"], name="communicati_expires_2c10ee_idx" ), ), migrations.AddIndex( model_name="communicationchannel", index=models.Index( fields=["tenant", "channel_type"], name="communicati_tenant__0326d1_idx" ), ), migrations.AddIndex( model_name="communicationchannel", index=models.Index( fields=["is_active", "is_healthy"], name="communicati_is_acti_77d48f_idx", ), ), migrations.AddIndex( model_name="communicationchannel", index=models.Index( fields=["last_health_check"], name="communicati_last_he_71110c_idx" ), ), migrations.AddIndex( model_name="communicationchannel", index=models.Index( fields=["provider_type"], name="communicati_provide_583ead_idx" ), ), migrations.AlterUniqueTogether( name="communicationchannel", unique_together={("tenant", "name")}, ), migrations.AddIndex( model_name="message", index=models.Index( fields=["tenant", "status"], name="communicati_tenant__d41606_idx" ), ), migrations.AddIndex( model_name="message", index=models.Index( fields=["sender", "created_at"], name="communicati_sender__7da57d_idx" ), ), migrations.AddIndex( model_name="message", index=models.Index( fields=["message_type", "priority"], name="communicati_message_b3baa0_idx", ), ), migrations.AddIndex( model_name="message", index=models.Index( fields=["scheduled_at"], name="communicati_schedul_59afe2_idx" ), ), migrations.AddIndex( model_name="message", index=models.Index( fields=["message_thread_id"], name="communicati_message_990a68_idx" ), ), migrations.AddIndex( model_name="messagerecipient", index=models.Index( fields=["message", "status"], name="communicati_message_6c5b5b_idx" ), ), migrations.AddIndex( model_name="messagerecipient", index=models.Index( fields=["user", "status"], name="communicati_user_id_2e3702_idx" ), ), migrations.AddIndex( model_name="messagerecipient", index=models.Index( fields=["recipient_type"], name="communicati_recipie_b45f4d_idx" ), ), migrations.AddIndex( model_name="messagerecipient", index=models.Index( fields=["sent_at"], name="communicati_sent_at_10fda1_idx" ), ), migrations.AlterUniqueTogether( name="messagerecipient", unique_together={ ("message", "email_address"), ("message", "phone_number"), ("message", "user"), }, ), migrations.AddIndex( model_name="deliverylog", index=models.Index( fields=["message", "status"], name="communicati_message_fdf561_idx" ), ), migrations.AddIndex( model_name="deliverylog", index=models.Index( fields=["recipient", "status"], name="communicati_recipie_8a8767_idx" ), ), migrations.AddIndex( model_name="deliverylog", index=models.Index( fields=["channel", "started_at"], name="communicati_channel_03e902_idx" ), ), migrations.AddIndex( model_name="deliverylog", index=models.Index( fields=["status", "started_at"], name="communicati_status_eb46bd_idx" ), ), migrations.AddIndex( model_name="deliverylog", index=models.Index( fields=["external_id"], name="communicati_externa_64021f_idx" ), ), migrations.AddIndex( model_name="notificationtemplate", index=models.Index( fields=["tenant", "template_type"], name="communicati_tenant__c0ae05_idx", ), ), migrations.AddIndex( model_name="notificationtemplate", index=models.Index( fields=["category", "is_active"], name="communicati_categor_2c7900_idx" ), ), migrations.AddIndex( model_name="notificationtemplate", index=models.Index( fields=["is_system_template"], name="communicati_is_syst_dae5b7_idx" ), ), migrations.AddIndex( model_name="notificationtemplate", index=models.Index( fields=["usage_count"], name="communicati_usage_c_d78c30_idx" ), ), migrations.AlterUniqueTogether( name="notificationtemplate", unique_together={("tenant", "name", "template_type")}, ), migrations.AddIndex( model_name="alertrule", index=models.Index( fields=["tenant", "is_active"], name="communicati_tenant__6d58f7_idx" ), ), migrations.AddIndex( model_name="alertrule", index=models.Index( fields=["trigger_type", "severity"], name="communicati_trigger_0ab274_idx", ), ), migrations.AddIndex( model_name="alertrule", index=models.Index( fields=["last_evaluated_at"], name="communicati_last_ev_3529e2_idx" ), ), migrations.AddIndex( model_name="alertrule", index=models.Index( fields=["is_system_rule"], name="communicati_is_syst_52420d_idx" ), ), migrations.AlterUniqueTogether( name="alertrule", unique_together={("tenant", "name")}, ), ]