from django.core.management.base import BaseCommand

from apps.ai.catalog import VOLCANO_MODELS, VOLCANO_PROVIDER
from apps.ai.models import ModelConfig, ModelProvider


class Command(BaseCommand):
    help = "Create or update default Volcano model provider and model configs."

    def handle(self, *args, **options):
        provider, _ = ModelProvider.objects.update_or_create(
            name=VOLCANO_PROVIDER["name"],
            defaults={
                "display_name": VOLCANO_PROVIDER["display_name"],
                "base_url": VOLCANO_PROVIDER["base_url"],
                "status": ModelProvider.Status.ACTIVE,
            },
        )

        count = 0
        for item in VOLCANO_MODELS:
            ModelConfig.objects.update_or_create(
                provider=provider,
                name=item["name"],
                capability=item["capability"],
                defaults={
                    "display_name": item["display_name"],
                    "endpoint": item["endpoint"],
                    "status": ModelConfig.Status.ACTIVE,
                    "metadata": item["metadata"],
                },
            )
            count += 1

        self.stdout.write(self.style.SUCCESS(f"Bootstrapped {count} Volcano model configs."))

