Files
ai/backend/prisma/migrations/20260603093000_global_character_library/migration.sql
T
2026-06-15 17:45:28 +08:00

63 lines
2.5 KiB
SQL

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`);