libra/routes/web.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');
});