# #033 Erneut rotieren nach abgebrochener Rotation **Status:** erledigt **Meilenstein:** v1.0.0 **Labels:** backend, datenbank **Geschätzt:** 1 h **Tatsächlich:** 0,5 h ## Ziel Nach einer abgebrochenen Rotation (#032) lässt sich derselbe Schlüssel erneut rotieren, statt dass ein neuer Schlüssel angelegt, zugewiesen und der alte widerrufen werden muss. ## Aufgaben - [x] `vorgaengerId` nicht mehr eindeutig; stattdessen partieller Index: je Vorgänger höchstens ein Nachfolger, der weder widerrufen ist noch gerade widerrufen wird - [x] Relation 1:n (`nachfolgerListe`); maßgeblich ist der jüngste Nachfolger (`JUENGSTER`, `mitNachfolger`) - [x] Neue Rotation erst, wenn der Abbruch abgeschlossen ist (Nachfolger WIDERRUFEN) - [x] Schlüsselseite: „Rotieren“ wieder anbieten, Hinweistext angepasst ## Akzeptanzkriterien - [x] DB-Test: Abbruch → während des Abbruchs keine neue Rotation → danach zweiter Nachfolger, Kette zeigt ihn - [x] DB-Test: die Datenbank lehnt einen zweiten offenen Nachfolger ab - [x] E2E: nach dem Abbruch führt „Rotieren“ wieder zu Schritt 1 ## Abhängigkeiten #023, #032 ## Notizen / Entscheidungen - **Abgebrochene Nachfolger bleiben** mit `vorgaengerId` in der Historie; die Rotationskette folgt dem jüngsten Nachfolger. - **Kein neuer Rotations-Zustand:** Ist der jüngste Nachfolger vollständig widerrufen und der alte nicht ROTIERT, steht die Rotation wieder bei Schritt 0. - Prisma kennt partielle Indizes nicht; `migrate diff` bleibt trotzdem leer, weil der Index nur in der Migration steht (wie beim Instanz-Standard).