T12: Depublikations-Checkout mit Tombstone (config-gated)
Kunden koennen eigene veroeffentlichte PMs kostenpflichtig aus der oeffentlichen Ansicht nehmen: Panel auf der PM-Detailseite (inkl. T1neu-Unternehmer-Checkbox und Doppelausweis netto/brutto), Stripe- Ad-hoc-Checkout wie Credit-Topups, Erfuellung im Webhook — die PM wechselt auf archived + depublished_at, die oeffentliche URL zeigt dauerhaft einen Tombstone (410 Gone, ohne Inhalte, mit ehrlichem Drittarchive-Hinweis). Doppelbuchungs-Bremse pro PM; Status-Log mit Quelle "depublication". Gate: ohne BILLING_DEPUBLICATION_PRICE_CENTS bleibt der Weg deaktiviert und /melden zeigt die neutrale Preisformulierung [EXTERN: Preis festlegen, O6]. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
2a9be7a9af
commit
198be381d6
16 changed files with 522 additions and 7 deletions
|
|
@ -6,13 +6,21 @@ use App\Http\Controllers\Controller;
|
|||
use App\Services\Web\ReleaseDetailPageData;
|
||||
use App\Support\WebPortalContext;
|
||||
use Illuminate\Contracts\View\View;
|
||||
use Illuminate\Http\Response;
|
||||
|
||||
class ReleaseDetailController extends Controller
|
||||
{
|
||||
// $edition stammt aus dem Gruppen-Prefix {edition} und steht positionsbedingt
|
||||
// vor {slug}; es wird hier nicht gebraucht, muss aber in der Signatur stehen.
|
||||
public function __invoke(string $edition, string $slug, ReleaseDetailPageData $pageData): View
|
||||
public function __invoke(string $edition, string $slug, ReleaseDetailPageData $pageData): View|Response
|
||||
{
|
||||
return view('web.release-detail', $pageData->build(WebPortalContext::fromRequest(), $slug));
|
||||
$data = $pageData->build(WebPortalContext::fromRequest(), $slug);
|
||||
|
||||
// T12: depublizierte PM → Tombstone mit 410 Gone (ohne Inhalte).
|
||||
if (isset($data['tombstone'])) {
|
||||
return response()->view('web.release-tombstone', [], 410);
|
||||
}
|
||||
|
||||
return view('web.release-detail', $data);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue