from django.core.management.base import BaseCommand
from status.models import Status
from classroom.models import Classroom
from django.utils.text import slugify

class Command(BaseCommand):
    help = 'Adds default classroom data'

    def handle(self, *args, **kwargs):
        self.stdout.write("Adding default classroom data...")

        # Ensure 'Available' status exists for classroom type
        available_status, created = Status.objects.get_or_create(
            title='Available', type='classroom', defaults={'description': 'Classroom is currently available'}
        )
        if created:
            self.stdout.write(self.style.SUCCESS(f'Successfully created status: {available_status.title} ({available_status.type})'))
        else:
            self.stdout.write(f'Status \'{available_status.title}\' (\'{available_status.type}\') already exists.')

        # Add default classrooms
        classrooms_to_add = [
            {'room_number': '201', 'building': '2', 'capacity': 50},
            {'room_number': '202', 'building': '2', 'capacity': 40},
            {'room_number': '301', 'building': '3', 'capacity': 60},
            {'room_number': '101', 'building': '1', 'capacity': 30},
        ]

        for classroom_data in classrooms_to_add:
            room_number = classroom_data['room_number']
            building = classroom_data['building']
            capacity = classroom_data['capacity']
            
            classroom_slug = f"room_{building}-{room_number}"

            classroom, created = Classroom.objects.get_or_create(
                room_number=room_number,
                building=building,
                defaults={'capacity': capacity, 'status': available_status, 'slug': slugify(classroom_slug)}
            )

            if created:
                self.stdout.write(self.style.SUCCESS(f'Successfully added classroom: {classroom.room_number} in building {classroom.building}'))
            else:
                self.stdout.write(self.style.WARNING(f'Classroom \'{classroom.room_number}\' in building \'{classroom.building}\' already exists.'))

        self.stdout.write("Default classroom data addition complete.")
