-- Script para corrigir permissões da tabela messages
-- Execute este script se ainda estiver com problemas

-- 1. Remover RLS temporariamente para testar
ALTER TABLE public.messages DISABLE ROW LEVEL SECURITY;

-- 2. Garantir que a tabela existe e tem as colunas corretas
-- Se der erro, ignore e continue
DO $$ 
BEGIN
    -- Verificar se a tabela existe
    IF EXISTS (SELECT FROM pg_tables WHERE schemaname = 'public' AND tablename = 'messages') THEN
        RAISE NOTICE 'Tabela messages existe!';
    ELSE
        RAISE EXCEPTION 'Tabela messages não existe! Execute o script create-messages-table.sql primeiro.';
    END IF;
END $$;

-- 3. Garantir que anon e authenticated podem acessar
GRANT ALL ON public.messages TO anon;
GRANT ALL ON public.messages TO authenticated;
GRANT ALL ON public.messages TO service_role;

-- 4. Garantir que sequences podem ser usadas
GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO anon;
GRANT USAGE ON ALL SEQUENCES IN SCHEMA public TO authenticated;

-- 5. DESABILITAR RLS para permitir acesso sem autenticação Supabase
-- Isso é necessário porque a aplicação usa autenticação customizada
ALTER TABLE public.messages DISABLE ROW LEVEL SECURITY;

-- 6. Remover políticas antigas (já que RLS está desabilitado)
DROP POLICY IF EXISTS "Users can view their own messages" ON public.messages;
DROP POLICY IF EXISTS "Users can send messages" ON public.messages;
DROP POLICY IF EXISTS "Users can update received messages" ON public.messages;
DROP POLICY IF EXISTS "Users can delete sent messages" ON public.messages;
DROP POLICY IF EXISTS "Allow all for testing" ON public.messages;

-- Nota: Com RLS desabilitado, qualquer requisição com a chave anon pode acessar a tabela
-- Implemente validação de permissões na camada de aplicação (frontend/backend)

-- 8. Verificar se está funcionando
SELECT 'Configuração concluída! Teste o envio de mensagens agora.' as status;
