CREATE TABLE `character_extraction_versions` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `project_id` BIGINT NOT NULL, `story_bible_id` BIGINT NULL, `provider_log_id` BIGINT NULL, `source_type` VARCHAR(50) NOT NULL, `source_label` VARCHAR(120) NULL, `prompt_category` VARCHAR(100) NULL, `prompt_version` VARCHAR(80) NULL, `prompt_text` LONGTEXT NULL, `provider_code` VARCHAR(100) NULL, `model_name` VARCHAR(100) NULL, `raw_text` LONGTEXT NULL, `role_pool_plan_json` JSON NULL, `characters_json` JSON NULL, `quality_score` INT NULL, `review_comment` TEXT NULL, `status` VARCHAR(50) NOT NULL DEFAULT 'active', `created_by_user_id` BIGINT NULL, `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), `updated_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE INDEX `character_extraction_versions_project_id_status_idx` ON `character_extraction_versions`(`project_id`, `status`); CREATE INDEX `character_extraction_versions_story_bible_id_idx` ON `character_extraction_versions`(`story_bible_id`); CREATE INDEX `character_extraction_versions_provider_log_id_idx` ON `character_extraction_versions`(`provider_log_id`); CREATE INDEX `character_extraction_versions_source_type_idx` ON `character_extraction_versions`(`source_type`);