omnichannel-deploy/database/migrations/010_agenda_contatos.sql

37 lines
1.3 KiB
MySQL
Raw Normal View History

-- ============================================================
-- Migration 010: Agenda geral de contatos
-- Tabela: agenda_contatos
-- ============================================================
CREATE TABLE IF NOT EXISTS agenda_contatos (
chat_id VARCHAR(255) PRIMARY KEY,
phone VARCHAR(80) NOT NULL,
name VARCHAR(255),
company VARCHAR(255),
note TEXT,
updated_by_user_id INTEGER REFERENCES usuarios(id) ON DELETE SET NULL,
created_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP
);
DO $$
BEGIN
IF to_regclass('public.customer_contacts') IS NOT NULL THEN
INSERT INTO agenda_contatos (
chat_id, phone, name, company, note, updated_by_user_id, created_at, updated_at
)
SELECT chat_id, phone, name, company, note, updated_by_user_id, created_at, updated_at
FROM customer_contacts
ON CONFLICT (chat_id) DO UPDATE SET
phone = EXCLUDED.phone,
name = EXCLUDED.name,
company = EXCLUDED.company,
note = EXCLUDED.note,
updated_by_user_id = EXCLUDED.updated_by_user_id,
updated_at = EXCLUDED.updated_at;
END IF;
END $$;
CREATE INDEX IF NOT EXISTS idx_agenda_contatos_updated_at
ON agenda_contatos (updated_at DESC);