Proof-PDF + Extra-PM-Verkauf ueber die Credit-Wallet (Decision-Update 2.1/2.3)

- ProofPdfService: Veroeffentlichungsnachweis 3 Credits pauschal, einmal pro
  PM (Zweitdownload kostenfrei); ProofPdfRenderer erzeugt das PDF on-demand
  aus vorhandenen PM-Daten (kein externer Renderer); GET-Download-Endpoint
  /admin/me/press-releases/{id}/nachweis hinter downloadProof-Policy + Kauf-Gate
- ExtraPmPurchaseService: tier-gestaffelter Nachkauf (19/15/12/10/8) aus der
  Wallet; verbucht als bezahlter SinglePurchase(ExtraPm) und greift damit in
  die bestehende Kontingent-/Slot-Mechanik. InsufficientCreditsException
  liefert das Mini-Checkout-Signal (required/available/shortfall)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-06-17 14:28:08 +00:00
parent 0ff874efc8
commit c89589beb0
8 changed files with 609 additions and 0 deletions

View file

@ -76,6 +76,16 @@ class PressReleasePolicy
return $user->canAccessAdmin() && $user->can('press-releases:publish');
}
/**
* Veröffentlichungsnachweis darf laden, wer die PM verwalten darf (Autor
* oder Firmenmitglied) bzw. ein Admin. Ob der Nachweis bereits gekauft
* wurde, prüft der ProofPdfService separat.
*/
public function downloadProof(User $user, PressRelease $pressRelease): bool
{
return $user->canAccessAdmin() || $this->canManage($user, $pressRelease);
}
/**
* Zugriff auf eine PM hat der Autor ODER ein Mitglied der zugeordneten
* Firma (Owner/Team-Mitglied). So sehen/bearbeiten Firmenkontakte – inkl.