widerrufsbelehrung hinzugefügt und in den checkout mit eingebunden. refund ins backend eingebaut.

This commit is contained in:
Codex Agent
2025-12-07 11:57:05 +01:00
parent e092f72475
commit 1d3d49e05a
44 changed files with 1143 additions and 71 deletions

View File

@@ -26,6 +26,8 @@ class EventAddonCheckoutService
{
$addonKey = $payload['addon_key'] ?? null;
$quantity = max(1, (int) ($payload['quantity'] ?? 1));
$acceptedWaiver = (bool) ($payload['accepted_waiver'] ?? false);
$acceptedTerms = (bool) ($payload['accepted_terms'] ?? false);
if (! $addonKey || ! $this->catalog->find($addonKey)) {
throw ValidationException::withMessages([
@@ -60,6 +62,9 @@ class EventAddonCheckoutService
'addon_key' => $addonKey,
'addon_intent' => $addonIntent,
'quantity' => $quantity,
'legal_version' => $this->resolveLegalVersion(),
'accepted_terms' => $acceptedTerms ? '1' : '0',
'accepted_waiver' => $acceptedWaiver ? '1' : '0',
];
$requestPayload = array_filter([
@@ -97,6 +102,11 @@ class EventAddonCheckoutService
'metadata' => array_merge($metadata, [
'increments' => $increments,
'provider_payload' => $response,
'consents' => [
'legal_version' => $metadata['legal_version'],
'accepted_terms_at' => $acceptedTerms ? now()->toIso8601String() : null,
'digital_content_waiver_at' => $acceptedWaiver ? now()->toIso8601String() : null,
],
]),
'extra_photos' => ($increments['extra_photos'] ?? 0) * $quantity,
'extra_guests' => ($increments['extra_guests'] ?? 0) * $quantity,
@@ -109,4 +119,9 @@ class EventAddonCheckoutService
'id' => $checkoutId,
];
}
protected function resolveLegalVersion(): string
{
return config('app.legal_version', now()->toDateString());
}
}