presseportale/app/Exceptions/ReviewLimitException.php
Kevin Adametz 3e8844245d 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>
2026-06-17 14:19:37 +00:00

19 lines
526 B
PHP

<?php
namespace App\Exceptions;
use RuntimeException;
/**
* Wird geworfen, wenn das Prüf-Tageslimit (Burst-Schutz) erreicht ist. Anders
* als ein leeres Monats-Freikontingent ist das eine harte Bremse: sie lässt
* sich nicht per Credit überbrücken, sondern erst am Folgetag wieder lösen.
*/
class ReviewLimitException extends RuntimeException
{
public function __construct(
public readonly int $dailyLimit,
) {
parent::__construct("Prüf-Tageslimit erreicht ({$dailyLimit}/Tag).");
}
}