package com.zioinfo.kintex.module.m2.dto;

/**
 * 자연어 조건 해석 결과 — 파싱된 {@link AutoLayoutRequest} + 해석 근거.
 *
 * <p><b>서버 권위</b>: request 필드는 AI 파싱값을 서버가 범위 클램핑(부스 1~500·프리미엄 0~1·안 1~5 등)한 최종값이다.
 * 프론트는 이 값으로 폼을 채우되 사용자가 수정할 수 있으며, 최종 권위는 폼(사용자 확인)에 있다.
 *
 * <p><b>강등(degraded)</b>: AI 미가용/파싱 실패 시 5xx 대신 degraded=true 로 응답하고 request 는 기본값을 담는다.
 * 프론트는 안내 후 수동 폼으로 폴백한다(자동배치 자체는 별도 엔드포인트로 항상 가능).
 *
 * @param request        서버 클램핑된 자동배치 조건(폼 초기값)
 * @param interpretedNote 사람이 읽는 해석 근거(예: "부스 120·프리미엄 30%·무대 1·입구 2·3안으로 해석")
 * @param degraded       AI 미가용/파싱 실패 여부(true 면 수동 폼 폴백)
 * @param provider       실제 응답 provider("claude"|"ollama"|"none")
 */
public record LayoutInterpretResult(
        AutoLayoutRequest request,
        String interpretedNote,
        boolean degraded,
        String provider
) {
}
