CREATE TABLE `character_prompt_versions` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `project_id` BIGINT NULL, `character_id` BIGINT NULL, `global_character_id` BIGINT NULL, `look_version_id` BIGINT NULL, `version_no` INTEGER NOT NULL, `layer_code` VARCHAR(80) NOT NULL DEFAULT 'main_anchor', `channel` VARCHAR(80) NOT NULL DEFAULT 'chatgpt_web', `title` VARCHAR(160) NULL, `source_type` VARCHAR(80) NOT NULL DEFAULT 'system_refresh', `source_label` VARCHAR(160) NULL, `prompt_engine_version` VARCHAR(80) NULL, `prompt_text` LONGTEXT NOT NULL, `negative_prompt` LONGTEXT NULL, `model_name` VARCHAR(160) NULL, `usage_note` TEXT NULL, `quality_score` DECIMAL(5, 2) NULL, `review_comment` TEXT NULL, `is_active` BOOLEAN NOT NULL DEFAULT false, `metadata_json` JSON NULL, `created_by_user_id` BIGINT NULL, `status` VARCHAR(50) NOT NULL DEFAULT 'active', `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`), UNIQUE INDEX `cpv_character_version_key` (`character_id`, `version_no`), UNIQUE INDEX `cpv_global_version_key` (`global_character_id`, `version_no`), INDEX `cpv_project_idx` (`project_id`), INDEX `cpv_character_layer_channel_idx` (`character_id`, `layer_code`, `channel`), INDEX `cpv_global_layer_channel_idx` (`global_character_id`, `layer_code`, `channel`), INDEX `cpv_look_version_idx` (`look_version_id`), INDEX `cpv_active_status_idx` (`is_active`, `status`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;