-- =====================================================================
-- GUARDiA SIGNAGE — 95. AI provider 를 claude 로 전환(flip, 멱등 UPSERT)
-- 대상 DB : guardia_signage_db (테이블 signage_setting — schema.sql 에서 생성)
-- 적용    : application.yml spring.sql.init.mode=always + schema-locations 에 본 파일 등재(94 이후).
-- 설명    : db/94 시드는 ON CONFLICT DO NOTHING 이라 이미 provider=ollama 로 자리잡은 값을
--           바꾸지 못한다. 본 파일은 ON CONFLICT DO UPDATE(UPSERT)로 provider 를 claude 로 확정 전환.
--           재기동 없이 AiConfigService 다음 호출부터 반영(런타임 해상도), mode:always 재실행 안전.
-- 근거    : AiConfigService.isClaudeActive() = provider=claude · claudeKeySet(env) · aiEnabled.
--           키는 서버 환경변수 ANTHROPIC_API_KEY 로만 주입(DB 저장·본 시드 미포함). 키/네트워크
--           실패 시 라우터가 Ollama(선택 모델)로 자동 폴백 — 본업 무손실.
-- 보안    : 키/시크릿/IP/비밀번호 일절 미포함.
-- 멱등    : INSERT ... ON CONFLICT (setting_key) DO UPDATE SET setting_value = EXCLUDED.setting_value.
-- =====================================================================

SET client_encoding = 'UTF8';

-- provider 를 claude 로 확정(없으면 생성, 있으면 값 교체 — 멱등).
INSERT INTO signage_setting (setting_key, setting_value, category, description) VALUES
    ('ai.provider', 'claude', 'AI', 'LLM provider(ollama/claude/qwen3/deepseek/glm)')
ON CONFLICT (setting_key) DO UPDATE
    SET setting_value = EXCLUDED.setting_value,
        updated_at    = NOW();

-- AI 전역 활성 보장(off 로 남아있던 환경도 claude 전환 시 정상 동작하도록 확정).
INSERT INTO signage_setting (setting_key, setting_value, category, description) VALUES
    ('ai.enabled', 'true', 'AI', '전역 AI 사용 여부(off=규칙기반 degraded)')
ON CONFLICT (setting_key) DO UPDATE
    SET setting_value = EXCLUDED.setting_value,
        updated_at    = NOW();

-- end 95_flip_ai_provider_claude.sql
