-- ═══════════════════════════════════════════════════════════════════════════
-- agendador_check_email
-- Verifica se um e-mail já possui solicitação anterior para este agendador
-- SECURITY DEFINER → anon pode chamar sem burlar RLS diretamente
-- Execute no Supabase SQL Editor
-- ═══════════════════════════════════════════════════════════════════════════

CREATE OR REPLACE FUNCTION public.agendador_check_email(
  p_slug  text,
  p_email text
)
RETURNS boolean
LANGUAGE plpgsql
SECURITY DEFINER
SET search_path = public
AS $$
DECLARE
  v_owner_id uuid;
BEGIN
  SELECT c.owner_id INTO v_owner_id
  FROM public.agendador_configuracoes c
  WHERE c.link_slug = p_slug AND c.ativo = true
  LIMIT 1;

  IF v_owner_id IS NULL THEN RETURN false; END IF;

  RETURN EXISTS (
    SELECT 1 FROM public.agendador_solicitacoes s
    WHERE s.owner_id = v_owner_id
      AND lower(s.paciente_email) = lower(trim(p_email))
    LIMIT 1
  );
END;
$$;

GRANT EXECUTE ON FUNCTION public.agendador_check_email(text, text) TO anon, authenticated;
