billing: Vertragsablauf bedingt beenden, Kundenmail nachholbar (Block 7, U11/U12)

- Beenden je Kunde in einer Transaktion mit erneuter Prüfung aller
  Auswahlbedingungen unter Zeilensperre; Ereignis nur für getroffene Zeilen
- Marker grandfathering_expired_at/-notified_at; Mail in zweiter Phase,
  bei Fehler beim Einplanen FAILURE und Nachholen im nächsten Lauf

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-09-18 12:03:04 +00:00
parent 05cf53e17d
commit eb95b3b830
4 changed files with 363 additions and 46 deletions

View file

@ -26,6 +26,8 @@ class UserPaymentOption extends Model
'billing_hold_at',
'stripe_subscription_id',
'cancelled_at',
'grandfathering_expired_at',
'grandfathering_notified_at',
];
protected function casts(): array
@ -38,6 +40,8 @@ class UserPaymentOption extends Model
'current_period_end' => 'date',
'billing_hold_at' => 'datetime',
'cancelled_at' => 'datetime',
'grandfathering_expired_at' => 'datetime',
'grandfathering_notified_at' => 'datetime',
];
}