package com.agent.management.config;

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

import java.time.Duration;

/**
 * RAG AI Bridge 配置项（rag.ai-bridge.*）
 *
 * 用于自然语言转 SQL/Cypher 的 Python Bridge 服务。
 * LLM 配置（api-key/base-url/model）不在本类中，统一从 spring.ai.openai.* 读取，
 * 由 RagAiBridgeProcessManager 通过环境变量注入子进程，实现 application.yml 单一配置源。
 */
@Data
@Component
@ConfigurationProperties(prefix = "rag.ai-bridge")
public class RagAiBridgeProperties {

    /** 是否启用 RAG AI Bridge */
    private boolean enabled = false;

    /** HTTP 调用超时（RagAiBridgeClient 用） */
    private Duration timeout = Duration.ofSeconds(300);

    /** Bridge 监听主机 */
    private String host = "127.0.0.1";

    /** Bridge 监听端口 */
    private int port = 18733;

    /** Python 可执行文件路径 */
    private String pythonPath = "python";

    /** Bridge 入口脚本路径（相对 user.dir，与 embedding-bridge / hermes-bridge 约定一致） */
    private String scriptPath = "rag-ai-bridge/server.py";

    /** 启动超时（秒） */
    private int startupTimeout = 60;

    /** 健康检查间隔（秒），0 表示不检查 */
    private int healthCheckInterval = 60;
}
