feat: add admin and auth route groups

This commit is contained in:
2026-08-17 08:10:36 +03:30
parent 8bf1f21feb
commit 42be8ce894
2 changed files with 190 additions and 0 deletions
+162
View File
@@ -0,0 +1,162 @@
<?php
use App\Http\Controllers\Admin\AdminController;
use App\Http\Controllers\Admin\AirportController;
use App\Http\Controllers\Admin\AuthController;
use App\Http\Controllers\Admin\CommentController;
use App\Http\Controllers\Admin\DashboardController;
use App\Http\Controllers\Admin\FavoriteController;
use App\Http\Controllers\Admin\FlightController;
use App\Http\Controllers\Admin\PaymentController;
use App\Http\Controllers\Admin\SettingController;
use App\Http\Controllers\Admin\SliderController;
use App\Http\Controllers\Admin\TourController;
use App\Http\Controllers\Admin\TravelTypeController;
use App\Http\Controllers\Admin\UserController;
use Illuminate\Support\Facades\Route;
Route::prefix('admin')->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');
});
});
});
+28
View File
@@ -0,0 +1,28 @@
<?php
use App\Http\Controllers\Auth\LoginController;
use App\Http\Controllers\Auth\LogoutController;
use App\Http\Controllers\Auth\RegisterController;
use Illuminate\Support\Facades\Route;
Route::prefix('auth')->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');
});