Karte 12: Eskalationslogik für lange offene Fehlbestände
CI / backend-tests (push) Successful in 1m6s
CI / frontend-build (push) Successful in 21s

Zwei Stufen (Erinnerung an Materialverantwortliche, Eskalation an
Leitungsverantwortliche/Administration) mit Tracking-Zeitstempel je Stufe
gegen Mehrfachversand. Zeitschwellen in eskalation_konfiguration (DB,
Singleton), admin-editierbar über GET/PUT /eskalation/konfiguration - bewusst
nicht fix im Code. Prüflauf per POST /eskalation/pruefen angestoßen,
Scheduling (Cron/systemd-Timer) bleibt Betriebsaufgabe.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CVgbozhYmuEhiEJHffRXCV
This commit is contained in:
2026-09-04 18:04:52 +02:00
co-authored by Claude Sonnet 5
parent 7f06d1cecc
commit fb676a4a0b
12 changed files with 340 additions and 0 deletions
+4
View File
@@ -45,3 +45,7 @@ class Fehlbestand(Base):
fehlbestand_status_pg, nullable=False, default=FehlbestandStatus.offen
)
erledigt_am: Mapped[datetime | None] = mapped_column(TIMESTAMP(timezone=True))
# Karte 12: Eskalationsstufen-Tracking, damit dieselbe Stufe nicht bei jedem
# Prüflauf erneut verschickt wird (NULL = Stufe noch nicht ausgelöst).
erinnerung_gesendet_am: Mapped[datetime | None] = mapped_column(TIMESTAMP(timezone=True))
eskalation_gesendet_am: Mapped[datetime | None] = mapped_column(TIMESTAMP(timezone=True))