"""
Команда для создания упрощенных тарифных планов.
Все функции доступны для каждого тарифа.
"""
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('Создание упрощенных тарифных планов...')
        
        # Деактивируем все существующие тарифы
        SubscriptionPlan.objects.all().update(is_active=False)
        self.stdout.write('Деактивированы все существующие тарифы')
        
        # 1. ТАРИФ "ЗА УЧЕНИКА" - все функции доступны
        plan_per_student, created = SubscriptionPlan.objects.update_or_create(
            slug='per-student',
            defaults={
                'name': 'За ученика',
                'description': 'Гибкая оплата за каждого ученика. Все функции доступны. Чем больше учеников, тем выгоднее цена.',
                'price': Decimal('0'),
                'price_per_student': Decimal('100'),
                'currency': 'RUB',
                'billing_period': 'monthly',
                'subscription_type': 'per_student',
                'trial_days': 7,
                'max_clients': None,  # Без ограничений
                'max_lessons_per_month': None,  # Безлимит
                'max_storage_mb': 51200,  # 50 GB
                'max_video_minutes_per_month': None,  # Безлимит
                # Все функции доступны
                'allow_video_calls': True,
                'allow_screen_sharing': True,
                'allow_whiteboard': True,
                'allow_homework': True,
                'allow_materials': True,
                'allow_analytics': True,
                'allow_telegram_bot': True,
                'allow_api_access': True,
                'is_active': True,
                'is_featured': True,
                'sort_order': 1,
            }
        )
        
        if created:
            self.stdout.write(self.style.SUCCESS(f'✓ Создан план: {plan_per_student.name}'))
        else:
            self.stdout.write(self.style.WARNING(f'⚠ Обновлен план: {plan_per_student.name}'))
        
        # Создаем прогрессирующие скидки для "За ученика"
        # 1-4 ученика: 100 руб за каждого (базовая цена)
        BulkDiscount.objects.update_or_create(
            plan=plan_per_student,
            min_students=1,
            max_students=4,
            defaults={'price_per_student': Decimal('100')}
        )
        
        # 5-9 учеников: 84 руб за каждого (скидка 16%)
        BulkDiscount.objects.update_or_create(
            plan=plan_per_student,
            min_students=5,
            max_students=9,
            defaults={'price_per_student': Decimal('84')}
        )
        
        # 10+ учеников: 80 руб за каждого (скидка 20%)
        BulkDiscount.objects.update_or_create(
            plan=plan_per_student,
            min_students=10,
            max_students=None,
            defaults={'price_per_student': Decimal('80')}
        )
        
        self.stdout.write(self.style.SUCCESS('  ✓ Созданы прогрессирующие скидки'))
        
        # 2. ЕЖЕМЕСЯЧНАЯ ПОДПИСКА - все функции доступны, без ограничений по ученикам
        plan_monthly, created = SubscriptionPlan.objects.update_or_create(
            slug='monthly-unlimited',
            defaults={
                'name': 'Ежемесячная подписка',
                'description': 'Ежемесячная подписка без ограничений по количеству учеников. Все функции доступны.',
                'price': Decimal('1500'),
                'price_per_student': None,
                'currency': 'RUB',
                'billing_period': 'monthly',
                'subscription_type': 'monthly',
                'trial_days': 7,
                'max_clients': None,  # Безлимит учеников
                'max_lessons_per_month': None,  # Безлимит занятий
                'max_storage_mb': 51200,  # 50 GB
                'max_video_minutes_per_month': None,  # Безлимит
                # Все функции доступны
                'allow_video_calls': True,
                'allow_screen_sharing': True,
                'allow_whiteboard': True,
                'allow_homework': True,
                'allow_materials': True,
                'allow_analytics': True,
                'allow_telegram_bot': True,
                'allow_api_access': True,
                'is_active': True,
                'is_featured': True,
                'sort_order': 2,
            }
        )
        
        if created:
            self.stdout.write(self.style.SUCCESS(f'✓ Создан план: {plan_monthly.name}'))
        else:
            self.stdout.write(self.style.WARNING(f'⚠ Обновлен план: {plan_monthly.name}'))
        
        self.stdout.write(self.style.SUCCESS('\n✓ Все тарифные планы созданы!'))
        self.stdout.write('\nСозданные тарифы:')
        self.stdout.write('  1. За ученика - 100 руб/ученик (с прогрессирующими скидками)')
        self.stdout.write('  2. Ежемесячная подписка - 1500 руб/мес (без ограничений)')
        self.stdout.write('\nВсе функции доступны для каждого тарифа!')

