authorize('update', $page); $page->load(['mailwizzConfig', 'weeztixConfig']); $config = $page->mailwizzConfig; $showWizard = $config === null || $request->boolean('wizard'); if ($showWizard && $config === null) { $requestedStep = min(4, max(1, (int) $request->query('step', 1))); if ($requestedStep !== 1) { return redirect() ->route('admin.pages.mailwizz.edit', ['page' => $page, 'wizard' => 1, 'step' => 1]); } } return view('admin.mailwizz.edit', compact('page', 'showWizard')); } public function update(UpdateMailwizzConfigRequest $request, PreregistrationPage $page): RedirectResponse { $validated = $request->validated(); if (($validated['api_key'] ?? '') === '' && $page->mailwizzConfig !== null) { unset($validated['api_key']); } DB::transaction(function () use ($page, $validated): void { $page->mailwizzConfig()->updateOrCreate( ['preregistration_page_id' => $page->id], array_merge($validated, ['preregistration_page_id' => $page->id]) ); }); return redirect() ->route('admin.pages.mailwizz.edit', $page) ->with('status', __('Mailwizz configuration saved.')); } public function destroy(PreregistrationPage $page): RedirectResponse { $this->authorize('update', $page); $page->mailwizzConfig()?->delete(); return redirect() ->route('admin.pages.mailwizz.edit', $page) ->with('status', __('Mailwizz integration removed.')); } }