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

80 lines
3.1 KiB
SQL

CREATE TABLE `hit_analysis_cases` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`title` VARCHAR(255) NOT NULL,
`source_platform` VARCHAR(100) NULL,
`source_url` VARCHAR(500) NULL,
`content_type` VARCHAR(80) NOT NULL DEFAULT 'short_drama',
`genre` VARCHAR(100) NULL,
`language` VARCHAR(30) NOT NULL DEFAULT 'zh-CN',
`target_audience` VARCHAR(255) NULL,
`duration_seconds` INT NULL,
`episode_count` INT NULL,
`tags_json` JSON NULL,
`metrics_json` JSON NULL,
`transcript_text` LONGTEXT NULL,
`summary_text` TEXT NULL,
`analysis_json` JSON NULL,
`diagnosis_score` DECIMAL(5, 2) NULL,
`status` VARCHAR(50) NOT NULL DEFAULT 'draft',
`created_by_user_id` BIGINT NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
`updated_at` DATETIME(3) NOT NULL,
PRIMARY KEY (`id`),
INDEX `hit_analysis_cases_source_platform_idx`(`source_platform`),
INDEX `hit_analysis_cases_genre_status_idx`(`genre`, `status`),
INDEX `hit_analysis_cases_status_diagnosis_score_idx`(`status`, `diagnosis_score`),
INDEX `hit_analysis_cases_created_at_idx`(`created_at`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE TABLE `hit_analysis_segments` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`case_id` BIGINT NOT NULL,
`segment_no` INT NOT NULL,
`start_second` INT NULL,
`end_second` INT NULL,
`scene_type` VARCHAR(80) NULL,
`hook_type` VARCHAR(100) NULL,
`emotion` VARCHAR(80) NULL,
`conflict_type` VARCHAR(100) NULL,
`plot_function` VARCHAR(120) NULL,
`visual_strategy` VARCHAR(120) NULL,
`dialogue_pattern` VARCHAR(120) NULL,
`camera_notes` TEXT NULL,
`importance_score` INT NULL,
`emotion_score` INT NULL,
`action_score` INT NULL,
`tags_json` JSON NULL,
`summary_text` TEXT NULL,
`prompt_seed` TEXT NULL,
`created_at` DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3),
PRIMARY KEY (`id`),
UNIQUE INDEX `hit_analysis_segments_case_id_segment_no_key`(`case_id`, `segment_no`),
INDEX `hit_analysis_segments_case_id_idx`(`case_id`),
INDEX `hit_analysis_segments_scene_type_idx`(`scene_type`),
INDEX `hit_analysis_segments_hook_type_idx`(`hook_type`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE TABLE `creative_patterns` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`source_case_id` BIGINT NULL,
`pattern_type` VARCHAR(80) NOT NULL,
`title` VARCHAR(255) NOT NULL,
`genre` VARCHAR(100) NULL,
`language` VARCHAR(30) NOT NULL DEFAULT 'zh-CN',
`description` TEXT NULL,
`structure_json` JSON NULL,
`prompt_template` TEXT NULL,
`negative_prompt` TEXT NULL,
`tags_json` JSON NULL,
`usage_count` INT NOT NULL DEFAULT 0,
`effectiveness_score` DECIMAL(5, 2) NULL,
`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,
PRIMARY KEY (`id`),
INDEX `creative_patterns_pattern_type_status_idx`(`pattern_type`, `status`),
INDEX `creative_patterns_genre_status_idx`(`genre`, `status`),
INDEX `creative_patterns_source_case_id_idx`(`source_case_id`)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;