# Generated by Django 4.2.30 on 2026-09-15 12:13 from django.conf import settings from django.db import migrations, models import django.db.models.deletion class Migration(migrations.Migration): initial = True dependencies = [ ('profiles', '0001_initial'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='ChatRoom', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('room_type', models.CharField(choices=[('direct', 'Direct Message'), ('group', 'Group Conversation')], default='direct', max_length=20, verbose_name='Room Type')), ('title', models.CharField(blank=True, max_length=255, null=True, verbose_name='Conversation Title')), ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Created At')), ('updated_at', models.DateTimeField(auto_now=True, verbose_name='Last Activity')), ('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='created_chat_rooms', to=settings.AUTH_USER_MODEL, verbose_name='Created By')), ('participant_institutions', models.ManyToManyField(blank=True, related_name='chat_rooms', to='profiles.institution', verbose_name='Participant Institutions')), ('participant_users', models.ManyToManyField(blank=True, related_name='chat_rooms', to=settings.AUTH_USER_MODEL, verbose_name='Participant Users')), ], options={ 'verbose_name': 'Chat Room', 'verbose_name_plural': 'Chat Rooms', 'ordering': ('-updated_at',), }, ), migrations.CreateModel( name='ChatMessage', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('content', models.TextField(blank=True, null=True, verbose_name='Message Text')), ('attachment', models.FileField(blank=True, null=True, upload_to='chat/attachments/%Y/%m/', verbose_name='Attachment File')), ('attachment_name', models.CharField(blank=True, max_length=255, null=True, verbose_name='Attachment Filename')), ('created_at', models.DateTimeField(auto_now_add=True, verbose_name='Timestamp')), ('read_by', models.ManyToManyField(blank=True, related_name='read_chat_messages', to=settings.AUTH_USER_MODEL, verbose_name='Read Receipts')), ('room', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='messages', to='chat.chatroom', verbose_name='Chat Room')), ('sender', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='sent_chat_messages', to=settings.AUTH_USER_MODEL, verbose_name='Sender')), ('sender_institution', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='institution_chat_messages', to='profiles.institution', verbose_name='Sender Institution Affiliation')), ], options={ 'verbose_name': 'Chat Message', 'verbose_name_plural': 'Chat Messages', 'ordering': ('created_at',), }, ), ]