-- =====================================================================
--  TeeCup — migrasjon 076
--  Offentlig/delt Order of Merit-visning (ADR-076, "Steg 3" av OOM sin
--  gjenstår-liste fra ADR-043/074/075)
-- =====================================================================
--  Kun én ny bro-funksjon -- order_of_merit.public_visible finnes
--  allerede fra migrasjon 055, aldri brukt til noe før nå.
-- =====================================================================

\set ON_ERROR_STOP on

-- ---------------------------------------------------------------------
--  public_order_of_merit_by_id() -- samme mønster som public_org_by_slug
--  (009)/public_tournament_by_code (011): SECURITY DEFINER-bro, eneste
--  måte et /public/...-endepunkt får vite riktig org-kontekst FØR RLS
--  kan håndheve noe. Returnerer NULL for BÅDE "finnes ikke" og "finnes,
--  men er ikke offentlig" -- samme anti-enumerering som resten.
-- ---------------------------------------------------------------------

CREATE FUNCTION public_order_of_merit_by_id(p_id uuid)
RETURNS uuid
LANGUAGE sql
SECURITY DEFINER
SET search_path = public
STABLE
AS $$
    SELECT organization_id FROM order_of_merit WHERE id = p_id AND public_visible = true;
$$;

GRANT EXECUTE ON FUNCTION public_order_of_merit_by_id(uuid) TO teecup_app;
