Vertrag: „Portaldaten nicht möglich / nicht benötigt"-Opt-out

Dritter Radio-Button in der Zugangsdaten-Card des Vertragsformulars.
Wenn gesetzt, unterdrückt das Cockpit die Warnung „Portal-Zugangs-
daten fehlen" für diesen Vertrag – für Anbieter ohne Portal oder
Kunden, die bewusst keine Zugangsdaten pflegen. Verstopft das
Cockpit sonst dauerhaft.

Neues Feld Contract.portalCredentialsNotRequired (Boolean, default
false) + idempotente Migration (ADD COLUMN IF NOT EXISTS). Bestand
bleibt auf false, Warnung greift wie bisher.

Beim Umschalten auf Opt-out werden portalUsername,
portalPasswordEncrypted und stressfreiEmailId server-seitig
explizit auf NULL gesetzt – Datenhygiene, damit keine verwaisten
Anmeldedaten in der DB stehen bleiben.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
2026-07-17 14:45:32 +02:00
co-authored by Claude Opus 4.7
parent aeecc3327f
commit dcdb3cb057
7 changed files with 132 additions and 35 deletions
@@ -0,0 +1,8 @@
-- Vertrag: „Portaldaten nicht möglich / nicht benötigt"-Marker.
-- Wenn gesetzt, unterdrückt das Cockpit die Warnung „Portal-Zugangsdaten
-- fehlen" für diesen Vertrag (Anbieter ohne Portal / Kunde bekommt keine
-- Zugangsdaten). Bestehende Verträge bleiben auf FALSE, damit die
-- Warnung wie bisher greift.
ALTER TABLE `Contract`
ADD COLUMN IF NOT EXISTS `portalCredentialsNotRequired` BOOLEAN NOT NULL DEFAULT FALSE;
+5
View File
@@ -765,6 +765,11 @@ model Contract {
stressfreiEmailId Int?
stressfreiEmail StressfreiEmail? @relation(fields: [stressfreiEmailId], references: [id])
// Portaldaten bewusst nicht hinterlegt (Anbieter hat kein Portal oder
// Kunde bekommt keine Zugangsdaten). Wenn true, unterdrückt das Cockpit
// die „Portal-Zugangsdaten fehlen"-Warnung für diesen Vertrag.
portalCredentialsNotRequired Boolean @default(false)
// Snooze: Vertrag zurückstellen bis Datum (für Cockpit)
nextReviewDate DateTime? // Erneute Prüfung am