From 46767b5fe2089411cd216ed23bb6490cbfbcca17 Mon Sep 17 00:00:00 2001 From: Ayron Santoss Date: Wed, 1 Jul 2026 14:07:09 +0000 Subject: [PATCH] feat: add migracoes_ibexpert.sql para execucao direta no IBExpert --- scripts/migracoes_ibexpert.sql | 308 +++++++++++++++++++++++++++++++++ 1 file changed, 308 insertions(+) create mode 100644 scripts/migracoes_ibexpert.sql diff --git a/scripts/migracoes_ibexpert.sql b/scripts/migracoes_ibexpert.sql new file mode 100644 index 0000000..bd84cbb --- /dev/null +++ b/scripts/migracoes_ibexpert.sql @@ -0,0 +1,308 @@ +-- ============================================================ +-- CHATC2 - SCRIPT DE CRIAÇÃO DO BANCO (IBExpert) +-- ============================================================ +-- Execute cada bloco separadamente no IBExpert SQL Editor. +-- Se algum comando falhar com "already exists", ignore e continue. +-- ============================================================ + +-- ============================================================ +-- TABELA DE CONTROLE DE MIGRAÇÕES +-- ============================================================ +CREATE TABLE CHATC2_CONTROLE_MIGRACOES ( + MIG_ID INTEGER NOT NULL PRIMARY KEY, + MIG_DESCRICAO VARCHAR(200), + MIG_DATA_EXECUCAO TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + MIG_STATUS CHAR(1) DEFAULT 'A' +); + +-- ============================================================ +-- 1. USU_TIPO_CHAT em USUARIOS +-- ============================================================ +ALTER TABLE USUARIOS ADD USU_TIPO_CHAT CHAR(1) DEFAULT 'A'; + +-- ============================================================ +-- 2. Tabela CHATC2_INSTANCIAS +-- ============================================================ +CREATE TABLE CHATC2_INSTANCIAS ( + INS_CODIGO_ID INTEGER NOT NULL PRIMARY KEY, + INS_EMPRESA_ID INTEGER NOT NULL, + INS_NOME VARCHAR(100), + INS_URL VARCHAR(500), + INS_API_KEY VARCHAR(500), + INS_INSTANCE_NAME VARCHAR(100), + INS_STATUS CHAR(1) DEFAULT 'D', + INS_QR_CODE BLOB SUB_TYPE 0, + INS_DT_CONEXAO TIMESTAMP, + INS_DT_CADASTRO TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + INS_SITUACAO CHAR(1) DEFAULT 'A' +); + +-- ============================================================ +-- 3. Tabela CHATC2_EQUIPES +-- ============================================================ +CREATE TABLE CHATC2_EQUIPES ( + EQU_CODIGO_ID INTEGER NOT NULL PRIMARY KEY, + EQU_EMPRESA_ID INTEGER NOT NULL, + EQU_NOME VARCHAR(100), + EQU_ORDEM INTEGER DEFAULT 0, + EQU_SITUACAO CHAR(1) DEFAULT 'A' +); + +-- ============================================================ +-- 4. Tabela CHATC2_USU_EQUIPES +-- ============================================================ +CREATE TABLE CHATC2_USU_EQUIPES ( + EQU_EQUIPE_ID INTEGER NOT NULL, + EQU_USUARIO_ID INTEGER NOT NULL, + PRIMARY KEY (EQU_EQUIPE_ID, EQU_USUARIO_ID) +); + +-- ============================================================ +-- 5. Tabela CHATC2_ETIQUETAS +-- ============================================================ +CREATE TABLE CHATC2_ETIQUETAS ( + ETI_CODIGO_ID INTEGER NOT NULL PRIMARY KEY, + ETI_EMPRESA_ID INTEGER NOT NULL, + ETI_NOME VARCHAR(50), + ETI_COR VARCHAR(7) DEFAULT '#667eea', + ETI_SITUACAO CHAR(1) DEFAULT 'A' +); + +-- ============================================================ +-- 6. Tabela CHATC2_CONVERSAS +-- ============================================================ +CREATE TABLE CHATC2_CONVERSAS ( + CON_CODIGO_ID INTEGER NOT NULL PRIMARY KEY, + CON_EMPRESA_ID INTEGER NOT NULL, + CON_INSTANCIA_ID INTEGER, + CON_CLIENTE_ID INTEGER, + CON_NUMERO VARCHAR(20), + CON_NOME_CONTATO VARCHAR(100), + CON_STATUS CHAR(1) DEFAULT 'E', + CON_USUARIO_ID INTEGER, + CON_EQUIPE_ID INTEGER, + CON_DT_INICIO TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + CON_DT_FINAL TIMESTAMP, + CON_DT_ULTIMA_MSG TIMESTAMP, + CON_SAUDACAO_ENVIADA CHAR(1) DEFAULT 'N', + CON_CSAT_ENVIADO CHAR(1) DEFAULT 'N', + CON_PRIMEIRA_MSG TIMESTAMP, + CON_ORIGEM VARCHAR(20) DEFAULT 'whatsapp', + CON_SITUACAO CHAR(1) DEFAULT 'A' +); + +-- ============================================================ +-- 7. Tabela CHATC2_CONVERSAS_MENSAGENS +-- ============================================================ +CREATE TABLE CHATC2_CONVERSAS_MENSAGENS ( + CME_CODIGO_ID INTEGER NOT NULL PRIMARY KEY, + CME_CONVERSA_ID INTEGER NOT NULL, + CME_REMETENTE CHAR(1) DEFAULT 'C', + CME_USUARIO_ID INTEGER, + CME_MENSAGEM BLOB SUB_TYPE 1, + CME_TEXTO VARCHAR(4000), + CME_TIPO VARCHAR(20) DEFAULT 'text', + CME_DT_ENVIO TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + CME_PRIVADA CHAR(1) DEFAULT 'N', + CME_LIDA CHAR(1) DEFAULT 'N', + CME_MIDIA_ID INTEGER, + CME_SITUACAO CHAR(1) DEFAULT 'A' +); + +-- ============================================================ +-- 8. Tabela CHATC2_MENSAGENS_ATENDIMENTOS +-- ============================================================ +CREATE TABLE CHATC2_MENSAGENS_ATENDIMENTOS ( + MAT_CODIGO_ID INTEGER NOT NULL PRIMARY KEY, + MAT_CONVERSA_ID INTEGER, + MAT_MENSAGEM_ID INTEGER, + MAT_NOME_ARQUIVO VARCHAR(255), + MAT_TIPO_ARQUIVO VARCHAR(50), + MAT_ARQUIVO BLOB SUB_TYPE 0, + MAT_DT_CADASTRO TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + MAT_SITUACAO CHAR(1) DEFAULT 'A' +); + +-- ============================================================ +-- 9. Tabela CHATC2_CONVERSAS_ETIQUETAS +-- ============================================================ +CREATE TABLE CHATC2_CONVERSAS_ETIQUETAS ( + CET_CONVERSA_ID INTEGER NOT NULL, + CET_ETIQUETA_ID INTEGER NOT NULL, + PRIMARY KEY (CET_CONVERSA_ID, CET_ETIQUETA_ID) +); + +-- ============================================================ +-- 10. Tabela CHATC2_CSAT_AVALIACOES +-- ============================================================ +CREATE TABLE CHATC2_CSAT_AVALIACOES ( + CSA_CODIGO_ID INTEGER NOT NULL PRIMARY KEY, + CSA_CONVERSA_ID INTEGER, + CSA_EMPRESA_ID INTEGER, + CSA_CLIENTE_ID INTEGER, + CSA_NOTA INTEGER, + CSA_COMENTARIO VARCHAR(500), + CSA_DT_AVALIACAO TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +-- ============================================================ +-- 11. Tabela CHATC2_CONFIGURACOES_EMPRESA +-- ============================================================ +CREATE TABLE CHATC2_CONFIGURACOES_EMPRESA ( + CFE_EMPRESA_ID INTEGER NOT NULL PRIMARY KEY, + CFE_INSTANCIA_PADRAO_ID INTEGER, + CFE_FOTO_CELULAR CHAR(1) DEFAULT 'N', + CFE_SAUDACAO_ATIVA CHAR(1) DEFAULT 'S', + CFE_SAUDACAO_MENSAGEM VARCHAR(500), + CFE_CSAT_ATIVO CHAR(1) DEFAULT 'N', + CFE_CSAT_MENSAGEM VARCHAR(500) DEFAULT 'Avalie seu atendimento de 1 a 5 estrelas' +); + +-- ============================================================ +-- 12. EQU_ORDEM em CHATC2_EQUIPES +-- ============================================================ +ALTER TABLE CHATC2_EQUIPES ADD EQU_ORDEM INTEGER DEFAULT 0; + +-- ============================================================ +-- 13. Campos de triagem +-- ============================================================ +ALTER TABLE CHATC2_CONFIGURACOES_EMPRESA ADD CFE_ENVIAR_NOME_USUARIO CHAR(1) DEFAULT 'N'; +ALTER TABLE CHATC2_CONFIGURACOES_EMPRESA ADD CFE_TRIAGEM_ATIVA CHAR(1) DEFAULT 'N'; +ALTER TABLE CHATC2_CONFIGURACOES_EMPRESA ADD CFE_TRIAGEM_MSG_WELCOME VARCHAR(500); +ALTER TABLE CHATC2_CONFIGURACOES_EMPRESA ADD CFE_TRIAGEM_MSG_AFTER VARCHAR(500); +ALTER TABLE CHATC2_CONFIGURACOES_EMPRESA ADD CFE_TRIAGEM_BOLETO_NUMERO VARCHAR(10) DEFAULT '0'; + +-- ============================================================ +-- 14. CON_MENU_ESTADO em conversas +-- ============================================================ +ALTER TABLE CHATC2_CONVERSAS ADD CON_MENU_ESTADO VARCHAR(100); + +-- ============================================================ +-- 15. CON_ETIQUETAS_DESC em conversas +-- ============================================================ +ALTER TABLE CHATC2_CONVERSAS ADD CON_ETIQUETAS_DESC VARCHAR(500); + +-- ============================================================ +-- 16. Tabela CHATC2_MENUS_EMPRESA +-- ============================================================ +CREATE TABLE CHATC2_MENUS_EMPRESA ( + MNE_CODIGO_ID INTEGER NOT NULL PRIMARY KEY, + MNE_EMPRESA_ID INTEGER, + MNE_EQUIPE_ID INTEGER, + MNE_MENU_PAI_ID INTEGER, + MNE_ORDEM INTEGER DEFAULT 0, + MNE_TITULO VARCHAR(100), + MNE_TIPO CHAR(1) DEFAULT 'M', + MNE_TEXTO BLOB SUB_TYPE TEXT, + MNE_ACAO_ROTA VARCHAR(100), + MNE_ACAO_METODO VARCHAR(10), + MNE_ACAO_PROMPT VARCHAR(300), + MNE_SITUACAO CHAR(1) DEFAULT 'A' +); + +-- ============================================================ +-- 17. Novos campos em conversas +-- ============================================================ +ALTER TABLE CHATC2_CONVERSAS ADD CON_USUARIO_NOME VARCHAR(100); +ALTER TABLE CHATC2_CONVERSAS ADD CON_EQUIPE_NOME VARCHAR(100); + +-- ============================================================ +-- 18. Etiquetas nos menus +-- ============================================================ +ALTER TABLE CHATC2_MENUS_EMPRESA ADD MNE_ETIQUETA_IDS VARCHAR(200); + +-- ============================================================ +-- 19. Transcrição de áudio +-- ============================================================ +ALTER TABLE CHATC2_MENSAGENS_ATENDIMENTOS ADD MAT_TRANSCRICAO BLOB SUB_TYPE TEXT; + +-- ============================================================ +-- 20. Generators (sequences) +-- ============================================================ +CREATE GENERATOR GEN_CHATC2_CONVERSAS; +CREATE GENERATOR GEN_CONVERSAS_MENSAGENS; +CREATE GENERATOR GEN_MENSAGENS_ATENDIMENTOS; +CREATE GENERATOR GEN_CHATC2_EQUIPES; +CREATE GENERATOR GEN_CHATC2_ETIQUETAS; +CREATE GENERATOR GEN_CHATC2_INSTANCIAS; +CREATE GENERATOR GEN_CHATC2_MENUS_EMPRESA; +CREATE GENERATOR GEN_CHATC2_CSAT_AVALIACOES; +CREATE GENERATOR GEN_CHATC2_MOTIVOS_ATENDIMENTO; +CREATE GENERATOR GEN_CHATC2_AGENDAMENTOS; + +-- ============================================================ +-- 21. Índices +-- ============================================================ +CREATE INDEX IDX_CLIENTES_CELULAR ON CLIENTES (CLI_CELULAR); +CREATE INDEX IDX_CLIENTES_FONE1 ON CLIENTES (CLI_FONE1); +CREATE INDEX IDX_CLIENTES_FONE2 ON CLIENTES (CLI_FONE2); +CREATE INDEX IDX_CLIENTES_EMPRESA ON CLIENTES (CLI_EMPRESA_ID); +CREATE INDEX IDX_CONV_NUMERO_EMPRESA ON CHATC2_CONVERSAS (CON_NUMERO, CON_EMPRESA_ID); +CREATE INDEX IDX_CONV_STATUS ON CHATC2_CONVERSAS (CON_STATUS); + +-- ============================================================ +-- 22. Mensagem e etiqueta por equipe +-- ============================================================ +ALTER TABLE CHATC2_EQUIPES ADD EQU_MENSAGEM VARCHAR(500); +ALTER TABLE CHATC2_EQUIPES ADD EQU_ETIQUETA_ID INTEGER; + +-- ============================================================ +-- 23. Tabela de agendamentos +-- ============================================================ +CREATE TABLE CHATC2_CONVERSAS_AGENDAMENTOS ( + CAG_CODIGO_ID INTEGER NOT NULL PRIMARY KEY, + CAG_CONVERSA_ID INTEGER NOT NULL, + CAG_EMPRESA_ID INTEGER, + CAG_DATA DATE NOT NULL, + CAG_HORA TIME, + CAG_NOTA VARCHAR(300), + CAG_STATUS CHAR(1) DEFAULT 'P', + CAG_USUARIO_ID INTEGER, + CAG_DT_CRIACAO TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +-- ============================================================ +-- 24. Fluxo de resolução +-- ============================================================ +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' +); +ALTER TABLE CHATC2_CONFIGURACOES_EMPRESA ADD CFE_MOTIVO_VISUALIZAR CHAR(1) DEFAULT 'N'; +ALTER TABLE CHATC2_CONFIGURACOES_EMPRESA ADD CFE_MOTIVO_OBRIGATORIO CHAR(1) DEFAULT 'N'; +ALTER TABLE CHATC2_CONFIGURACOES_EMPRESA ADD CFE_RESOLUCAO_VISUALIZAR CHAR(1) DEFAULT 'N'; +ALTER TABLE CHATC2_CONFIGURACOES_EMPRESA ADD CFE_RESOLUCAO_OBRIGATORIO CHAR(1) DEFAULT 'N'; +ALTER TABLE CHATC2_CONFIGURACOES_EMPRESA ADD CFE_ENVIAR_BOLETO CHAR(1) DEFAULT 'N'; +ALTER TABLE CHATC2_CONFIGURACOES_EMPRESA ADD CFE_RESOLUCAO_SALVAR_MSC CHAR(1) DEFAULT 'N'; +ALTER TABLE CHATC2_CONVERSAS ADD CON_MOTIVO_ID INTEGER; +ALTER TABLE CHATC2_CONVERSAS ADD CON_RESOLUCAO VARCHAR(4000); + +-- ============================================================ +-- REGISTRA MIGRAÇÕES COMO EXECUTADAS +-- ============================================================ +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (1, 'USU_TIPO_CHAT'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (2, 'Tabela CHATC2_INSTANCIAS'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (3, 'Tabela CHATC2_EQUIPES'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (4, 'Tabela CHATC2_USU_EQUIPES'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (5, 'Tabela CHATC2_ETIQUETAS'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (6, 'Tabela CHATC2_CONVERSAS'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (7, 'Tabela CHATC2_CONVERSAS_MENSAGENS'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (8, 'Tabela CHATC2_MENSAGENS_ATENDIMENTOS'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (9, 'Tabela CHATC2_CONVERSAS_ETIQUETAS'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (10, 'Tabela CHATC2_CSAT_AVALIACOES'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (11, 'Tabela CHATC2_CONFIGURACOES_EMPRESA'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (12, 'EQU_ORDEM'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (13, 'Campos de triagem'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (14, 'CON_MENU_ESTADO'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (15, 'CON_ETIQUETAS_DESC'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (16, 'Tabela CHATC2_MENUS_EMPRESA'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (17, 'CON_USUARIO_NOME e CON_EQUIPE_NOME'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (18, 'MNE_ETIQUETA_IDS'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (19, 'MAT_TRANSCRICAO'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (20, 'Generators'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (21, 'Índices'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (22, 'Mensagem/etiqueta por equipe'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (23, 'Agendamentos'); +INSERT INTO CHATC2_CONTROLE_MIGRACOES (MIG_ID, MIG_DESCRICAO) VALUES (24, 'Fluxo de resolução');