-- =====================================================================
-- Igreja do Reino · Migração 003: quem pode chamar cada função
-- (pedido do verificador de segurança do Supabase)
-- =====================================================================
-- Funções de gatilho: ninguém chama pela API (os gatilhos continuam funcionando)
revoke execute on function public.registrar_auditoria() from public, anon, authenticated;
revoke execute on function public.marcar_mes_alterado() from public, anon, authenticated;
revoke execute on function public.validar_movimentacao() from public, anon, authenticated;
-- Verificação de papel: só quem está logado (usada pelas regras de acesso).
-- O aviso que sobra no Supabase ("signed-in users can execute") é esperado:
-- essas duas funções só dizem true/false sobre o próprio usuário logado.
revoke execute on function public.eh_gestor() from public, anon;
revoke execute on function public.pode_ler() from public, anon;
grant execute on function public.eh_gestor() to authenticated;
grant execute on function public.pode_ler() to authenticated;
-- Ações e consultas: só quem está logado
revoke execute on function public.transferir(smallint, smallint, numeric, date, text) from public, anon;
revoke execute on function public.pagar_conta(uuid, numeric, date, text, text) from public, anon;
revoke execute on function public.registrar_entrega(uuid, date, numeric, date, text) from public, anon;
revoke execute on function public.saldos_em(date, boolean) from public, anon;
grant execute on function public.transferir(smallint, smallint, numeric, date, text) to authenticated;
grant execute on function public.pagar_conta(uuid, numeric, date, text, text) to authenticated;
grant execute on function public.registrar_entrega(uuid, date, numeric, date, text) to authenticated;
grant execute on function public.saldos_em(date, boolean) to authenticated;
-- Visitante sem login não lê nada (as regras RLS já bloqueiam; isto fecha a porta antes)
revoke all on all tables in schema public from anon;
