37 lines
1.3 KiB
MySQL
37 lines
1.3 KiB
MySQL
|
|
-- ============================================================
|
||
|
|
-- 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);
|