-- =====================================================================
-- GUARDiA MES — 105. AI provider flip: ollama → claude (멱등 UPSERT)
-- 대상 DB : mes_db (테이블 mes_setting, PK=key)
-- 적용    : application.yml spring.sql.init.schema-locations 에 104 시드 '이후' 등재.
--           mode:always + continue-on-error 재실행 안전.
-- 설명    : 104_seed 는 ai.provider=ollama 를 ON CONFLICT DO NOTHING 으로 시드하므로,
--           이미 시드된 운영 DB 에서는 provider 가 ollama 로 고정된다.
--           본 파일이 104 '이후' 실행되어 provider 를 claude 로 flip(UPSERT)한다.
--           행 부재 시 INSERT, 존재 시 UPDATE → 신규/기존 DB 모두 결정적으로 claude.
-- 실효    : AiConfigService.isClaudeActive() = provider=claude · ANTHROPIC_API_KEY(env) SET · ai.enabled.
--           키 미설정/Claude 실패 시 AiTextRouter 가 Ollama 자동 폴백(무중단·무회귀).
-- 보안    : 키/시크릿/IP/비밀번호 일절 미포함. 키는 서버 env(ANTHROPIC_API_KEY)로만 주입.
-- 멱등    : INSERT ... ON CONFLICT (key) DO UPDATE SET value=EXCLUDED.value — 재실행 안전.
-- =====================================================================

SET client_encoding = 'UTF8';

-- mes_setting 이 (104 미적용 환경에서도) 존재하도록 멱등 보장.
CREATE TABLE IF NOT EXISTS mes_setting (
    key VARCHAR(200) PRIMARY KEY,
    value TEXT,
    updated_at TIMESTAMP DEFAULT NOW()
);

-- provider 를 claude 로 flip (신규=INSERT, 기존=UPDATE). 결정적 멱등.
INSERT INTO mes_setting (key, value, updated_at) VALUES
    ('ai.provider', 'claude', NOW())
ON CONFLICT (key) DO UPDATE SET value = EXCLUDED.value, updated_at = NOW();

-- end 105_ai_provider_claude.sql
