63 lines
2.5 KiB
SQL
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`);
|