/** * config.js - Configurações centralizadas do bot * * Carrega variáveis de ambiente e define valores padrão * para todas as configurações necessárias. */ require('dotenv').config(); const config = { // ── Discord ────────────────────────────────────────── discord: { token: process.env.DISCORD_TOKEN, channelId: process.env.DISCORD_CHANNEL_ID, }, // ── URLs de monitoramento ──────────────────────────── urls: { amazon: process.env.AMAZON_URL || 'https://www.amazon.com.br/deals', aliexpress: process.env.ALIEXPRESS_URL || 'https://pt.aliexpress.com/campaign/wow/gcp-plus/ae/right/shareon', shopee: process.env.SHOPEE_URL || 'https://shopee.com.br/flash_sale', mercadolivre: process.env.MERCADOLIVRE_URL || 'https://www.mercadolivre.com.br/ofertas', }, // ── Scraping ───────────────────────────────────────── scraping: { intervalMinutes: parseInt(process.env.SCRAPE_INTERVAL_MINUTES, 10) || 30, maxOffersPerSite: parseInt(process.env.MAX_OFFERS_PER_SITE, 10) || 5, pageTimeout: parseInt(process.env.PAGE_TIMEOUT, 10) || 30000, headless: process.env.PUPPETEER_HEADLESS !== 'false', // padrão: true }, // ── Afiliados ──────────────────────────────────────── affiliate: { amazonTag: process.env.AMAZON_AFFILIATE_TAG || '', }, // ── Cores dos embeds por loja ──────────────────────── colors: { amazon: 0xFF9900, // Laranja Amazon aliexpress: 0xE43A2B, // Vermelho AliExpress shopee: 0xEE4D2D, // Laranja Shopee mercadolivre: 0xFFE600, // Amarelo Mercado Livre }, // ── Emojis por loja ───────────────────────────────── emojis: { amazon: '🛒', aliexpress: '🌐', shopee: '🛍️', mercadolivre: '🤝', }, }; // Validação das configurações obrigatórias function validateConfig() { const errors = []; if (!config.discord.token) { errors.push('DISCORD_TOKEN não configurado no .env'); } if (!config.discord.channelId) { errors.push('DISCORD_CHANNEL_ID não configurado no .env'); } if (errors.length > 0) { console.error('❌ Erros de configuração:'); errors.forEach((err) => console.error(` → ${err}`)); console.error('\n📄 Copie o arquivo .env.example para .env e configure as variáveis.'); process.exit(1); } } module.exports = { config, validateConfig };