Configurations for payment modules

This commit is contained in:
2026-07-29 12:37:48 +02:00
parent ab3d526217
commit 29db141b84
19 changed files with 436 additions and 19 deletions
@@ -3,6 +3,7 @@
namespace App\Resources;
use App\Models\AvailablePaymentMethod;
use App\Models\PaymentMethod;
use Illuminate\Http\Resources\Json\JsonResource;
class AvailablePaymentMethodResource extends JsonResource {
@@ -13,12 +14,21 @@ class AvailablePaymentMethodResource extends JsonResource {
}
public function toArray($request) : array {
// Wird die Instanz über Event::paymentMethods() geladen, liegt die pro-Event-Konfiguration
// im Pivot; ansonsten (Tenant-Kontext) gilt die Konfiguration der Instanz selbst.
$pivot = $this->availablePaymentMethod->pivot ?? null;
$configuration = $pivot !== null
? ($pivot->configuration ?? [])
: ($this->availablePaymentMethod->configuration ?? []);
return [
'id' => $this->availablePaymentMethod->id,
'slug' => $this->availablePaymentMethod->slug,
'name' => $this->availablePaymentMethod->name,
'description' => $this->availablePaymentMethod->description,
'active' => $this->availablePaymentMethod->active,
'configuration' => (object) $configuration,
'optionsSchema' => PaymentMethod::optionsFor($this->availablePaymentMethod->slug),
];
}
}