/** * Serviço de configuração da empresa (sem cache). * * Lê direto do banco — sem TTL, sem stale data. * As flags CFE_* são consultadas a cada operação, então refletem * imediatamente qualquer alteração salva em Settings. */ const db = require('../database'); /** * Retorna a configuração completa de uma empresa (direto do banco). * * @param {string} alias * @param {number} empresaId * @returns {Promise} */ async function getConfig(alias, empresaId) { await garantirRegistro(alias, empresaId); const result = await db.query(alias, 'SELECT * FROM CHATC2_CONFIGURACOES_EMPRESA WHERE CFE_EMPRESA_ID = ?', [empresaId]); return result[0] || {}; } /** No-op: não há cache para invalidar */ function invalidarConfig() {} async function garantirRegistro(alias, empresaId) { try { const existe = await db.query(alias, 'SELECT COUNT(*) AS CT FROM CHATC2_CONFIGURACOES_EMPRESA WHERE CFE_EMPRESA_ID = ?', [empresaId]); if (existe[0]?.CT === 0) { await db.execute(alias, ` INSERT INTO CHATC2_CONFIGURACOES_EMPRESA (CFE_EMPRESA_ID) VALUES (?) `, [empresaId]); } } catch (e) { if (!e.message.includes('unknown') && !e.message.includes('não encontrado')) { console.error('[ConfigService] Erro ao garantir registro:', e.message.substring(0, 100)); } } } module.exports = { getConfig, invalidarConfig };