-- Migration: Add extract_strategies field to slot_definitions
-- Date: 2026-03-06
-- Issue: [AC-MRS-07-UPGRADE] 提取策略体系升级 - 支持策略链

-- 1. 为 slot_definitions 表新增 extract_strategies 字段（JSONB 数组格式）
ALTER TABLE slot_definitions 
ADD COLUMN IF NOT EXISTS extract_strategies JSONB DEFAULT NULL;

-- 2. 添加字段注释
COMMENT ON COLUMN slot_definitions.extract_strategies IS 
'[AC-MRS-07-UPGRADE] 提取策略链：有序数组，元素为 rule/llm/user_input，按顺序执行直到成功';

-- 3. 数据迁移：将旧的 extract_strategy 转换为 extract_strategies 数组
-- 注意：保留旧字段用于兼容读取
UPDATE slot_definitions 
SET extract_strategies = CASE 
    WHEN extract_strategy IS NOT NULL THEN jsonb_build_array(extract_strategy)
    ELSE NULL
END
WHERE extract_strategies IS NULL;

-- 4. 创建 GIN 索引支持策略查询（可选，根据实际查询需求）
-- CREATE INDEX IF NOT EXISTS idx_slot_definitions_extract_strategies 
-- ON slot_definitions USING GIN (extract_strategies);

-- 5. 验证迁移结果
-- SELECT 
--     id, 
--     slot_key, 
--     extract_strategy as old_strategy,
--     extract_strategies as new_strategies
-- FROM slot_definitions 
-- WHERE extract_strategy IS NOT NULL;
