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 () { // ---------- dashboard ---------- Route::get('dashboard', [DashboardController::class, 'index']) ->name('dashboard.index'); Route::get('dashboard/export', [DashboardController::class, 'exportExcel']) ->name('dashboard.export'); // ---------- users ---------- Route::prefix('users')->name('users.')->group(function () { Route::get('/', [UserController::class, 'index']) ->name('index'); Route::get('{user}/edit', [UserController::class, 'edit']) ->name('edit'); Route::put('{user}', [UserController::class, 'update']) ->name('update'); Route::delete('{user}', [UserController::class, 'destroy']) ->name('destroy'); Route::get('{user}/change-password', [UserController::class, 'changePassword']) ->name('change-password'); Route::put('{user}/change-password', [UserController::class, 'updatePassword']) ->name('update-password'); }); // ---------- 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'); }); }); // ---------- provinces and cities ---------- Route::prefix('locations')->name('locations.')->group(function () { // مدیریت استان‌ها Route::prefix('provinces') ->name('provinces.') ->controller(ProvinceController::class) ->group(function () { Route::get('/', 'index')->name('index'); Route::get('create', 'create')->name('create'); Route::post('store', 'store')->name('store'); Route::prefix('{province}')->group(function () { Route::get('edit', 'edit')->name('edit'); Route::put('update', 'update')->name('update'); Route::delete('destroy', 'destroy')->name('destroy'); }); }); // مدیریت شهرها Route::prefix('cities') ->name('cities.') ->controller(CityController::class) ->group(function () { Route::get('/', 'index')->name('index'); Route::get('create', 'create')->name('create'); Route::post('store', 'store')->name('store'); Route::prefix('{city}')->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'); }); // ---------- settings ---------- Route::prefix('settings') ->name('settings.') ->controller(SettingController::class) ->group(function () { Route::get('/', 'index')->name('index'); Route::put('update', 'update')->name('update'); }); }); });