package com.erp.ai.client;

import java.util.List;
import java.util.Map;

/**
 * LLM 클라이언트 추상화.
 * architecture §9.2.
 */
public interface LlmClient {

    /**
     * 모델 매칭 (LlmClientFactory 라우팅용).
     */
    boolean supports(String model);

    /**
     * provider name (anthropic / openai / google / deepseek / ollama).
     */
    String providerName();

    /**
     * 동기 채팅 호출. OpenAI 호환 형식 응답.
     *
     * @param request {model, messages, max_tokens, temperature, ...}
     * @return OpenAI 호환 응답 맵 (id, object, choices, usage 등)
     */
    Map<String, Object> chat(Map<String, Object> request);

    /**
     * 사용 가능한 모델 목록.
     */
    default List<Map<String, Object>> listModels() {
        return List.of();
    }
}
