Files
app3/routes/api.php
2026-01-26 09:06:06 +00:00

69 lines
2.7 KiB
PHP

<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\AdminAuthController;
use App\Http\Controllers\OrdersController;
use App\Http\Controllers\RoomTypesController;
use App\Http\Controllers\HotelController;
use App\Http\Controllers\RoomAvailabilityController;
use App\Http\Controllers\BookingController;
use App\Http\Controllers\InvoiceController;
Route::middleware('auth:sanctum')->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']);
});