omnichannel-deploy/database/migrations/022_whatsapp_config.sql
Rafael Lopes c5ebbd50b5 REFACTOR: Estrutura de migrations com rastreamento e separação de seeds
- Introduz schema_migrations para controle de migrations já aplicadas:
  apenas arquivos novos rodam a cada deploy, eliminando re-execuções

- Renumera migrations de 001 a 026 sem lacunas (gaps em 013 e 024 fechados)

- Adiciona 008_mensagens.sql: CREATE TABLE que estava ausente do repositório

- Corrige idempotência de 015_configurable_triage_flow:
  adiciona UNIQUE (flow_id, label) e (audience_id, label) e targets
  explícitos no ON CONFLICT que antes duplicava dados a cada deploy

- Separa dados de demonstração em database/seeds/ (só roda em dev/uat)

- Remove seeds e migrations sem propósito:
  seeds/002 e 027 tornados obsoletos com a remoção dos opening templates

- Atualiza deploy-dev.yml: loop com checagem de tracking + passo de seeds
2026-07-24 15:22:26 -03:00

19 lines
784 B
SQL

-- Migration 025: Configuração da integração WhatsApp (Meta API)
CREATE TABLE IF NOT EXISTS whatsapp_config (
id SERIAL PRIMARY KEY,
access_token TEXT,
phone_number_id VARCHAR(50),
api_version VARCHAR(20) NOT NULL DEFAULT 'v25.0',
webhook_token VARCHAR(255),
updated_at TIMESTAMP NOT NULL DEFAULT NOW(),
updated_by INTEGER REFERENCES usuarios(id) ON DELETE SET NULL
);
-- Garante que exista no máximo uma linha de configuração
CREATE UNIQUE INDEX IF NOT EXISTS whatsapp_config_singleton ON whatsapp_config ((TRUE));
-- Linha inicial vazia para facilitar o UPDATE posterior
INSERT INTO whatsapp_config (access_token, phone_number_id, api_version, webhook_token)
VALUES (NULL, NULL, 'v25.0', NULL)
ON CONFLICT DO NOTHING;