Files
airline-agency/routes/admin.php
T

140 lines
5.2 KiB
PHP

<?php
use App\Http\Controllers\Admin\AuthController;
use App\Http\Controllers\Admin\DashboardController;
use App\Http\Controllers\Admin\AdminController;
use App\Http\Controllers\Admin\TourController;
use App\Http\Controllers\Admin\FlightController;
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');
});
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');
Route::prefix('admins')->name('admins.')->middleware('admin.super')->controller(AdminController::class)->group(function () {
Route::get('/', 'index')->name('index');
Route::get('create', 'create')->name('create');
Route::post('/', 'store')->name('store');
Route::prefix('{admin}')->group(function () {
Route::get('edit', 'edit')->name('edit');
Route::put('/', 'update')->name('update');
Route::delete('/', 'destroy')->name('destroy');
});
Route::prefix('trash')->name('trash.')->group(function () {
Route::get('/', 'trash')->name('index');
Route::prefix('{id}')->group(function () {
Route::post('restore', 'restore')->name('restore');
Route::delete('/', 'forceDelete')->name('force-delete');
});
});
});
Route::prefix('users')->name('users.')->middleware('admin.permission:manage-users')->controller(UserController::class)->group(function () {
Route::get('/', 'index')->name('index');
Route::prefix('trash')->name('trash.')->group(function () {
Route::get('/', 'trash')->name('index');
Route::prefix('{id}')->group(function () {
Route::post('restore', 'restore')->name('restore');
Route::delete('force-delete', 'forceDelete')->name('forceDelete');
});
});
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');
});
});
Route::prefix('flights')->name('flights.')->middleware('admin.permission:manage-flights')->controller(FlightController::class)->group(function () {
Route::get('/', 'index')->name('index');
Route::get('create', 'create')->name('create');
Route::post('store', 'store')->name('store');
Route::get('cities-by-country/{country}', 'citiesByCountry')->name('cities-by-country');
Route::get('airports-by-city/{city}', 'airportsByCity')->name('airports-by-city');
Route::prefix('trash')->name('trash.')->group(function () {
Route::get('/', 'trash')->name('index');
Route::prefix('{id}')->group(function () {
Route::post('restore', 'restore')->name('restore');
Route::delete('force-delete', 'forceDelete')->name('forceDelete');
});
});
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');
});
});
Route::prefix('tours')->name('tours.')->middleware('admin.permission:manage-tours')->controller(TourController::class)->group(function () {
Route::get('/', 'index')->name('index');
Route::get('create', 'create')->name('create');
Route::post('store', 'store')->name('store');
Route::get('cities-by-country/{country}', 'citiesByCountry')->name('citiesByCountry');
Route::prefix('trash')->name('trash.')->group(function () {
Route::get('/', 'trash')->name('index');
Route::prefix('{id}')->group(function () {
Route::post('restore', 'restore')->name('restore');
Route::delete('force-delete', 'forceDelete')->name('forceDelete');
});
});
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');
});
});
});
});