93 lines
3.2 KiB
PHP
93 lines
3.2 KiB
PHP
<?php
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
use Laravel\Fortify\Features;
|
|
use Livewire\Volt\Volt;
|
|
|
|
Route::get('/', function () {
|
|
return view('pages.home');
|
|
})->name('home');
|
|
|
|
Route::get('/booking', function () {
|
|
return view('pages.booking');
|
|
})->name('booking');
|
|
|
|
Route::get('/posts', function () {
|
|
return view('pages.posts.index');
|
|
})->name('posts.index');
|
|
|
|
Route::get('/terms', function () {
|
|
return view('pages.terms');
|
|
})->name('terms');
|
|
|
|
Route::get('/privacy', function () {
|
|
return view('pages.privacy');
|
|
})->name('privacy');
|
|
|
|
Route::get('/language/{locale}', function (string $locale) {
|
|
if (! in_array($locale, ['ar', 'en'])) {
|
|
abort(400);
|
|
}
|
|
|
|
session(['locale' => $locale]);
|
|
|
|
if (auth()->check()) {
|
|
auth()->user()->update(['preferred_language' => $locale]);
|
|
}
|
|
|
|
return redirect()->back();
|
|
})->name('language.switch');
|
|
|
|
Route::middleware(['auth', 'active'])->group(function () {
|
|
// Admin routes
|
|
Route::middleware('admin')->prefix('admin')->group(function () {
|
|
Route::view('/dashboard', 'livewire.admin.dashboard-placeholder')
|
|
->name('admin.dashboard');
|
|
|
|
// Individual Clients Management
|
|
Route::prefix('clients/individual')->name('admin.clients.individual.')->group(function () {
|
|
Volt::route('/', 'admin.clients.individual.index')->name('index');
|
|
Volt::route('/create', 'admin.clients.individual.create')->name('create');
|
|
Volt::route('/{client}', 'admin.clients.individual.show')->name('show');
|
|
Volt::route('/{client}/edit', 'admin.clients.individual.edit')->name('edit');
|
|
});
|
|
|
|
// Company Clients Management
|
|
Route::prefix('clients/company')->name('admin.clients.company.')->group(function () {
|
|
Volt::route('/', 'admin.clients.company.index')->name('index');
|
|
Volt::route('/create', 'admin.clients.company.create')->name('create');
|
|
Volt::route('/{client}', 'admin.clients.company.show')->name('show');
|
|
Volt::route('/{client}/edit', 'admin.clients.company.edit')->name('edit');
|
|
});
|
|
|
|
// Admin Settings
|
|
Route::prefix('settings')->name('admin.settings.')->group(function () {
|
|
Volt::route('/working-hours', 'admin.settings.working-hours')->name('working-hours');
|
|
});
|
|
});
|
|
|
|
// Client routes
|
|
Route::prefix('client')->group(function () {
|
|
Route::view('/dashboard', 'livewire.client.dashboard-placeholder')
|
|
->name('client.dashboard');
|
|
});
|
|
|
|
// Settings routes
|
|
Route::redirect('settings', 'settings/profile');
|
|
|
|
Volt::route('settings/profile', 'settings.profile')->name('profile.edit');
|
|
Volt::route('settings/password', 'settings.password')->name('user-password.edit');
|
|
Volt::route('settings/appearance', 'settings.appearance')->name('appearance.edit');
|
|
|
|
Volt::route('settings/two-factor', 'settings.two-factor')
|
|
->middleware(
|
|
when(
|
|
Features::canManageTwoFactorAuthentication()
|
|
&& Features::optionEnabled(Features::twoFactorAuthentication(), 'confirmPassword'),
|
|
['password.confirm'],
|
|
[],
|
|
),
|
|
)
|
|
->name('two-factor.show');
|
|
});
|