import json

from django.core.management.base import BaseCommand, CommandError

from api.services.integration.readiness import phase1_readiness


class Command(BaseCommand):
    help = "Validate the default-off Timetabler -> Resource Booking Phase 1 activation gate."

    def add_arguments(self, parser):
        parser.add_argument("--require-enabled", action="store_true")

    def handle(self, *args, **options):
        result = phase1_readiness(require_enabled=options["require_enabled"])
        self.stdout.write(json.dumps(result, sort_keys=True))
        if not result["ready"]:
            raise CommandError("Phase 1 preflight failed: " + "; ".join(result["errors"]))
