package com.zioinfo.kintex.cms.dto;

/**
 * AI 자동 번역(초벌) 결과 봉투(SCR-37 / F100).
 *
 * <p>성공: {@code translation} 채움 · {@code degraded=false} · {@code provider}=claude|ollama.
 * <p>AI 미가용/응답 파싱 실패: {@code translation=null} · {@code degraded=true} · {@code provider=none} —
 * 500이 아닌 정상(200) 응답으로 반환해 프론트가 "AI 준비 중/일시 불가"로 부드럽게 처리하게 한다
 * (환각 없이 아무것도 저장하지 않는다).
 */
public record CmsAiTranslateResult(
        CmsTranslationDto translation,
        boolean degraded,
        String provider,
        String message) {

    public static CmsAiTranslateResult ok(CmsTranslationDto translation, String provider) {
        return new CmsAiTranslateResult(translation, false, provider, null);
    }

    public static CmsAiTranslateResult unavailable(String message) {
        return new CmsAiTranslateResult(null, true, "none", message);
    }
}
