const mysql = require('mysql2/promise'); // Configuração da conexão com o banco de dados // Em produção, estes valores devem vir de variáveis de ambiente (.env) const dbConfig = { host: process.env.DB_HOST || 'localhost', user: process.env.DB_USER || 'root', password: process.env.DB_PASSWORD || 'password', database: process.env.DB_NAME || 'agenciac_comia', waitForConnections: true, connectionLimit: 10, queueLimit: 0, }; const pool = mysql.createPool(dbConfig); // Função para testar a conexão com retry const connectWithRetry = async (retries = 5, delay = 5000) => { for (let i = 0; i < retries; i++) { try { const connection = await pool.getConnection(); console.log('✅ Conectado ao MySQL com sucesso!'); connection.release(); return; // Conexão bem-sucedida, sair da função } catch (err) { console.error(`❌ Erro ao conectar ao MySQL (Tentativa ${i + 1}/${retries}):`, err.message); if (i < retries - 1) { console.log(`⏳ Aguardando ${delay / 1000} segundos antes de tentar novamente...`); await new Promise(res => setTimeout(res, delay)); } else { console.error('🚨 Falha crítica: Não foi possível conectar ao banco de dados após várias tentativas.'); // Opcional: process.exit(1) se quiser que o container reinicie } } } }; // Iniciar a tentativa de conexão connectWithRetry(); module.exports = pool;