From 42be8ce894a66255e5961ed80571acc93ed5d376 Mon Sep 17 00:00:00 2001 From: shahrzad011 Date: Mon, 17 Aug 2026 08:10:36 +0330 Subject: [PATCH] feat: add admin and auth route groups --- routes/admin.php | 162 +++++++++++++++++++++++++++++++++++++++++++++++ routes/auth.php | 28 ++++++++ 2 files changed, 190 insertions(+) create mode 100644 routes/admin.php create mode 100644 routes/auth.php diff --git a/routes/admin.php b/routes/admin.php new file mode 100644 index 0000000..95c1f7a --- /dev/null +++ b/routes/admin.php @@ -0,0 +1,162 @@ +name('admin.')->group(function () { + + Route::get('/', function () { + return redirect()->route('admin.dashboard.index'); + })->name('index'); + + // ------------------------------ احراز هویت ادمین ------------------------------ + Route::prefix('auth')->name('auth.')->controller(AuthController::class)->group(function () { + + Route::prefix('login')->name('login.')->middleware('guest:admin')->group(function () { + Route::get('/', 'login')->name('index'); + Route::post('/', 'loginPost')->name('post'); + }); + + Route::get('logout', 'logout')->middleware('auth:admin')->name('logout'); + }); + + // ------------------------------ بخش‌های محافظت‌شده ------------------------------ + Route::middleware('auth:admin')->group(function () { + + Route::get('dashboard', [DashboardController::class, 'index'])->name('dashboard.index'); + + // ---------- users ---------- + Route::prefix('users')->name('users.')->controller(UserController::class)->group(function () { + Route::get('/', 'index')->name('index'); + Route::prefix('{user}')->group(function () { + Route::get('show', 'show')->name('show'); + Route::get('edit', 'edit')->name('edit'); + Route::put('update', 'update')->name('update'); + Route::delete('destroy', 'destroy')->name('destroy'); + }); + }); + + // ---------- admins ---------- + Route::prefix('admins')->name('admins.')->controller(AdminController::class)->group(function () { + Route::get('/', 'index')->name('index'); + Route::get('create', 'create')->name('create'); + Route::post('store', 'store')->name('store'); + Route::prefix('{admin}')->group(function () { + Route::get('edit', 'edit')->name('edit'); + Route::put('update', 'update')->name('update'); + Route::delete('destroy', 'destroy')->name('destroy'); + }); + }); + + // ---------- tours ---------- + Route::prefix('tours')->name('tours.')->controller(TourController::class)->group(function () { + Route::get('/', 'index')->name('index'); + Route::get('create', 'create')->name('create'); + Route::post('store', 'store')->name('store'); + Route::prefix('{tour}')->group(function () { + Route::get('show', 'show')->name('show'); + Route::get('edit', 'edit')->name('edit'); + Route::put('update', 'update')->name('update'); + Route::delete('destroy', 'destroy')->name('destroy'); + // حذف تصویر تور + Route::delete('images/{image}', 'removeImage')->name('removeImage'); + }); + }); + + // ---------- travel types (نوع سفر) ---------- + Route::prefix('travel-types')->name('travelTypes.')->controller(TravelTypeController::class)->group(function () { + Route::get('/', 'index')->name('index'); + Route::get('create', 'create')->name('create'); + Route::post('store', 'store')->name('store'); + Route::prefix('{travelType}')->group(function () { + Route::get('show', 'show')->name('show'); + Route::get('edit', 'edit')->name('edit'); + Route::put('update', 'update')->name('update'); + Route::delete('destroy', 'destroy')->name('destroy'); + }); + }); + + // ---------- flights ---------- + Route::prefix('flights')->name('flights.')->controller(FlightController::class)->group(function () { + Route::get('/', 'index')->name('index'); + Route::get('create', 'create')->name('create'); + Route::post('store', 'store')->name('store'); + Route::prefix('{flight}')->group(function () { + Route::get('show', 'show')->name('show'); + Route::get('edit', 'edit')->name('edit'); + Route::put('update', 'update')->name('update'); + Route::delete('destroy', 'destroy')->name('destroy'); + }); + }); + + + + // ---------- airports ---------- + Route::prefix('airports')->name('airports.')->controller(AirportController::class)->group(function () { + Route::get('/', 'index')->name('index'); + Route::get('create', 'create')->name('create'); + Route::post('store', 'store')->name('store'); + Route::prefix('{airport}')->group(function () { + Route::get('edit', 'edit')->name('edit'); + Route::put('update', 'update')->name('update'); + Route::delete('destroy', 'destroy')->name('destroy'); + }); + }); + + // ---------- comments ---------- + Route::prefix('comments')->name('comments.')->controller(CommentController::class)->group(function () { + Route::get('/', 'index')->name('index'); + Route::prefix('{comment}')->group(function () { + Route::get('show', 'show')->name('show'); + Route::get('edit', 'edit')->name('edit'); + Route::patch('update', 'update')->name('update'); // تأیید/رد نظر + Route::delete('destroy', 'destroy')->name('destroy'); + }); + }); + + // ---------- favorites ---------- + Route::prefix('favorites')->name('favorites.')->controller(FavoriteController::class)->group(function () { + Route::get('/', 'index')->name('index'); + Route::get('{favorite}', 'show')->name('show'); + Route::delete('{favorite}/destroy', 'destroy')->name('destroy'); + }); + + // ---------- payments ---------- + Route::prefix('payments')->name('payments.')->controller(PaymentController::class)->group(function () { + Route::get('/', 'index')->name('index'); + Route::get('{payment}', 'show')->name('show'); + }); + + // ---------- sliders ---------- +// Route::prefix('sliders')->name('sliders.')->controller(SliderController::class)->group(function () { +// Route::get('/', 'index')->name('index'); +// Route::get('create', 'create')->name('create'); +// Route::post('store', 'store')->name('store'); +// Route::prefix('{slider}')->group(function () { +// Route::get('show', 'show')->name('show'); +// Route::get('edit', 'edit')->name('edit'); +// Route::put('update', 'update')->name('update'); +// Route::delete('destroy', 'destroy')->name('destroy'); +// }); +// }); + + // ---------- settings ---------- + Route::prefix('settings')->name('settings.')->controller(SettingController::class)->group(function () { + Route::get('/', 'index')->name('index'); + Route::put('update', 'update')->name('update'); + }); + }); +}); diff --git a/routes/auth.php b/routes/auth.php new file mode 100644 index 0000000..f0be38e --- /dev/null +++ b/routes/auth.php @@ -0,0 +1,28 @@ +name('auth.')->group(function () { + + Route::middleware('guest:web')->group(function () { + + Route::controller(RegisterController::class) + ->prefix('register')->name('register.')->group(function () { + Route::get('/', 'index')->name('index'); + Route::post('/', 'post')->name('post'); + }); + + Route::controller(LoginController::class) + ->prefix('login')->name('login.')->group(function () { + Route::get('/', 'index')->name('index'); + Route::post('/', 'post')->name('post'); + }); + }); + + Route::get('logout', [LogoutController::class, 'index']) + ->middleware('auth:web')->name('logout'); +});