-- Entscheidung: der Mensch entscheidet, das System bereitet nur vor -- (siehe CLAUDE.md, Grundregel). Eine Entscheidung bezieht sich auf -- genau eine Bewertung (den Vorschlag, auf dessen Basis entschieden -- wurde) und friert optional ein gewähltes Werkzeug als vollständigen -- Datensatz ein (werkzeug_snapshot) — ein späterer Katalog-Wandel darf -- nicht rückwirkend verändern, worauf eine Entscheidung beruhte. -- Append-only wie bewertung/audit_log: eine Entscheidung wird nicht -- korrigiert, sondern durch eine neue Entscheidung auf Basis einer -- neuen Bewertung ersetzt (Neubewertung + erneute Entscheidung). CREATE TABLE entscheidung ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), antrag_id UUID NOT NULL REFERENCES antrag (id), bewertung_id UUID NOT NULL REFERENCES bewertung (id), entscheider_user_id UUID NOT NULL REFERENCES app_user (id), entscheidung TEXT NOT NULL CHECK (entscheidung IN ('genehmigt', 'genehmigt_mit_auflagen', 'abgelehnt', 'rueckfrage')), werkzeug_id UUID REFERENCES werkzeug (id), werkzeug_snapshot JSONB, begruendung TEXT NOT NULL DEFAULT '', gueltig_bis TIMESTAMPTZ, created_at TIMESTAMPTZ NOT NULL DEFAULT now() ); CREATE TRIGGER entscheidung_append_only BEFORE UPDATE OR DELETE ON entscheidung FOR EACH ROW EXECUTE FUNCTION forbid_update_delete();