package com.zioinfo.mall.rag;

import lombok.Getter;
import lombok.Setter;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 중앙 guardia-rag 연동 설정 (Mall 전용).
 *
 * <p>보안 불변 규칙: base-url 은 <b>온프레미스(중앙 guardia-rag) 전용</b>이다.
 * 외부 엔드포인트를 가리키도록 설정해서는 안 된다. 기본값은 서버 내부 루프백이다.
 *
 * <p>application.yml:
 * <pre>
 * guardia:
 *   rag:
 *     base-url: http://127.0.0.1:8020
 *     timeout-ms: 120000
 *     enabled: true
 *     solution: mall
 * </pre>
 */
@Component
@Getter
@Setter
@ConfigurationProperties(prefix = "guardia.rag")
public class RagProperties {

    /** 중앙 guardia-rag 베이스 URL (서버 내부 루프백 기본). */
    private String baseUrl = "http://127.0.0.1:8020";

    /** 호출 타임아웃(ms). 소형모델 생성 고려 120s 기본. */
    private long timeoutMs = 120_000L;

    /** RAG 경유 마스터 스위치. false면 RagClient 가 항상 미가용으로 동작(Mall 로컬 폴백). */
    private boolean enabled = true;

    /** 솔루션 식별자(컬렉션·토글·피드백 격리 키). */
    private String solution = "mall";
}
