Corp/backend/communications/migrations/0010_messageattachment.py
2026-09-07 19:43:48 +03:00

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"
),
],
},
),
]