-- P1-1 KMWriter 冪等 migration
-- 2026-04-28 ogt + Claude Sonnet 4.6
--
-- 目的：為 knowledge_entries 加 path_type 欄位 + (related_incident_id, path_type) unique index，
--       實現 KMWriter 文件承諾的 UPSERT 冪等 key。
--
-- Down 路徑：
--   DROP INDEX IF EXISTS uix_knowledge_incident_path;
--   ALTER TABLE knowledge_entries DROP COLUMN IF EXISTS path_type;

-- 1. 新增 path_type 欄位（nullable，舊資料為 NULL，歷史條目不強制）
ALTER TABLE knowledge_entries
    ADD COLUMN IF NOT EXISTS path_type VARCHAR(50) NULL;

COMMENT ON COLUMN knowledge_entries.path_type
    IS 'KMWriter 寫入路徑類型，構成冪等 key (related_incident_id, path_type)。'
       '可用值: incident_resolve / approval_manual / approval_auto_ok / approval_auto_fail / playbook_extract';

-- 2. partial unique index：只對兩欄均非 NULL 的列生效（排除歷史資料 NULL 衝突）
CREATE UNIQUE INDEX IF NOT EXISTS uix_knowledge_incident_path
    ON knowledge_entries (related_incident_id, path_type)
    WHERE related_incident_id IS NOT NULL
      AND path_type IS NOT NULL;
