# Generated by Django 5.2.4 on 2025-11-20 12:01 import django.db.models.deletion from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ ('communications', '0009_message_deleted_at_message_deleted_by_and_more'), ] operations = [ migrations.CreateModel( name='MessageAttachment', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('file', models.FileField(upload_to='chat_attachments/%Y/%m/%d/', verbose_name='Файл')), ('file_type', models.CharField(choices=[('image', 'Изображение'), ('video', 'Видео'), ('audio', 'Аудио'), ('file', 'Файл')], max_length=10, verbose_name='Тип файла')), ('file_name', models.CharField(max_length=255, verbose_name='Название файла')), ('file_size', models.BigIntegerField(verbose_name='Размер файла (байты)')), ('mime_type', models.CharField(blank=True, max_length=100, verbose_name='MIME тип')), ('uploaded_at', models.DateTimeField(auto_now_add=True, verbose_name='Время загрузки')), ('thumbnail', models.ImageField(blank=True, help_text='Для изображений и видео', null=True, upload_to='chat_attachments/thumbnails/%Y/%m/%d/', verbose_name='Миниатюра')), ('message', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='attachments', to='communications.message', verbose_name='Сообщение')), ], options={ 'verbose_name': 'Вложение', 'verbose_name_plural': 'Вложения', 'ordering': ['uploaded_at'], 'indexes': [models.Index(fields=['message', 'file_type'], name='communicati_message_7ec201_idx'), models.Index(fields=['uploaded_at'], name='communicati_uploade_015a96_idx')], }, ), ]