group(function () { Route::post('/hotels', [HotelController::class, 'store']); Route::get('/hotels', [HotelController::class, 'index']); Route::get('/hotels/{id}', [HotelController::class, 'show']); Route::put('/hotels/{id}', [HotelController::class, 'update']); Route::delete('/hotels/{id}', [HotelController::class, 'destroy']); }); Route::get('/hotels/{hotel}/room-types', function ($hotelId) { return \App\Models\RoomType::where('hotel_id', $hotelId)->get(['id', 'name']); }); Route::post('/admin/login', [AdminAuthController::class, 'login']); Route::post('/admin/logout', [AdminAuthController::class, 'logout'])->middleware('auth:sanctum'); Route::middleware('auth:admin')->prefix('admin')->group(function () { Route::get('/dashboard', function () { return response()->json(['message' => 'Welcome to admin dashboard']); }); }); Route::middleware('auth:sanctum')->group(function () { Route::get('/user', function (\Illuminate\Http\Request $request) { return $request->user(); }); }); Route::middleware('auth:sanctum')->group(function () { Route::get('/hotels/{id}/rooms', [RoomTypeController::class, 'index']); Route::post('/hotels/{hotelId}/room-types', [RoomTypeController::class, 'store']); Route::put('/room-types/{id}', [RoomTypeController::class, 'update']); Route::delete('/room-types/{id}', [RoomTypeController::class, 'destroy']); }); Route::middleware('auth:sanctum')->group(function () { Route::get('/room-types/{id}/availability', [RoomAvailabilityController::class, 'index']); Route::post('/room-types/{id}/availability/bulk', [RoomAvailabilityController::class, 'bulkUpdate']); }); Route::middleware('auth:sanctum')->group(function () { Route::post('/bookings/{id}/invoice', [InvoiceController::class, 'generate']); }); Route::middleware('auth:sanctum')->group(function () { Route::post('/bookings', [BookingController::class, 'store']); }); Route::middleware('auth:sanctum')->group(function () { Route::post('/bookings/{id}/confirm', [BookingController::class, 'confirm']); }); Route::middleware('auth:sanctum')->group(function () { Route::post('/bookings/{id}/cancel', [BookingController::class, 'cancel']); }); Route::middleware('auth:sanctum')->group(function () { Route::get('/bookings', [BookingController::class, 'index']); });