-- ====================================================================
-- 0059_accessibility — Erklärung zur Barrierefreiheit (öffentlich)
-- ====================================================================
-- Optionale, pro Instanz editierbare Barrierefreiheitserklärung. Anders als
-- Impressum/Datenschutz ist sie NICHT für jede Instanz Pflicht (hängt von der
-- Einordnung des Betreibers ab) → opt-in: /barrierefreiheit + Footer-Link
-- erscheinen nur, wenn ein Text hinterlegt ist.
--
-- Kein Geheimnis — öffentliche Seite liest via anon. Grant-Muster wie 0058.

alter table public.site_settings
  add column if not exists accessibility_html text;

revoke all on public.site_settings from anon;

do $$
declare
  v_cols text;
begin
  select string_agg(quote_ident(column_name), ', ')
    into v_cols
  from information_schema.columns
  where table_schema = 'public'
    and table_name = 'site_settings'
    and column_name not in (
      'ai_anthropic_key', 'ai_openai_key', 'ai_openrouter_key',
      'apple_pass_cert_p12', 'apple_pass_passphrase', 'apple_pass_type_id',
      'google_wallet_service_account_json',
      'phone_api_token', 'phone_lookup_token', 'phone_webhook_secret',
      'license_key',
      'smtp_host', 'smtp_port', 'smtp_secure', 'smtp_user', 'smtp_pass',
      'smtp_from_email', 'smtp_from_name'
    );
  execute 'grant select (' || v_cols || ') on public.site_settings to anon';
end $$;
