-- ============================================================ -- 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 (já incluso no CREATE TABLE acima) -- ============================================================ -- Já existe. Pule este comando. -- ============================================================ -- 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');