Auto-Vertragsstatus: nightly EXPIRED + Kündigungsbestätigung → CANCELLED
- Neuer Scheduler (02:00 + Catch-up 60s nach Start): alle ACTIVE-Verträge mit endDate < heute werden auf EXPIRED umgestellt. Audit-Log pro Vertrag. - Upload cancellationConfirmationPath: Vertrag wechselt von ACTIVE → CANCELLED (mit Audit-Log). "Options"-Upload triggert bewusst nicht, da für Vertragsänderungen gedacht, nicht für echte Kündigungen. - Keine neuen Statuswerte. "Kündigung gesendet vs. bestätigt" bleibt über die getrennten Felder cancellationSentDate / cancellationConfirmationDate lesbar, Status bleibt bis zur Bestätigung auf ACTIVE. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -97,6 +97,17 @@ isolierte Instanz (keine Multi-Tenancy im Code), Provisioning + Abrechnung
|
||||
|
||||
## ✅ Erledigt
|
||||
|
||||
- [x] **🔄 Automatische Vertrags-Status-Übergänge**
|
||||
- Nightly-Cron (02:00 + Catch-up 60s nach Start): alle Verträge mit
|
||||
`status=ACTIVE` und `endDate < heute` → `EXPIRED` (mit Audit-Log).
|
||||
- Beim Upload der Kündigungsbestätigung (`cancellationConfirmationPath`):
|
||||
wenn Vertrag aktuell `ACTIVE` → auf `CANCELLED` setzen (Audit-Log).
|
||||
Der "Optionen"-Upload löst den Wechsel bewusst NICHT aus, da er für
|
||||
Vertragsänderungen (nicht echte Kündigungen) gedacht ist.
|
||||
- Keine neuen Status eingeführt: `cancellationSentDate` vs.
|
||||
`cancellationConfirmationDate` genügen, um "gesendet vs. bestätigt"
|
||||
abzubilden. `ACTIVE` bleibt bis zur Bestätigung.
|
||||
|
||||
- [x] **🛡️ Security-Review + Hardening vor Production-Deployment (3 Runden)**
|
||||
- Vollständiger Review aller kritischen Bereiche, dokumentiert in **[docs/SECURITY-REVIEW.md](../docs/SECURITY-REVIEW.md)**
|
||||
- **Runde 1 – 6 kritische + 2 wichtige Findings gefixt:**
|
||||
|
||||
Reference in New Issue
Block a user