ALTER TABLE `shot_generation_plans` ADD COLUMN `capability_registry_version_id` BIGINT NULL AFTER `provider_id`, ADD COLUMN `parameter_schema_version_id` BIGINT NULL AFTER `capability_registry_version_id`, ADD COLUMN `pricing_version_id` BIGINT NULL AFTER `parameter_schema_version_id`; CREATE INDEX `sgp_capability_registry_idx` ON `shot_generation_plans`(`capability_registry_version_id`); CREATE INDEX `sgp_parameter_schema_idx` ON `shot_generation_plans`(`parameter_schema_version_id`); CREATE INDEX `sgp_pricing_version_idx` ON `shot_generation_plans`(`pricing_version_id`); CREATE TABLE `model_capability_versions` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `provider_type` VARCHAR(80) NOT NULL, `provider_code` VARCHAR(100) NOT NULL, `model_name` VARCHAR(160) NULL, `revision` INTEGER NOT NULL, `version_key` VARCHAR(160) NOT NULL, `content_hash` VARCHAR(64) NOT NULL, `status` VARCHAR(50) NOT NULL DEFAULT 'published', `capability_json` JSON NOT NULL, `source_json` JSON NULL, `effective_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), `created_by_user_id` BIGINT NULL, `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), PRIMARY KEY (`id`), UNIQUE INDEX `mcv_provider_revision_key`(`provider_type`, `provider_code`, `revision`), UNIQUE INDEX `mcv_provider_hash_key`(`provider_type`, `provider_code`, `content_hash`), INDEX `mcv_provider_status_effective_idx`(`provider_code`, `status`, `effective_at`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE TABLE `model_parameter_schema_versions` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `provider_type` VARCHAR(80) NOT NULL, `provider_code` VARCHAR(100) NOT NULL, `model_name` VARCHAR(160) NULL, `revision` INTEGER NOT NULL, `version_key` VARCHAR(160) NOT NULL, `content_hash` VARCHAR(64) NOT NULL, `status` VARCHAR(50) NOT NULL DEFAULT 'published', `schema_json` JSON NOT NULL, `source_json` JSON NULL, `effective_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), `created_by_user_id` BIGINT NULL, `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), PRIMARY KEY (`id`), UNIQUE INDEX `mpsv_provider_revision_key`(`provider_type`, `provider_code`, `revision`), UNIQUE INDEX `mpsv_provider_hash_key`(`provider_type`, `provider_code`, `content_hash`), INDEX `mpsv_provider_status_effective_idx`(`provider_code`, `status`, `effective_at`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE TABLE `model_pricing_versions` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `provider_type` VARCHAR(80) NOT NULL, `provider_code` VARCHAR(100) NOT NULL, `model_name` VARCHAR(160) NULL, `revision` INTEGER NOT NULL, `version_key` VARCHAR(160) NOT NULL, `content_hash` VARCHAR(64) NOT NULL, `status` VARCHAR(50) NOT NULL DEFAULT 'published', `pricing_json` JSON NOT NULL, `source_json` JSON NULL, `effective_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), `created_by_user_id` BIGINT NULL, `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), PRIMARY KEY (`id`), UNIQUE INDEX `mpv_provider_revision_key`(`provider_type`, `provider_code`, `revision`), UNIQUE INDEX `mpv_provider_hash_key`(`provider_type`, `provider_code`, `content_hash`), INDEX `mpv_provider_status_effective_idx`(`provider_code`, `status`, `effective_at`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;