Adiciona Fluxo de Resolução (motivo + resolução do atendimento)
- Settings > Fluxo: cadastro de motivos e flags (visualizar/obrigatório para motivo e resolução) - Tela de conversa: dropdown de motivos + campo de resolução abaixo dos dados do titular, exibidos conforme configuração - Finalização valida obrigatoriedade (front e backend) e salva CON_MOTIVO_ID/CON_RESOLUCAO - Estrutura criada de forma idempotente (Postgres/Firebird) em src/resolucaoSetup.js; CRUD de motivos restrito a gerente Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
/**
|
||||
* Estrutura do "Fluxo de Resolução" (motivos + resolução do atendimento).
|
||||
* Cria de forma idempotente, em Postgres ou 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'`);
|
||||
|
||||
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 };
|
||||
Reference in New Issue
Block a user