Files
Mark Gregory 23de49aae0
tests / ci (push) Canceled after 0s
Initial Commit
2026-10-15 17:24:49 +01:00

32 lines
1.2 KiB
PHP

<?php
use App\Models\LodgeBooking;
use App\Models\LodgePhoto;
use Illuminate\Support\Facades\Route;
Route::middleware(['auth', 'verified', \App\Http\Middleware\EnsureLodgeAdmin::class])->prefix('admin')->group(function () {
$isAdmin = static function ($request): void {
abort_unless(
filled(config('lodge.admin_email'))
&& strcasecmp(trim((string) $request->user()?->email), trim((string) config('lodge.admin_email'))) === 0,
403
);
};
Route::get('/', function (\Illuminate\Http\Request $request) use ($isAdmin) {
$isAdmin($request);
return view('lodge.admin-dashboard', [
'total' => LodgeBooking::count(),
'pending' => LodgeBooking::where('status', 'pending')->count(),
'confirmed' => LodgeBooking::where('status', 'confirmed')->count(),
'photoCount' => LodgePhoto::count(),
'recent' => LodgeBooking::latest()->take(8)->get(),
]);
})->name('admin.dashboard');
Route::get('/photos', function (\Illuminate\Http\Request $request) use ($isAdmin) {
$isAdmin($request);
return view('lodge.admin-photos', ['photos' => LodgePhoto::latest()->get()]);
})->name('admin.photos');
});