FEAT: Adiciona migrations para config WhatsApp e templates HSM
025: Tabela whatsapp_config com access_token, phone_number_id,
api_version e webhook_token (singleton via UNIQUE INDEX on TRUE)
026: waba_id na whatsapp_config; colunas HSM em whatsapp_templates:
language, meta_template_name, meta_template_id, meta_status,
header_type, header_text, footer_text, buttons (JSONB),
body_variables (JSONB)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
03d28495f0
commit
51eaaf0735
17
database/migrations/025_whatsapp_config.sql
Normal file
17
database/migrations/025_whatsapp_config.sql
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
-- Migration 025: Configuração da integração WhatsApp (Meta API)
|
||||||
|
CREATE TABLE 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 whatsapp_config_singleton ON whatsapp_config ((TRUE));
|
||||||
|
|
||||||
|
-- Linha inicial vazia para facilitar o U PDATE posterior
|
||||||
|
INSERT INTO whatsapp_config (access_token, phone_number_id, api_version, webhook_token)
|
||||||
|
VALUES (NULL, NULL, 'v25.0', NULL);
|
||||||
29
database/migrations/026_whatsapp_templates_hsm.sql
Normal file
29
database/migrations/026_whatsapp_templates_hsm.sql
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
-- Migration 026: WhatsApp HSM Templates + WABA ID
|
||||||
|
-- Adiciona suporte a templates HSM da Meta com botões, header, footer e variáveis estruturadas.
|
||||||
|
|
||||||
|
-- WABA ID na config (necessário para gerenciar templates via API)
|
||||||
|
ALTER TABLE whatsapp_config
|
||||||
|
ADD COLUMN IF NOT EXISTS waba_id VARCHAR(100);
|
||||||
|
|
||||||
|
-- Colunas HSM na tabela de templates
|
||||||
|
ALTER TABLE whatsapp_templates
|
||||||
|
ADD COLUMN IF NOT EXISTS language VARCHAR(10) NOT NULL DEFAULT 'pt_BR',
|
||||||
|
ADD COLUMN IF NOT EXISTS meta_template_name VARCHAR(512),
|
||||||
|
ADD COLUMN IF NOT EXISTS meta_template_id VARCHAR(100),
|
||||||
|
ADD COLUMN IF NOT EXISTS meta_status VARCHAR(50),
|
||||||
|
ADD COLUMN IF NOT EXISTS header_type VARCHAR(20),
|
||||||
|
ADD COLUMN IF NOT EXISTS header_text TEXT,
|
||||||
|
ADD COLUMN IF NOT EXISTS footer_text TEXT,
|
||||||
|
ADD COLUMN IF NOT EXISTS buttons JSONB,
|
||||||
|
ADD COLUMN IF NOT EXISTS body_variables JSONB;
|
||||||
|
|
||||||
|
-- Templates existentes sem meta_template_name ficam como rascunho
|
||||||
|
UPDATE whatsapp_templates
|
||||||
|
SET status = 'draft'
|
||||||
|
WHERE status IN ('approved', 'meta_review', 'admin_review')
|
||||||
|
AND meta_template_name IS NULL;
|
||||||
|
|
||||||
|
-- Índice único para meta_template_name (ignora NULLs)
|
||||||
|
CREATE UNIQUE INDEX IF NOT EXISTS whatsapp_templates_meta_name_idx
|
||||||
|
ON whatsapp_templates (meta_template_name)
|
||||||
|
WHERE meta_template_name IS NOT NULL;
|
||||||
Loading…
Reference in New Issue
Block a user