name('home'); Route::get('/dashboard', function () { return Inertia::render('dashboard'); })->middleware(['auth', 'verified'])->name('dashboard'); Route::get('/contact', [MarketingController::class, 'contactView'])->name('contact'); Route::post('/contact', [MarketingController::class, 'contact'])->name('contact.submit'); // Legal pages Route::get('/impressum', [LegalPageController::class, 'show']) ->name('impressum') ->defaults('slug', 'impressum'); Route::get('/datenschutz', [LegalPageController::class, 'show']) ->name('datenschutz') ->defaults('slug', 'datenschutz'); Route::get('/agb', [LegalPageController::class, 'show']) ->name('agb') ->defaults('slug', 'agb'); Route::get('/kontakt', function () { return Inertia::render('marketing/Kontakt'); })->name('kontakt'); Route::post('/kontakt', [MarketingController::class, 'contact'])->name('kontakt.submit'); Route::get('/blog', [MarketingController::class, 'blogIndex'])->name('blog'); Route::get('/blog/{slug}', [MarketingController::class, 'blogShow'])->name('blog.show'); Route::get('/packages', [MarketingController::class, 'packagesIndex'])->name('packages'); Route::get('/anlaesse/{type}', [MarketingController::class, 'occasionsType'])->name('anlaesse.type'); Route::get('/success/{packageId?}', [MarketingController::class, 'success'])->name('marketing.success'); Route::prefix('event-admin')->group(function () { $renderAdmin = fn () => view('admin'); Route::get('/auth/callback', $renderAdmin)->name('tenant.admin.auth.callback'); Route::get('/login', $renderAdmin)->name('tenant.admin.login'); Route::get('/logout', $renderAdmin)->name('tenant.admin.logout'); Route::get('/{view?}', $renderAdmin) ->where('view', '.*') ->name('tenant.admin.app'); }); Route::view('/event', 'guest')->name('guest.pwa.landing'); Route::view('/g/{token}', 'guest')->where('token', '.*')->name('guest.gallery'); Route::view('/e/{token}/{path?}', 'guest') ->where('token', '.*') ->where('path', '.*') ->name('guest.event'); Route::middleware('auth')->group(function () { Route::get('/buy/{packageId}', [MarketingController::class, 'buyPackages'])->name('marketing.buy'); }); Route::middleware('auth')->group(function () { Route::get('/tenant/events/{event}/photos/archive', EventPhotoArchiveController::class) ->name('tenant.events.photos.archive'); }); if (config('checkout.enabled')) { Route::get('/purchase-wizard/{package}', [CheckoutController::class, 'show'])->name('purchase.wizard'); Route::get('/checkout/{package}', [CheckoutController::class, 'show'])->name('checkout.show'); } else { Route::get('/purchase-wizard/{package}', function (Package $package) { return redirect()->route('packages', ['highlight' => $package->slug]); })->name('purchase.wizard'); Route::get('/checkout/{package}', function (Package $package) { return redirect()->route('packages', ['highlight' => $package->slug]); })->name('checkout.show'); } Route::post('/checkout/login', [CheckoutController::class, 'login'])->name('checkout.login'); Route::post('/checkout/register', [CheckoutController::class, 'register'])->name('checkout.register'); Route::get('/checkout/auth/google', [CheckoutGoogleController::class, 'redirect'])->name('checkout.google.redirect'); Route::get('/checkout/auth/google/callback', [CheckoutGoogleController::class, 'callback'])->name('checkout.google.callback'); Route::post('/stripe/create-payment-intent', [CheckoutController::class, 'createPaymentIntent'])->name('stripe.create-payment-intent'); Route::post('/stripe/confirm-payment', [CheckoutController::class, 'confirmPayment'])->name('stripe.confirm-payment'); Route::post('/checkout/track-abandoned', [CheckoutController::class, 'trackAbandonedCheckout'])->name('checkout.track-abandoned'); Route::post('/set-locale', [LocaleController::class, 'set'])->name('set-locale'); Route::middleware('auth')->group(function () { Route::post('/paypal/create-order', [PayPalController::class, 'createOrder'])->name('paypal.create-order'); Route::post('/paypal/capture-order', [PayPalController::class, 'captureOrder'])->name('paypal.capture-order'); Route::post('/paypal/create-subscription', [PayPalController::class, 'createSubscription'])->name('paypal.create-subscription'); }); Route::post('/paypal/webhook', [PayPalWebhookController::class, 'verify'])->name('paypal.webhook');