Files
patrickandClaude Sonnet 5 da6cfd8535
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
VOR-02: vermerke notizen an akte vorgang
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-23 09:31:02 +02:00

27 lines
1.0 KiB
PL/PgSQL

-- VOR-02: Freitext-Vermerke an einer Akte sind nach dem Speichern
-- unveraenderlich (Akzeptanzkriterium 1), analog zum append-only-Muster aus
-- 0004_history_append_only fuer workflow_instance_history.
CREATE TABLE case_notes (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
case_id UUID NOT NULL REFERENCES case_files(id) ON DELETE CASCADE,
author TEXT NOT NULL CHECK (author <> ''),
body TEXT NOT NULL CHECK (body <> ''),
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
CREATE INDEX case_notes_case_id_created_at_idx ON case_notes (case_id, created_at);
CREATE OR REPLACE FUNCTION case_notes_append_only() RETURNS trigger AS $$
BEGIN
RAISE EXCEPTION 'case_notes ist unveraenderlich (append-only)';
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER case_notes_no_update
BEFORE UPDATE ON case_notes
FOR EACH ROW EXECUTE FUNCTION case_notes_append_only();
CREATE TRIGGER case_notes_no_delete
BEFORE DELETE ON case_notes
FOR EACH ROW EXECUTE FUNCTION case_notes_append_only();