chore: finalize project updates
This commit is contained in:
+193
-99
@@ -4,13 +4,13 @@
|
||||
use App\Http\Controllers\Admin\AdminController;
|
||||
use App\Http\Controllers\Admin\AirportController;
|
||||
use App\Http\Controllers\Admin\AuthController;
|
||||
use App\Http\Controllers\Admin\CityController;
|
||||
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\ProvinceController;
|
||||
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;
|
||||
@@ -18,11 +18,13 @@ 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 () {
|
||||
@@ -30,137 +32,229 @@ Route::prefix('admin')->name('admin.')->group(function () {
|
||||
Route::post('/', 'loginPost')->name('post');
|
||||
});
|
||||
|
||||
Route::get('logout', 'logout')->middleware('auth:admin')->name('logout');
|
||||
Route::get('logout', 'logout')
|
||||
->middleware('auth:admin')
|
||||
->name('logout');
|
||||
});
|
||||
|
||||
// ------------------------------ بخشهای محافظتشده ------------------------------
|
||||
|
||||
Route::middleware('auth:admin')->group(function () {
|
||||
|
||||
Route::get('dashboard', [DashboardController::class, 'index'])->name('dashboard.index');
|
||||
// ---------- dashboard ----------
|
||||
|
||||
Route::get('dashboard', [DashboardController::class, 'index'])
|
||||
->name('dashboard.index');
|
||||
|
||||
Route::get('dashboard/export', [DashboardController::class, 'exportExcel'])
|
||||
->name('dashboard.export');
|
||||
|
||||
// گزارش خروجی اکسل
|
||||
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');
|
||||
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');
|
||||
|
||||
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');
|
||||
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');
|
||||
|
||||
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');
|
||||
|
||||
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');
|
||||
|
||||
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');
|
||||
});
|
||||
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');
|
||||
});
|
||||
|
||||
// ---------- 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');
|
||||
});
|
||||
|
||||
Route::prefix('settings')
|
||||
->name('settings.')
|
||||
->controller(SettingController::class)
|
||||
->group(function () {
|
||||
|
||||
Route::get('/', 'index')->name('index');
|
||||
Route::put('update', 'update')->name('update');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user