"""
Команда для обновления прогрессирующих скидок.
"""
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 руб за ученика')

