"""
Génère les créneaux à partir d'aujourd'hui pour les N prochaines semaines.
Chaque jour passé : le même jour de la semaine à venir est pris en compte (ex. lundi passé → prochain lundi).
À lancer quotidiennement (cron) ou depuis l'admin Next « Générer les créneaux ».
"""
from django.core.management.base import BaseCommand

from appointments.services import generate_slots_for_weeks


class Command(BaseCommand):
    help = "Génère les créneaux pour les N prochaines semaines à partir d'aujourd'hui"

    def add_arguments(self, parser):
        parser.add_argument(
            "--weeks",
            type=int,
            default=4,
            help="Nombre de semaines à générer (défaut: 4)",
        )

    def handle(self, *args, **options):
        weeks = max(1, min(12, options["weeks"]))
        count = generate_slots_for_weeks(num_weeks=weeks)
        self.stdout.write(self.style.SUCCESS(f"{count} créneau(x) créé(s) pour les {weeks} prochaines semaines."))
