# 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}" ) )