TeamVis Self-Host-Bundle v0.31.0

This commit is contained in:
TeamVis Release
2026-06-25 19:54:40 +02:00
commit 6335367369
68 changed files with 3765 additions and 0 deletions
@@ -0,0 +1,47 @@
-- Verwaiste service_relations entfernen, wenn Bereiche/Stellen
-- gelöscht werden.
-- ====================================================================
-- service_relations.scope_id ist polymorph (org_unit oder position),
-- daher kein direkter FK möglich. Stattdessen Trigger, die nach Delete
-- auf den Quell-Tabellen die scope_id aufräumen.
--
-- Strategie: NULL-out (statt cascade-delete), damit die service_relation
-- als Datensatz erhalten bleibt — der Admin sieht im Audit, dass die
-- Verknüpfung früher existierte und die Quelle weg ist. Die App-UI
-- zeigt sie als "(Bereich/Stelle gelöscht)".
create or replace function public.cleanup_service_relations_org_unit()
returns trigger
language plpgsql
as $$
begin
update public.service_relations
set scope_id = null
where scope_kind = 'org_unit' and scope_id = OLD.id;
return OLD;
end;
$$;
create or replace function public.cleanup_service_relations_position()
returns trigger
language plpgsql
as $$
begin
update public.service_relations
set scope_id = null
where scope_kind = 'position' and scope_id = OLD.id;
return OLD;
end;
$$;
drop trigger if exists trg_cleanup_service_relations_org_unit
on public.org_units;
create trigger trg_cleanup_service_relations_org_unit
before delete on public.org_units
for each row execute function public.cleanup_service_relations_org_unit();
drop trigger if exists trg_cleanup_service_relations_position
on public.positions;
create trigger trg_cleanup_service_relations_position
before delete on public.positions
for each row execute function public.cleanup_service_relations_position();