Files
teamvis-selfhost/supabase/migrations/0050_employee_extra_fields.sql
T
2026-06-25 19:54:40 +02:00

26 lines
1.4 KiB
SQL

-- ====================================================================
-- 0050_employee_extra_fields — Frei definierbare Zusatzangaben
-- ====================================================================
-- Mitarbeiter können beliebig viele weitere Telefonnummern und private
-- Angaben hinterlegen, jeweils ein-/ausblendbar. Statt vieler fester
-- Spalten eine JSONB-Liste:
-- [{ "id": "f0", "kind": "phone|mobile|email|address|text",
-- "label": "Festnetz privat", "value": "...", "visible": true }, …]
--
-- Sichtbarkeit wird wie bei show_mobile serverseitig im Render/vCard
-- gefiltert (visibleExtraFields). Die öffentliche Karte liest seit 0045
-- ohnehin per Service-Role — anon braucht die Spalte nicht und soll sie
-- (ausgeblendete, ggf. private Werte) auch nicht lesen können.
alter table public.employees
add column if not exists extra_fields jsonb not null default '[]'::jsonb;
comment on column public.employees.extra_fields is
'Frei definierbare Zusatzangaben (weitere Telefonnummern, private Angaben). '
'Liste von {id, kind, label, value, visible}. Sichtbarkeit pro Eintrag; '
'serverseitige Filterung im Render/vCard. Siehe lib/extra-fields.ts.';
-- anon darf die Spalte nicht direkt lesen (könnte ausgeblendete/private
-- Einträge enthalten). REVOKE auf nicht vorhandenen Grant ist ein No-op.
revoke select (extra_fields) on public.employees from anon;