mirror of
https://github.com/rodtanci/Disparador-de-Campanha-Chatwoot-Evolution.git
synced 2025-07-13 07:14:48 -06:00
Update README.md
This commit is contained in:
parent
14f8521c6c
commit
717ce79419
121
README.md
121
README.md
@ -154,127 +154,6 @@ Antes de iniciar, certifique-se de que você já tem instalado:
|
||||
);
|
||||
```
|
||||
|
||||
## 🛠️ OBRIGATORIO ❗ - 🚨 CORREÇÃO NO BANCO DE DADOS DO CHATWOOT ⚠️
|
||||
### Após aplicar esta correção é recomendavel recriar as etiquetas (marcadores).
|
||||
|
||||
- Foi notado que os ID da tabela "labels" não condizia com os id ta tabela "tags" sendo assim criei algumas funções e triggers que corrigem esse problema.
|
||||
|
||||
6. **Criação das Funções de Replicação, Exclusão e Atualização**
|
||||
|
||||
***Cria na raiz do banco de dados***
|
||||
|
||||
**Função para replicar inserções:**
|
||||
|
||||
```sql
|
||||
CREATE OR REPLACE FUNCTION public.replicate_label_to_tags()
|
||||
RETURNS trigger
|
||||
LANGUAGE 'plpgsql'
|
||||
COST 100
|
||||
VOLATILE NOT LEAKPROOF
|
||||
AS $BODY$
|
||||
BEGIN
|
||||
-- Verifica se já existe um registro em tags para este label_id
|
||||
IF NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM public.tags
|
||||
WHERE labels_id = NEW.id
|
||||
) THEN
|
||||
INSERT INTO public.tags (labels_id, name, account_id)
|
||||
VALUES (NEW.id, NEW.title, NEW.account_id);
|
||||
END IF;
|
||||
RETURN NEW;
|
||||
END;
|
||||
$BODY$;
|
||||
|
||||
ALTER FUNCTION public.replicate_label_to_tags()
|
||||
OWNER TO postgres;
|
||||
```
|
||||
|
||||
**Função para replicar exclusões:**
|
||||
|
||||
```sql
|
||||
CREATE OR REPLACE FUNCTION public.delete_label_from_tags()
|
||||
RETURNS trigger
|
||||
LANGUAGE 'plpgsql'
|
||||
COST 100
|
||||
VOLATILE NOT LEAKPROOF
|
||||
AS $BODY$
|
||||
BEGIN
|
||||
DELETE FROM public.tags
|
||||
WHERE labels_id = OLD.id;
|
||||
|
||||
RETURN OLD;
|
||||
END;
|
||||
$BODY$;
|
||||
|
||||
ALTER FUNCTION public.delete_label_from_tags()
|
||||
OWNER TO postgres;
|
||||
```
|
||||
|
||||
**Função para replicar atualizações:**
|
||||
|
||||
```sql
|
||||
CREATE OR REPLACE FUNCTION public.update_label_to_tag()
|
||||
RETURNS trigger
|
||||
LANGUAGE 'plpgsql'
|
||||
COST 100
|
||||
VOLATILE NOT LEAKPROOF
|
||||
AS $BODY$
|
||||
BEGIN
|
||||
UPDATE public.tags
|
||||
SET name = NEW.title,
|
||||
account_id = NEW.account_id -- opcional, se quiser atualizar também a conta
|
||||
WHERE labels_id = NEW.id;
|
||||
|
||||
RETURN NEW;
|
||||
END;
|
||||
$BODY$;
|
||||
|
||||
ALTER FUNCTION public.update_label_to_tag()
|
||||
OWNER TO postgres;
|
||||
```
|
||||
|
||||
6. **Criação dos Indices e Triger**
|
||||
|
||||
|
||||
**Esse índice garante que não possa haver duas tags com o mesmo nome (name) dentro da mesma conta (account_id). Ou seja, é uma restrição de unicidade por conta, impedindo duplicações acidentais.**
|
||||
|
||||
```sql
|
||||
-- 1) Remova o índice antigo (se existir)
|
||||
DROP INDEX IF EXISTS public.index_tags_on_name;
|
||||
|
||||
-- 2) Crie o novo índice único incluindo account_id
|
||||
CREATE UNIQUE INDEX IF NOT EXISTS index_tags_on_name_account
|
||||
ON public.tags
|
||||
USING btree (
|
||||
name COLLATE pg_catalog."default" ASC NULLS LAST,
|
||||
account_id ASC NULLS LAST
|
||||
)
|
||||
TABLESPACE pg_default;
|
||||
```
|
||||
|
||||
**Sempre que uma nova etiqueta (label) for criada, deletada ou removida no Chatwoot, esse gatilho automaticamente chama uma função que copia ou sincroniza essa etiqueta com a tabela de tags, que provavelmente é usada de forma mais genérica no sistema (como busca, filtros, etc.).**
|
||||
|
||||
```sql
|
||||
CREATE OR REPLACE TRIGGER trg_delete_label_from_tags
|
||||
AFTER DELETE
|
||||
ON public.labels
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION public.delete_label_from_tags();
|
||||
|
||||
CREATE OR REPLACE TRIGGER trigger_replicate_label_to_tags
|
||||
AFTER INSERT
|
||||
ON public.labels
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION public.replicate_label_to_tags();
|
||||
|
||||
CREATE OR REPLACE TRIGGER trigger_update_label_to_tag
|
||||
AFTER UPDATE
|
||||
ON public.labels
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION public.update_label_to_tag();
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### Passo 3: Importar Workflows no n8n
|
||||
|
Loading…
Reference in New Issue
Block a user