-- Criar tabela para histórico de mensagens WhatsApp CREATE TABLE IF NOT EXISTS mensagens_whatsapp ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), telefone_cliente VARCHAR(20) NOT NULL, cliente_nome VARCHAR(255), mensagem TEXT NOT NULL, tipo VARCHAR(20) NOT NULL CHECK (tipo IN ('enviada', 'recebida')), status VARCHAR(20) DEFAULT 'enviada' CHECK (status IN ('enviando', 'enviada', 'entregue', 'lida', 'erro')), evolution_message_id VARCHAR(255), created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(), updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW() ); -- Índices para performance CREATE INDEX IF NOT EXISTS idx_mensagens_telefone ON mensagens_whatsapp(telefone_cliente); CREATE INDEX IF NOT EXISTS idx_mensagens_created_at ON mensagens_whatsapp(created_at); CREATE INDEX IF NOT EXISTS idx_mensagens_tipo ON mensagens_whatsapp(tipo); -- Trigger para atualizar updated_at CREATE OR REPLACE FUNCTION update_mensagens_whatsapp_updated_at() RETURNS TRIGGER AS $$ BEGIN NEW.updated_at = NOW(); RETURN NEW; END; $$ language 'plpgsql'; CREATE TRIGGER update_mensagens_whatsapp_updated_at BEFORE UPDATE ON mensagens_whatsapp FOR EACH ROW EXECUTE FUNCTION update_mensagens_whatsapp_updated_at(); -- Comentários para documentação COMMENT ON TABLE mensagens_whatsapp IS 'Histórico de mensagens WhatsApp enviadas e recebidas'; COMMENT ON COLUMN mensagens_whatsapp.telefone_cliente IS 'Número do telefone do cliente (apenas números)'; COMMENT ON COLUMN mensagens_whatsapp.tipo IS 'Tipo da mensagem: enviada (pelo sistema) ou recebida (do cliente)'; COMMENT ON COLUMN mensagens_whatsapp.status IS 'Status da mensagem: enviando, enviada, entregue, lida, erro'; COMMENT ON COLUMN mensagens_whatsapp.evolution_message_id IS 'ID da mensagem na Evolution API para tracking';