""" Команда для обновления прогрессирующих скидок. """ from django.core.management.base import BaseCommand from apps.subscriptions.models import SubscriptionPlan, BulkDiscount from decimal import Decimal class Command(BaseCommand): help = 'Обновляет прогрессирующие скидки для планов "за ученика"' def handle(self, *args, **options): self.stdout.write('Обновление прогрессирующих скидок...') # Обновляем скидки для "За ученика (Базовый)" plan_basic = SubscriptionPlan.objects.filter(slug='per-student-basic').first() if plan_basic: # Удаляем старые скидки BulkDiscount.objects.filter(plan=plan_basic).delete() # Создаем новые правильные скидки # 1-4 ученика: 100 руб за каждого BulkDiscount.objects.create( plan=plan_basic, min_students=1, max_students=4, total_price=Decimal('100') # За 1 ученика ) # 5-9 учеников: 84 руб за каждого (420 руб за 5) BulkDiscount.objects.create( plan=plan_basic, min_students=5, max_students=9, total_price=Decimal('420') # За 5 учеников ) # 10+ учеников: 80 руб за каждого (800 руб за 10) - еще больше скидка! BulkDiscount.objects.create( plan=plan_basic, min_students=10, max_students=None, total_price=Decimal('800') # За 10 учеников (80 руб за каждого) ) self.stdout.write(self.style.SUCCESS(f'✓ Обновлены скидки для: {plan_basic.name}')) # Обновляем скидки для "За ученика (Премиум)" plan_premium = SubscriptionPlan.objects.filter(slug='per-student-premium').first() if plan_premium: # Удаляем старые скидки BulkDiscount.objects.filter(plan=plan_premium).delete() # Создаем новые правильные скидки # 1-4 ученика: 150 руб за каждого BulkDiscount.objects.create( plan=plan_premium, min_students=1, max_students=4, total_price=Decimal('150') # За 1 ученика ) # 5-9 учеников: 126 руб за каждого (630 руб за 5) BulkDiscount.objects.create( plan=plan_premium, min_students=5, max_students=9, total_price=Decimal('630') # За 5 учеников ) # 10+ учеников: 120 руб за каждого (1200 руб за 10) - еще больше скидка! BulkDiscount.objects.create( plan=plan_premium, min_students=10, max_students=None, total_price=Decimal('1200') # За 10 учеников (120 руб за каждого) ) self.stdout.write(self.style.SUCCESS(f'✓ Обновлены скидки для: {plan_premium.name}')) self.stdout.write(self.style.SUCCESS('\n✓ Все прогрессирующие скидки обновлены!')) self.stdout.write('\nНовые цены:') self.stdout.write(' Базовый: 100 → 84 → 80 руб за ученика') self.stdout.write(' Премиум: 150 → 126 → 120 руб за ученика')