ThrottledTranslationEngineAdapter.java

package com.yumu.noveltranslator.adapter.out.translate;

import com.yumu.noveltranslator.port.out.TranslationEnginePort;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * TranslationEnginePort adapter that delegates to UserLevelThrottledTranslationClient.
 * Provides the simple translate(text, sourceLang, targetLang, engine) interface
 * while leveraging the existing rate limiting, round-robin, and fallback logic.
 */
@Component
@RequiredArgsConstructor
@Slf4j
public class ThrottledTranslationEngineAdapter implements TranslationEnginePort {

    private final UserLevelThrottledTranslationClient throttledClient;

    @Override
    public String translate(String text, String sourceLang, String targetLang, String engine) {
        return throttledClient.translate(text, targetLang, engine, false);
    }

    @Override
    public boolean isHealthy(String engine) {
        return throttledClient != null;
    }
}