from django.core.management.base import BaseCommand
from django.utils.text import slugify
from semester.models import Semester

class Command(BaseCommand):
    help = 'Loads default semester data from migration 0002.'

    def handle(self, *args, **options):
        self.stdout.write(self.style.SUCCESS('Loading default semesters...'))

        semesters_to_load = [
            {'title': 'Fall', 'code': '1st semester'},
            {'title': 'Spring', 'code': '2nd semester'}
        ]
        count = 0

        for sem_data in semesters_to_load:
            obj, created = Semester.objects.get_or_create(
                code=sem_data['code'],
                defaults={
                    'title': sem_data['title'],
                    'slug': slugify(f"{sem_data['code']}-{sem_data['title']}")
                }
            )
            if created:
                count += 1
                self.stdout.write(self.style.SUCCESS(f'Successfully created Semester: "{obj.title}" with code "{obj.code}"'))
            else:
                self.stdout.write(self.style.WARNING(f'Semester "{obj.title}" already exists.'))

        self.stdout.write(self.style.SUCCESS(f'Process complete. {count} new semesters created.'))