100 lines
3.5 KiB
Python
100 lines
3.5 KiB
Python
# 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"
|
|
),
|
|
],
|
|
},
|
|
),
|
|
]
|