from django.core.management.base import BaseCommand
from days.models import Day
from status.models import Status
from django.template.defaultfilters import slugify

class Command(BaseCommand):
    help = 'Loads default day data into the database.'

    def handle(self, *args, **kwargs):
        default_days = [
            {"name": "Saturday", "status": "Weekend"},
            {"name": "Sunday", "status": "Weekend"},
            {"name": "Monday", "status": "Available"},
            {"name": "Tuesday", "status": "Available"},
            {"name": "Wednesday", "status": "Available"},
            {"name": "Thursday", "status": "Available"},
            {"name": "Friday", "status": "Available"},
        ]

        for day_data in default_days:
            name = day_data['name']
            status_name = day_data['status']

            # Get or create the Status object
            status_obj, created = Status.objects.get_or_create(title=status_name, type='day')

            # Check if a day with the same name already exists
            if not Day.objects.filter(name=name).exists():
                Day.objects.create(
                    name=name,
                    status=status_obj,
                    slug=slugify(name) # Ensure slug is generated
                )
                self.stdout.write(self.style.SUCCESS(f'Successfully added day: {name} with status: {status_name}'))
            else:
                self.stdout.write(self.style.WARNING(f'Day "{name}" already exists, skipping.'))
