added marketing page and moved events&general landing page

This commit is contained in:
Codex Agent
2025-09-26 15:40:37 +02:00
parent 6215ebbaa0
commit 492b9b9fd1
12 changed files with 609 additions and 13 deletions

View File

@@ -3,8 +3,8 @@
use Illuminate\Support\Facades\Route;
use Inertia\Inertia;
// Public landing: serve Guest PWA shell at root
Route::view('/', 'guest')->name('home');
// Marketing-Seite unter Root
Route::view('/', 'marketing')->name('marketing');
Route::middleware(['auth', 'verified'])->group(function () {
Route::get('dashboard', function () {
@@ -15,19 +15,32 @@ Route::middleware(['auth', 'verified'])->group(function () {
require __DIR__.'/settings.php';
require __DIR__.'/auth.php';
// Guest PWA shell (served for event and /pwa paths; React handles routing)
// Guest PWA shell for /event and sub-routes
Route::view('/event/{any?}', 'guest')->where('any', '.*');
Route::view('/e/{any?}', 'guest')->where('any', '.*');
Route::view('/pwa/{any?}', 'guest')->where('any', '.*');
Route::view('/legal/{any?}', 'guest')->where('any', '.*');
// Minimal public API for Guest PWA (stateless; no CSRF)
Route::prefix('api/v1')->withoutMiddleware([\App\Http\Middleware\VerifyCsrfToken::class])->group(function () {
// Public legal pages
Route::get('/legal/{slug}', [\App\Http\Controllers\Api\LegalController::class, 'show']);
// Public legal pages (for marketing)
Route::get('/impressum', function () {
return view('legal.impressum');
})->name('impressum');
Route::get('/datenschutz', function () {
return view('legal.datenschutz');
})->name('datenschutz');
Route::get('/kontakt', function () {
return view('legal.kontakt');
})->name('kontakt');
Route::post('/kontakt', [\App\Http\Controllers\MarketingController::class, 'contact'])->name('kontakt.submit');
});
// Stripe webhooks (no CSRF, no auth)
Route::post('/webhooks/stripe', [\App\Http\Controllers\StripeWebhookController::class, 'handle']);
// Stripe webhooks (no CSRF, no auth)
Route::post('/webhooks/stripe', [\App\Http\Controllers\StripeWebhookController::class, 'handle']);
// PayPal IPN webhook
Route::post('/webhooks/paypal', [\App\Http\Controllers\PayPalWebhookController::class, 'handle']);
// PayPal IPN webhook
Route::post('/webhooks/paypal', [\App\Http\Controllers\PayPalWebhookController::class, 'handle']);
// CSV templates for Super Admin imports
Route::get('/super-admin/templates/emotions.csv', function () {
@@ -60,3 +73,14 @@ Route::get('/super-admin/templates/tasks.csv', function () {
};
return response()->stream($callback, 200, $headers);
});
// E-Commerce Routen für Marketing
Route::get('/buy-credits/{package}', [\App\Http\Controllers\MarketingController::class, 'checkout'])->name('buy.credits');
Route::get('/checkout/{sessionId}', [\App\Http\Controllers\MarketingController::class, 'stripeCheckout']);
Route::get('/paypal-checkout/{package}', [\App\Http\Controllers\MarketingController::class, 'paypalCheckout']);
Route::get('/marketing/success/{package}', [\App\Http\Controllers\MarketingController::class, 'success'])->name('marketing.success');
// E-Commerce Routen für Marketing
Route::get('/buy-credits/{package}', [\App\Http\Controllers\MarketingController::class, 'checkout'])->name('buy.credits');
Route::get('/checkout/{sessionId}', [\App\Http\Controllers\MarketingController::class, 'stripeCheckout']);
Route::get('/paypal-checkout/{package}', [\App\Http\Controllers\MarketingController::class, 'paypalCheckout']);