2026-09-07 19:43:48 +03:00

56 lines
2.0 KiB
Python

# backend/communications/management/commands/init_reactions.py
"""Команда для инициализации дефолтных реакций"""
from django.core.management.base import BaseCommand
from communications.models import AvailableReaction
class Command(BaseCommand):
help = "Инициализирует дефолтные реакции в БД"
def handle(self, *args, **options):
default_reactions = [
("👍", "Лайк", 1),
("❤️", "Сердце", 2),
("😂", "Смех", 3),
("😮", "Удивление", 4),
("😢", "Грусть", 5),
("🙏", "Спасибо", 6),
("👏", "Аплодисменты", 7),
("🔥", "Огонь", 8),
]
created_count = 0
updated_count = 0
for emoji, name, order in default_reactions:
reaction, created = AvailableReaction.objects.get_or_create(
emoji=emoji, defaults={"name": name, "order": order, "is_active": True}
)
if created:
created_count += 1
self.stdout.write(
self.style.SUCCESS(f"✓ Создана реакция: {emoji} {name}")
)
else:
# Обновляем порядок если изменился
if reaction.order != order:
reaction.order = order
reaction.save(update_fields=["order"])
updated_count += 1
self.stdout.write(
self.style.WARNING(f"↻ Обновлён порядок: {emoji} {name}")
)
else:
self.stdout.write(
self.style.NOTICE(f"- Уже существует: {emoji} {name}")
)
self.stdout.write(
self.style.SUCCESS(
f"\nГотово! Создано: {created_count}, Обновлено: {updated_count}"
)
)