webseite funktioniert, pay sdk, blog backend funktioniert

This commit is contained in:
Codex Agent
2025-09-29 22:16:12 +02:00
parent e52a4005aa
commit 21c9391e2c
51 changed files with 2093 additions and 1293 deletions

View File

@@ -2,35 +2,56 @@
use Illuminate\Support\Facades\Route;
use Inertia\Inertia;
use Illuminate\Support\Facades\Log;
// Marketing-Seite mit Locale-Prefix
Route::prefix('{locale?}')->where(['locale' => 'de|en'])->middleware('locale')->group(function () {
Route::view('/', 'marketing')->name('marketing');
Route::get('/occasions/{type}', function ($type) {
return view('marketing.occasions', ['type' => $type]);
})->name('occasions.type');
Route::get('/packages', [\App\Http\Controllers\MarketingController::class, 'packagesIndex'])->name('packages');
Route::get('/register/{package_id?}', [\App\Http\Controllers\Auth\MarketingRegisterController::class, 'create'])->name('register');
Route::post('/register', [\App\Http\Controllers\Auth\MarketingRegisterController::class, 'store']);
});
// Packages Route (outside locale group for direct access)
Route::view('/packages', 'marketing.packages')->name('packages');
// Fallback for /packages (redirect to default locale)
Route::get('/packages', function () {
return redirect('/de/packages');
})->name('packages.fallback');
// Blog Routes (outside locale group for direct access)
Route::get('/blog', [\App\Http\Controllers\MarketingController::class, 'blogIndex'])->name('blog');
Route::get('/blog/{post}', [\App\Http\Controllers\MarketingController::class, 'blogShow'])->name('blog.show');
// Fallback for /blog (redirect to default locale)
Route::get('/blog', function () {
return redirect('/de/blog');
})->name('blog.fallback');
// Legal Pages
// Blog Routes (inside locale group for i18n support)
Route::prefix('{locale?}')->where(['locale' => 'de|en'])->middleware('locale')->group(function () {
Route::get('/blog', [\App\Http\Controllers\MarketingController::class, 'blogIndex'])->name('blog');
Route::get('/blog/{post}', [\App\Http\Controllers\MarketingController::class, 'blogShow'])->name('blog.show');
});
// Fallbacks for Legal Pages (redirect to default locale)
Route::get('/impressum', function () {
return view('legal.impressum');
})->name('impressum');
return redirect('/de/impressum');
})->name('impressum.fallback');
Route::get('/datenschutz', function () {
return view('legal.datenschutz');
})->name('datenschutz');
return redirect('/de/datenschutz');
})->name('datenschutz.fallback');
Route::get('/kontakt', function () {
return view('legal.kontakt');
})->name('kontakt');
Route::post('/kontakt', [\App\Http\Controllers\MarketingController::class, 'contact'])->name('kontakt.submit');
return redirect('/de/kontakt');
})->name('kontakt.fallback');
// Legal Pages in locale group
Route::prefix('{locale?}')->where(['locale' => 'de|en'])->middleware('locale')->group(function () {
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');
});
Route::middleware(['auth', 'verified'])->group(function () {
Route::get('dashboard', function () {
@@ -95,7 +116,11 @@ Route::middleware('auth')->group(function () {
Route::patch('/profile', [\App\Http\Controllers\ProfileController::class, 'update'])->name('profile.update');
});
// Success view route (no controller needed, direct view)
Route::get('/marketing/success/{package_id?}', function ($packageId = null) {
return view('marketing.success', compact('packageId'));
})->name('marketing.success');
Route::get('/marketing/success/{package_id?}', [\App\Http\Controllers\MarketingController::class, 'success'])->name('marketing.success');
Route::get('{locale}/occasions/{type}', [\App\Http\Controllers\MarketingController::class, 'occasionsType'])
->where([
'locale' => 'de|en',
'type' => 'weddings|birthdays|corporate-events|family-celebrations'
])
->name('occasions.type');