-- Script simplificado para criar tabela messages -- SEM Row Level Security (RLS) para autenticação customizada -- 1. Remover tabela antiga se existir DROP TABLE IF EXISTS public.messages CASCADE; -- 2. Criar tabela de mensagens CREATE TABLE public.messages ( id UUID DEFAULT gen_random_uuid() PRIMARY KEY, sender_id TEXT NOT NULL, receiver_id TEXT NOT NULL, content TEXT NOT NULL, read BOOLEAN DEFAULT false, created_at TIMESTAMPTZ DEFAULT now(), updated_at TIMESTAMPTZ DEFAULT now() ); -- 3. Criar índices para performance CREATE INDEX idx_messages_sender ON public.messages(sender_id); CREATE INDEX idx_messages_receiver ON public.messages(receiver_id); CREATE INDEX idx_messages_created_at ON public.messages(created_at DESC); CREATE INDEX idx_messages_conversation ON public.messages(sender_id, receiver_id, created_at DESC); -- 4. DESABILITAR RLS (importante para autenticação customizada) ALTER TABLE public.messages DISABLE ROW LEVEL SECURITY; -- 5. Garantir permissões para anon (chave pública) GRANT ALL ON public.messages TO anon; GRANT ALL ON public.messages TO authenticated; GRANT ALL ON public.messages TO service_role; -- 6. Garantir que sequences podem ser usadas GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO anon; GRANT USAGE, SELECT ON ALL SEQUENCES IN SCHEMA public TO authenticated; -- 7. Verificar SELECT 'Tabela messages criada com sucesso!' as status; SELECT COUNT(*) as total_mensagens FROM public.messages;