-- ============================================================================
-- RAPPORT — Public Studio-Liste für Login-Dropdown
-- ============================================================================
-- Wenn auf einer Supabase-Instanz mehrere Firmen / Studios gehostet sind,
-- soll der Login-Screen vor Email+Passwort einen Dropdown zeigen: «In welches
-- Studio möchten Sie sich einloggen?». Dafür braucht das Frontend eine Liste
-- aller Studios — ohne dass jemand bereits eingeloggt sein muss.
--
-- RLS verhindert das normalerweise (`studios_member_access` nur für Member).
-- Diese SECURITY-DEFINER-Funktion umgeht RLS und liefert nur die öffentlichen
-- Identitäts-Felder (name, slug). Keine Tenant-Daten, kein Risiko.
--
-- Trade-Off: Studio-Namen sind in dem Sinne «öffentlich» — wer die Server-URL
-- kennt, kann sehen welche Firmen hier hosten. Bei einem Selfhosted-Setup für
-- 1-3 befreundete Studios ist das akzeptabel; bei einer Public-SaaS-Instanz
-- wäre das ein Re-Design wert.
-- ============================================================================

create or replace function list_studios()
  returns table(id uuid, name text, slug text)
  language sql
  security definer
  stable
as $$
  select id, name, slug from studios order by name;
$$;

grant execute on function list_studios() to anon, authenticated;
