Pruefzaehler + Pruefkontingent (Decision-Update Phase-2 vorgezogen)

Eigener Pruef-Zaehler, getrennt von der Credit-Wallet (Paragraph 4.2/4.3):

- review_checks Ledger (eine Zeile je Pruefung, source free|credit,
  charged_credits), aggregiert pro Account/Monat statt pro PM
- ReviewCheckService: Tageslimit (harte Bremse, nicht freikaufbar) ->
  Monats-Freikontingent (tier-gestaffelt 4/12/30/60/120) -> Overflow
  zieht 1 Credit/Pruefung aus der Wallet
- ReviewLimitException fuer das erreichte Tageslimit

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-06-17 14:19:37 +00:00
parent b63cd26326
commit 3e8844245d
8 changed files with 387 additions and 0 deletions

View file

@ -0,0 +1,21 @@
<?php
namespace App\Enums;
/**
* Herkunft einer Prüfung: aus dem monatlichen Freikontingent (Free) oder als
* per Credit nachgezogene Overflow-Prüfung (Credit).
*/
enum ReviewCheckSource: string
{
case Free = 'free';
case Credit = 'credit';
public function label(): string
{
return match ($this) {
self::Free => 'Freikontingent',
self::Credit => 'Credit (Overflow)',
};
}
}