46 lines
1.9 KiB
JavaScript
46 lines
1.9 KiB
JavaScript
/**
|
|
* Estrutura do "Fluxo de Resolução" (motivos + resolução do atendimento).
|
|
* Cria de forma idempotente no Firebird:
|
|
* - Tabela CHATC2_MOTIVOS_ATENDIMENTO
|
|
* - Flags em CHATC2_CONFIGURACOES_EMPRESA (CFE_MOTIVO_*, CFE_RESOLUCAO_*)
|
|
* - Colunas CON_MOTIVO_ID / CON_RESOLUCAO em CHATC2_CONVERSAS
|
|
*
|
|
* Usa DDL no subconjunto que funciona nos dois bancos (INTEGER, VARCHAR, CHAR,
|
|
* ALTER TABLE ... ADD). A tabela nova é criada com nome MAIÚSCULO entre aspas
|
|
* para manter a convenção do schema migrado.
|
|
*/
|
|
const db = require('./database');
|
|
|
|
const prontos = {};
|
|
|
|
async function tentar(alias, sql) {
|
|
// DDL idempotente: ignora erros de "já existe" (e similares entre dialetos)
|
|
try { await db.execute(alias, sql); } catch (e) { /* noop */ }
|
|
}
|
|
|
|
async function garantirEstrutura(alias) {
|
|
if (prontos[alias]) return;
|
|
|
|
await tentar(alias, `CREATE TABLE "CHATC2_MOTIVOS_ATENDIMENTO" (
|
|
MOT_CODIGO_ID INTEGER NOT NULL PRIMARY KEY,
|
|
MOT_EMPRESA_ID INTEGER,
|
|
MOT_DESCRICAO VARCHAR(150),
|
|
MOT_SITUACAO CHAR(1) DEFAULT 'A'
|
|
)`);
|
|
|
|
await tentar(alias, `ALTER TABLE CHATC2_CONFIGURACOES_EMPRESA ADD CFE_MOTIVO_VISUALIZAR CHAR(1) DEFAULT 'N'`);
|
|
await tentar(alias, `ALTER TABLE CHATC2_CONFIGURACOES_EMPRESA ADD CFE_MOTIVO_OBRIGATORIO CHAR(1) DEFAULT 'N'`);
|
|
await tentar(alias, `ALTER TABLE CHATC2_CONFIGURACOES_EMPRESA ADD CFE_RESOLUCAO_VISUALIZAR CHAR(1) DEFAULT 'N'`);
|
|
await tentar(alias, `ALTER TABLE CHATC2_CONFIGURACOES_EMPRESA ADD CFE_RESOLUCAO_OBRIGATORIO CHAR(1) DEFAULT 'N'`);
|
|
|
|
// Envio de boleto na conversa (checkbox em Configurações > Empresa)
|
|
await tentar(alias, `ALTER TABLE CHATC2_CONFIGURACOES_EMPRESA ADD CFE_ENVIAR_BOLETO CHAR(1) DEFAULT 'N'`);
|
|
|
|
await tentar(alias, `ALTER TABLE CHATC2_CONVERSAS ADD CON_MOTIVO_ID INTEGER`);
|
|
await tentar(alias, `ALTER TABLE CHATC2_CONVERSAS ADD CON_RESOLUCAO VARCHAR(4000)`);
|
|
|
|
prontos[alias] = true;
|
|
}
|
|
|
|
module.exports = { garantirEstrutura };
|