-- ==================== 迁移脚本：添加模型功能字段 ====================
-- 文件: 033_add_model_features.sql
-- 描述: 为models表添加is_search和is_thinking字段，标识模型支持的功能
-- 作者: AI Assistant
-- 日期: 2025-01-19

-- 1. 添加 is_search 字段（是否支持网页搜索）
ALTER TABLE aigcspace.models 
ADD COLUMN is_search BOOLEAN NOT NULL DEFAULT FALSE;

-- 2. 添加 is_thinking 字段（是否支持思考模式）
ALTER TABLE aigcspace.models 
ADD COLUMN is_thinking BOOLEAN NOT NULL DEFAULT FALSE;

-- 3. 添加字段注释
COMMENT ON COLUMN aigcspace.models.is_search IS '是否支持网页搜索功能';
COMMENT ON COLUMN aigcspace.models.is_thinking IS '是否支持思考模式';

-- 4. 为新字段添加索引（提升查询性能）
CREATE INDEX idx_models_is_search ON aigcspace.models(is_search);
CREATE INDEX idx_models_is_thinking ON aigcspace.models(is_thinking);

-- ==================== 更新支持搜索功能的模型 ====================

-- 通义千问系列模型
UPDATE aigcspace.models SET is_search = TRUE WHERE title IN (
    'qwen3-max',
    'qwen3-max-2025-09-23', 
    'qwen3-max-preview',
    'qwen-max',
    'qwen-max-latest',
    'qwen-max-2024-09-19',
    'qwen-plus',
    'qwen-plus-latest',
    'qwen-plus-2025-07-14',
    'qwen-flash',
    'qwen-flash-2025-07-28',
    'qwen-turbo',
    'qwen-turbo-latest',
    'qwen-turbo-2025-07-15',
    'qwq-plus'
);

-- 第三方模型
UPDATE aigcspace.models SET is_search = TRUE WHERE title IN (
    'deepseek-v3.2',
    'deepseek-v3.2-exp',
    'deepseek-v3.1',
    'deepseek-r1-0528',
    'deepseek-r1',
    'deepseek-v3',
    'Moonshot-Kimi-K2-Instruct'
);

-- ==================== 更新支持思考模式的模型 ====================

-- 通义千问系列（大部分支持思考模式）
UPDATE aigcspace.models SET is_thinking = TRUE WHERE title IN (
    'qwen3-max',
    'qwen3-max-2025-09-23',
    'qwen3-max-preview',
    'qwen-max',
    'qwen-max-latest',
    'qwen-max-2024-09-19',
    'qwen-plus',
    'qwen-plus-latest',
    'qwen-plus-2025-07-14',
    'qwq-plus'
);

-- DeepSeek系列（专门的推理模型，支持思考模式）
UPDATE aigcspace.models SET is_thinking = TRUE WHERE title IN (
    'deepseek-r1-0528',
    'deepseek-r1',
    'deepseek-v3.2',
    'deepseek-v3.2-exp',
    'deepseek-v3.1',
    'deepseek-v3'
);

-- ==================== 验证迁移结果 ====================

-- 输出迁移执行结果
SELECT 
    '迁移完成' as status,
    COUNT(*) as total_models,
    SUM(CASE WHEN is_search = TRUE THEN 1 ELSE 0 END) as search_supported,
    SUM(CASE WHEN is_thinking = TRUE THEN 1 ELSE 0 END) as thinking_supported,
    SUM(CASE WHEN is_search = TRUE AND is_thinking = TRUE THEN 1 ELSE 0 END) as both_supported
FROM aigcspace.models;