const MercadoLivreScraper = require('./infrastructure/MercadoLivreScraper');
const AffiliateGenerator = require('./infrastructure/AffiliateGenerator');
const ApiClient = require('./infrastructure/ApiClient');
const ProcessPromotionsUseCase = require('./application/ProcessPromotionsUseCase');

// 1. Criamos as instâncias de cada ferramenta
const scraper = new MercadoLivreScraper();
const affiliateGenerator = new AffiliateGenerator();
const apiClient = new ApiClient();

// 2. Entregamos todas as ferramentas para o Caso de Uso trabalhar
const useCase = new ProcessPromotionsUseCase(scraper, affiliateGenerator, apiClient);

// 3. Damos o play no robô
useCase.executar();