"""
Команда для инициализации предметов.
Создает стандартный список предметов в базе данных.
"""
from django.core.management.base import BaseCommand
from apps.schedule.models import Subject


SUBJECTS = [
    'Русский язык',
    'Литература',
    'Родной язык и литература',
    'Математика',
    'Алгебра',
    'Геометрия',
    'Информатика и ИКТ',
    'Иностранный язык',
    'Второй иностранный язык',
    'История',
    'Обществознание',
    'География',
    'Биология',
    'Физика',
    'Химия',
    'Окружающий мир',
    'Основы религиозных культур и светской этики',
    'Основы безопасности и защиты Родины (ОБЖ)',
    'Астрономия',
    'Музыка',
    'Изобразительное искусство (ИЗО)',
    'Технология',
    'Физическая культура',
    'Индивидуальный проект',
]


class Command(BaseCommand):
    help = 'Инициализирует стандартный список предметов'

    def handle(self, *args, **options):
        created_count = 0
        existing_count = 0
        
        for subject_name in SUBJECTS:
            subject, created = Subject.objects.get_or_create(
                name=subject_name,
                defaults={'is_active': True}
            )
            
            if created:
                created_count += 1
                self.stdout.write(
                    self.style.SUCCESS(f'✓ Создан предмет: {subject_name}')
                )
            else:
                existing_count += 1
                # Активируем предмет, если он был неактивен
                if not subject.is_active:
                    subject.is_active = True
                    subject.save()
                    self.stdout.write(
                        self.style.WARNING(f'→ Активирован предмет: {subject_name}')
                    )
                else:
                    self.stdout.write(
                        self.style.NOTICE(f'  Предмет уже существует: {subject_name}')
                    )
        
        self.stdout.write(
            self.style.SUCCESS(
                f'\nГотово! Создано: {created_count}, уже существовало: {existing_count}'
            )
        )




