package kz.konturai.parser.config;

import kz.konturai.parser.service.ImageGenerationService;
import kz.konturai.parser.service.NanoBananaImageGenerationService;
import kz.konturai.parser.service.OpenAIImageGenerationService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;

@Configuration
public class ImageGenerationConfig {

    private static final Logger logger = LoggerFactory.getLogger(ImageGenerationConfig.class);

    @Value("${image.generation.provider:openai}")
    private String provider;

    /**
     * Создает bean ImageGenerationService на основе конфигурации.
     * По умолчанию используется OpenAI, но можно переключиться на nano-banana через application.properties
     *
     * @param openAIService Сервис OpenAI DALL-E
     * @param nanoBananaService Сервис Google Gemini Nano Banana
     * @return Выбранный сервис генерации изображений
     */
    @Bean
    @Primary
    public ImageGenerationService imageGenerationService(
            OpenAIImageGenerationService openAIService,
            NanoBananaImageGenerationService nanoBananaService) {

        if ("nano-banana".equalsIgnoreCase(provider)) {
            logger.info("Using Nano Banana (Google Gemini) for image generation");
            return nanoBananaService;
        } else {
            logger.info("Using OpenAI DALL-E for image generation (default)");
            return openAIService;
        }
    }
}

