-- 评价 / 对比功能所需结构（在已有库上增量执行；若列或表已存在会报错，可忽略对应语句）
-- MySQL 5.7+ / 8.0

-- 1. prompt_history 扩展字段（模型 history_models.PromptHistory 依赖）
-- 分两条执行：避免 AFTER 依赖列名/顺序；若某列已存在会报 Duplicate column，可忽略该条
ALTER TABLE prompt_history
  ADD COLUMN comparison_group_id VARCHAR(64) NULL COMMENT '对比组ID';
ALTER TABLE prompt_history
  ADD COLUMN is_comparison_enabled TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否参与对比';
ALTER TABLE prompt_history ADD INDEX idx_comparison_group (comparison_group_id);

-- 若上面因「列已存在」失败，说明已执行过，可继续执行下面建表。

-- 2. 评价表（与 evaluation_models.PromptEvaluation 一致）
CREATE TABLE IF NOT EXISTS prompt_evaluation (
    id INT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
    history_id INT NOT NULL COMMENT '历史记录ID',
    user_id INT NOT NULL COMMENT '评价者用户ID',
    clarity_rating TINYINT NULL COMMENT '清晰度评分',
    specificity_rating TINYINT NULL COMMENT '具体性评分',
    effectiveness_rating TINYINT NULL COMMENT '有效性评分',
    professionalism_rating TINYINT NULL COMMENT '专业性评分',
    completeness_rating TINYINT NULL COMMENT '完整性评分',
    is_best_version TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否为最佳版本',
    comparison_group_id VARCHAR(64) NULL COMMENT '对比组ID',
    overall_rating TINYINT NULL COMMENT '综合评分',
    comments TEXT NULL COMMENT '评价意见',
    created_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    updated_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    INDEX idx_history_id (history_id),
    INDEX idx_user_id (user_id),
    INDEX idx_comparison_group (comparison_group_id),
    CONSTRAINT fk_pe_history FOREIGN KEY (history_id) REFERENCES prompt_history(id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='提示词评价表';

-- 3. 对比组表
CREATE TABLE IF NOT EXISTS comparison_group (
    id INT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID',
    group_id VARCHAR(64) NOT NULL COMMENT '对比组ID',
    user_id INT NOT NULL COMMENT '创建者用户ID',
    name VARCHAR(100) NULL COMMENT '对比组名称',
    description TEXT NULL COMMENT '对比组描述',
    is_public TINYINT(1) NOT NULL DEFAULT 0 COMMENT '是否公开',
    created_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    updated_at TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    UNIQUE KEY uk_group_id (group_id),
    INDEX idx_user_id (user_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='对比组表';
