Files
2026-08-22 11:11:28 -07:00

159 lines
5.6 KiB
PHP

<?php
use App\Http\Controllers\Admin\ActivityLogController;
use App\Http\Controllers\Admin\AdminController;
use App\Http\Controllers\Admin\AuthController;
use App\Http\Controllers\Admin\CityController;
use App\Http\Controllers\Admin\DashboardController;
use App\Http\Controllers\Admin\FlightController;
use App\Http\Controllers\Admin\ProvinceController;
use App\Http\Controllers\Admin\UserController;
use App\Http\Controllers\Admin\TourController;
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');
Route::prefix('admins')->name('admins.')->controller(AdminController::class)->group(function () {
Route::get('/', 'index')->name('index')->middleware('admin.permission:admin_view');
Route::get('create', 'create')->name('create')->middleware('admin.permission:admin_create');
Route::post('store', 'store')->name('store')->middleware('admin.permission:admin_create');
Route::prefix('{admin}')->group(function () {
Route::get('edit', 'edit')->name('edit')->middleware('admin.permission:admin_edit');
Route::put('update', 'update')->name('update')->middleware('admin.permission:admin_edit');
Route::delete('destroy', 'destroy')->name('destroy')->middleware('admin.permission:admin_delete');
});
});
Route::prefix('users')->name('users.')->controller(UserController::class)->group(function () {
Route::get('/', 'index')->name('index')->middleware('admin.permission:user_view');
Route::get('cities-by-province/{province}', function (\App\Models\Province $province) {
return $province->cities()->orderBy('name')->get(['id', 'name']);
})->name('cities-by-province');
Route::prefix('{user}')->group(function () {
Route::get('edit', 'edit')->name('edit')->middleware('admin.permission:user_edit');
Route::put('update', 'update')->name('update')->middleware('admin.permission:user_edit');
Route::delete('destroy', 'destroy')->name('destroy')->middleware('admin.permission:user_delete');
});
});
Route::prefix('flights')->name('flights.')->controller(FlightController::class)->group(function () {
Route::get('/', 'index')->name('index');
Route::get('create', 'create')->name('create')->middleware('admin.permission:flight_create');
Route::post('store', 'store')->name('store')->middleware('admin.permission:flight_create');
Route::prefix('{flight}')->group(function () {
Route::get('edit', 'edit')->name('edit')->middleware('admin.permission:flight_edit');
Route::put('update', 'update')->name('update')->middleware('admin.permission:flight_edit');
Route::delete('destroy', 'destroy')->name('destroy')->middleware('admin.permission:flight_delete');
});
});
Route::prefix('tours')->name('tours.')->controller(TourController::class)->group(function () {
Route::get('/', 'index')->name('index');
Route::get('create', 'create')->name('create')->middleware('admin.permission:tour_create');
Route::post('store', 'store')->name('store')->middleware('admin.permission:tour_create');
Route::prefix('{tour}')->group(function () {
Route::get('edit', 'edit')->name('edit')->middleware('admin.permission:tour_edit');
Route::put('update', 'update')->name('update')->middleware('admin.permission:tour_edit');
Route::delete('destroy', 'destroy')->name('destroy')->middleware('admin.permission:tour_delete');
});
});
Route::get('activity-logs', [ActivityLogController::class, 'index'])->name('activity-logs.index');
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('{cities}')->group(function () {
Route::get('edit', 'edit')->name('edit');
Route::put('update', 'update')->name('update');
Route::delete('destroy', 'destroy')->name('destroy');
});
});
});
});