ALTER TABLE `characters` ADD COLUMN `global_character_look_version_id` BIGINT NULL, ADD COLUMN `global_character_asset_id` BIGINT NULL, ADD COLUMN `inherit_voice_from_global` BOOLEAN NOT NULL DEFAULT false, ADD COLUMN `inherit_digital_human_from_global` BOOLEAN NOT NULL DEFAULT false, ADD INDEX `characters_global_character_look_version_id_idx` (`global_character_look_version_id`), ADD INDEX `characters_global_character_asset_id_idx` (`global_character_asset_id`); CREATE TABLE `global_character_look_versions` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `global_character_id` BIGINT NOT NULL, `version_name` VARCHAR(160) NOT NULL, `style_type` VARCHAR(80) NULL, `appearance_desc` TEXT NULL, `hair_desc` TEXT NULL, `makeup_desc` TEXT NULL, `body_desc` TEXT NULL, `costume_rules` TEXT NULL, `color_palette` TEXT NULL, `key_props` TEXT NULL, `negative_rules` TEXT NULL, `main_anchor_asset_id` BIGINT NULL, `status` VARCHAR(50) NOT NULL DEFAULT 'candidate', `quality_score` DECIMAL(5,2) NULL, `reviewer_comment` TEXT NULL, `source_project_id` BIGINT NULL, `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`), INDEX `global_character_look_versions_global_character_id_status_idx` (`global_character_id`, `status`), INDEX `global_character_look_versions_main_anchor_asset_id_idx` (`main_anchor_asset_id`), INDEX `global_character_look_versions_source_project_id_idx` (`source_project_id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE `global_character_assets` ADD COLUMN `look_version_id` BIGINT NULL, ADD COLUMN `source_type` VARCHAR(50) NOT NULL DEFAULT 'upload', ADD COLUMN `source_label` VARCHAR(160) NULL, ADD COLUMN `negative_prompt` TEXT NULL, ADD COLUMN `model_name` VARCHAR(160) NULL, ADD COLUMN `seed` VARCHAR(100) NULL, ADD COLUMN `resolution` VARCHAR(50) NULL, ADD COLUMN `aspect_ratio` VARCHAR(50) NULL, ADD COLUMN `cost_estimate` DECIMAL(12,4) NULL, ADD COLUMN `cost_actual` DECIMAL(12,4) NULL, ADD COLUMN `quality_score` DECIMAL(5,2) NULL, ADD COLUMN `consistency_score` DECIMAL(5,2) NULL, ADD COLUMN `face_similarity_score` DECIMAL(5,2) NULL, ADD COLUMN `license_status` VARCHAR(50) NOT NULL DEFAULT 'internal_test', ADD COLUMN `commercial_allowed` BOOLEAN NOT NULL DEFAULT false, ADD COLUMN `review_status` VARCHAR(50) NOT NULL DEFAULT 'pending', ADD COLUMN `reviewer_note` TEXT NULL, ADD COLUMN `usage_count` INT NOT NULL DEFAULT 0, ADD COLUMN `metadata_json` JSON NULL, ADD INDEX `global_character_assets_look_version_id_idx` (`look_version_id`), ADD INDEX `global_character_assets_source_type_idx` (`source_type`), ADD INDEX `global_character_assets_review_status_idx` (`review_status`);