-- Neuer Vertragsstatus CANCELLED_CONFIRMED ("Gekündigt / bestätigt"): -- gesetzt, sobald eine Kündigungsbestätigung (Datum/Dokument) vorliegt. -- CANCELLED bleibt "Gekündigt / Bestätigung abwarten" (Kündigungsschreiben raus). -- MODIFY COLUMN ist idempotent (erneutes Ausführen ergibt denselben Zustand). ALTER TABLE `Contract` MODIFY COLUMN `status` ENUM('DRAFT','PENDING','ACTIVE','CANCELLED','CANCELLED_CONFIRMED','EXPIRED','DEACTIVATED','ONGOING') NOT NULL DEFAULT 'DRAFT'; -- Daten-Migration: bestehende CANCELLED-Verträge auf CANCELLED_CONFIRMED heben. -- Die alte Logik setzte CANCELLED NUR, wenn eine Kündigungsbestätigung -- (Datum ODER Dokument) vorlag – diese Verträge sind also bereits bestätigt. -- CANCELLED bedeutet ab jetzt "Bestätigung abwarten" (nur Kündigungsschreiben). UPDATE `Contract` SET `status` = 'CANCELLED_CONFIRMED' WHERE `status` = 'CANCELLED' AND (`cancellationConfirmationPath` IS NOT NULL OR `cancellationConfirmationDate` IS NOT NULL);