presseportale/app/Services
Kevin Adametz be7d1799a5 WS-4: Bestandsschutz-Abrechnung – gekoppelte Kündigung + Admin-Sichtbarkeit
M1 (portalübergreifend) und M5 (04:30-Worker) verifiziert; M2 + M3 umgesetzt.

- M2 (Entscheidung: getrennte Rechnungen, gekoppelte Kündigung): neuer
  LegacySubscriptionService::cancelBundleFor() kündigt das gesamte
  Bestandsschutz-Bündel eines Kunden gemeinsam – keine Einzelkündigung. Kein
  Rechnungs-Schema-Umbau (jede Kondition behält ihre MAN-Rechnung).
- M3: Admin-Payments-Ansicht zeigt eine "Bestandsschutz-Posten"-Tabelle
  (Badge, Portal, Netto, nächste Fälligkeit, "Bündel (N)") + Bündel-Kündigung
  mit Bestätigungsmodal.
- Tests: tests/Feature/Billing/LegacyBundleTest.php (M1 cross-portal, M2 Bündel-
  Kündigung + Gate, M3 Admin-Liste + Kündigung). Detailplan WS-4 dokumentiert.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 15:20:18 +00:00
..
Admin 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
Api 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
Auth WS-2: Magic-Link für Firmen & Pressekontakte vereinheitlicht + Schreibzugriff 2026-06-16 12:55:49 +00:00
Billing WS-4: Bestandsschutz-Abrechnung – gekoppelte Kündigung + Admin-Sichtbarkeit 2026-06-16 15:20:18 +00:00
Customer User Panel: Phase-8-Abschluss, Titelbild/Lizenzen/Zeitzonen und KI-Pruef-Pipeline 2026-06-12 08:30:13 +00:00
Image User Panel: Phase-8-Abschluss, Titelbild/Lizenzen/Zeitzonen und KI-Pruef-Pipeline 2026-06-12 08:30:13 +00:00
Import WS-6: E-Mail-Verifizierung, Auth-Flow-Fixes & Legacy-Rollen-Sicherheitsfix 2026-06-16 08:16:41 +00:00
Newsletter 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
PressRelease Verlinkung & Backlinks: systemseitige rel-Auszeichnung (Decision-Update 11.06.) 2026-06-12 15:24:20 +00:00
CategoryService.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00
CurrentPortalContext.php 12-05-2026 Frontend dev 2026-05-12 18:32:33 +02:00