CREATE TABLE `global_characters` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `name` VARCHAR(100) NOT NULL, `display_name` VARCHAR(100) NULL, `role_archetype` VARCHAR(50) NOT NULL DEFAULT 'lead', `gender_label` VARCHAR(50) NULL, `age_group` VARCHAR(50) NULL, `identity_desc` TEXT NULL, `appearance_desc` TEXT NULL, `face_desc` TEXT NULL, `hair_desc` TEXT NULL, `eye_desc` TEXT NULL, `body_desc` TEXT NULL, `default_costume_rules` TEXT NULL, `wardrobe_json` JSON NULL, `special_props` TEXT NULL, `personality_desc` TEXT NULL, `speech_style` TEXT NULL, `voice_provider_code` VARCHAR(100) NULL, `voice_model` VARCHAR(100) NULL, `voice_id` VARCHAR(100) NULL, `voice_style` TEXT NULL, `performance_style` TEXT NULL, `negative_rules` TEXT NULL, `anchor_asset_id` BIGINT NULL, `voice_sample_asset_id` BIGINT NULL, `commercial_status` VARCHAR(50) NOT NULL DEFAULT 'internal_test', `usage_scope` VARCHAR(50) NOT NULL DEFAULT 'internal', `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), INDEX `global_characters_status_role_archetype_idx`(`status`, `role_archetype`), INDEX `global_characters_commercial_status_idx`(`commercial_status`), INDEX `global_characters_created_by_user_id_idx`(`created_by_user_id`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE TABLE `global_character_assets` ( `id` BIGINT NOT NULL AUTO_INCREMENT, `global_character_id` BIGINT NOT NULL, `asset_id` BIGINT NULL, `asset_type` VARCHAR(50) NOT NULL, `label` VARCHAR(100) NULL, `prompt_text` TEXT NULL, `is_primary` BOOLEAN NOT NULL DEFAULT false, `status` VARCHAR(50) NOT NULL DEFAULT 'active', `created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3), INDEX `global_character_assets_global_character_id_asset_type_idx`(`global_character_id`, `asset_type`), INDEX `global_character_assets_asset_id_idx`(`asset_id`), PRIMARY KEY (`id`) ) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ALTER TABLE `characters` ADD COLUMN `global_character_id` BIGINT NULL, ADD COLUMN `wardrobe_variant` VARCHAR(100) NULL, ADD COLUMN `voice_provider_code` VARCHAR(100) NULL, ADD COLUMN `voice_model` VARCHAR(100) NULL, ADD COLUMN `voice_id` VARCHAR(100) NULL, ADD COLUMN `voice_style` TEXT NULL, ADD COLUMN `performance_style` TEXT NULL, ADD INDEX `characters_global_character_id_idx`(`global_character_id`);