-- Multi-Standort: Stadtwerke / Konzerne haben oft mehrere Standorte -- (Werk, Verwaltung, Außenstelle). Mitarbeiter werden einem Standort -- zugeordnet, im Admin-Verzeichnis und Organigramm filterbar. -- ==================================================================== -- Optional: ein Standort kann eine eigene Anschrift haben (Adresse, -- PLZ, Stadt). Die Mitarbeiter-Adresse hat aber Vorrang, wenn sie -- gepflegt ist. create table if not exists public.locations ( id uuid primary key default gen_random_uuid(), slug text not null unique, name text not null, short_name text, street text, postal_code text, city text, sort_order integer not null default 0, created_at timestamptz not null default now(), updated_at timestamptz not null default now() ); create index if not exists locations_sort_order_idx on public.locations (sort_order, name); drop trigger if exists trg_locations_updated_at on public.locations; create trigger trg_locations_updated_at before update on public.locations for each row execute function public.set_updated_at(); alter table public.employees add column if not exists location_id uuid references public.locations(id) on delete set null; create index if not exists employees_location_id_idx on public.employees (location_id); grant select (location_id) on public.employees to anon; alter table public.locations enable row level security; -- Service-Role-only — anon braucht den Standort nicht direkt; wenn die -- Karte ihn anzeigt, hilft App-Code die Auflösung zu machen.