*/ public function rules(): array { /** @var EventAddonCatalog $catalog */ $catalog = app(EventAddonCatalog::class); $keys = array_keys($catalog->all()); $inRule = $keys === [] ? 'string' : 'in:'.implode(',', $keys); return [ 'addon_key' => ['required', 'string', $inRule], 'quantity' => ['nullable', 'integer', 'min:1', 'max:50'], 'success_url' => ['nullable', 'url'], 'cancel_url' => ['nullable', 'url'], 'accepted_terms' => ['required', 'boolean', 'accepted'], // Add-ons werden sofort erbracht -> Widerruf erlischt nur mit ausdrücklicher Zustimmung 'accepted_waiver' => ['required', 'boolean', 'accepted'], ]; } }