orderBy('created_at', 'desc') ->limit(6) ->get(); return view('welcome', compact('latestBooks')); }); // Static pages Route::get('/about', [StaticPageController::class, 'about'])->name('about'); Route::get('/privacy', [StaticPageController::class, 'privacy'])->name('privacy'); Route::get('/terms', [StaticPageController::class, 'terms'])->name('terms'); // Contact Route::get('/contact', [ContactController::class, 'show'])->name('contact.show'); Route::post('/contact', [ContactController::class, 'send'])->name('contact.send'); // Bind the {book} route parameter to resolve by slug or numeric ID (backward compatible) Route::bind('book', function ($value) { return App\Models\Book::where('slug', $value) ->orWhere(function ($q) use ($value) { if (is_numeric($value)) { $q->where('id', (int) $value); } }) ->firstOrFail(); }); Route::resource('categories', CategoryController::class); Route::resource('books', BookController::class); Route::resource('summaries', SummaryController::class); // Readlist + Reports + Requests routes Route::middleware('auth')->group(function () { Route::get('/readlist', [ReadlistController::class, 'index'])->name('readlist.index'); Route::post('/readlist/{book}', [ReadlistController::class, 'store'])->name('readlist.store'); Route::delete('/readlist/{book}', [ReadlistController::class, 'destroy'])->name('readlist.destroy'); // Summary reports Route::post('/books/{book}/report', [SummaryReportController::class, 'store'])->name('summary-reports.store'); // Summary requests Route::get('/requests', [SummaryRequestController::class, 'index'])->name('requests.index'); Route::get('/requests/create', [SummaryRequestController::class, 'create'])->name('requests.create'); Route::post('/requests', [SummaryRequestController::class, 'store'])->name('requests.store'); // Summary reviews Route::post('/books/{book}/reviews', [SummaryReviewController::class, 'store'])->name('reviews.store'); Route::delete('/reviews/{review}', [SummaryReviewController::class, 'destroy'])->name('reviews.destroy'); }); Auth::routes(); // Dashboard route (alias for /home) Route::get('/dashboard', [App\Http\Controllers\HomeController::class, 'index'])->name('dashboard'); Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home'); // Sitemap Route::get('/sitemap.xml', [SitemapController::class, 'index'])->name('sitemap');