"""
Management команда для очистки кэша Django.
"""
from django.core.management.base import BaseCommand
from django.core.cache import cache
from django.conf import settings


class Command(BaseCommand):
    help = 'Очищает весь кэш Django'

    def add_arguments(self, parser):
        parser.add_argument(
            '--pattern',
            type=str,
            help='Паттерн для очистки конкретных ключей (например, "mentor_dashboard_*")',
        )

    def handle(self, *args, **options):
        pattern = options.get('pattern')
        
        if pattern:
            # Очистка по паттерну (только для Redis)
            if hasattr(cache, 'delete_pattern'):
                deleted = cache.delete_pattern(pattern)
                self.stdout.write(
                    self.style.SUCCESS(
                        f'Удалено ключей по паттерну "{pattern}": {deleted}'
                    )
                )
            else:
                self.stdout.write(
                    self.style.WARNING(
                        'Очистка по паттерну доступна только для Redis. '
                        'Используется полная очистка кэша.'
                    )
                )
                cache.clear()
                self.stdout.write(self.style.SUCCESS('Кэш полностью очищен'))
        else:
            # Полная очистка кэша
            cache.clear()
            self.stdout.write(
                self.style.SUCCESS('✓ Кэш Django успешно очищен')
            )
            
            # Показываем информацию о бэкенде кэша
            cache_backend = settings.CACHES['default']['BACKEND']
            self.stdout.write(f'Бэкенд кэша: {cache_backend}')
