"""
Management command для инициализации разрешений в базе данных.

Usage:
    python manage.py init_permissions
"""
from django.core.management.base import BaseCommand
from mainapp.models import UserPermission
from mainapp.permissions import PERMISSIONS


class Command(BaseCommand):
    help = 'Инициализирует все разрешения в базе данных'

    def handle(self, *args, **options):
        created_count = 0
        existing_count = 0
        
        for code, name, description in PERMISSIONS:
            permission, created = UserPermission.objects.get_or_create(code=code)
            if created:
                created_count += 1
                self.stdout.write(
                    self.style.SUCCESS(f'Создано разрешение: {code} - {name}')
                )
            else:
                existing_count += 1
        
        self.stdout.write(
            self.style.SUCCESS(
                f'\nГотово! Создано: {created_count}, уже существовало: {existing_count}'
            )
        )
        
        # Показываем все разрешения
        self.stdout.write('\nВсе разрешения в системе:')
        for code, name, description in PERMISSIONS:
            self.stdout.write(f'  - {code}: {name}')
