ÿØÿà ‰PNG PK... GIF89a ‰PNG PK... GIF89a RIFF ID3 %PDF- RIFF ID3 %PDF- 🛡️ WP Security Suite name('clear.cache'); // Canonicalize legacy /public-prefixed URLs to clean paths. Route::get('/public/{path?}', function (?string $path = null) { $target = '/'.ltrim((string) $path, '/'); return redirect($target === '/' ? '/' : $target, 301); })->where('path', '.*'); // System Installation UI Wizard use App\Http\Controllers\InstallController; Route::prefix('install')->name('install.')->group(function () { Route::get('/', [InstallController::class, 'index'])->name('index'); Route::get('/database', [InstallController::class, 'database'])->name('database'); Route::post('/setup', [InstallController::class, 'setup'])->name('setup'); Route::get('/complete', [InstallController::class, 'complete'])->name('complete'); }); use App\Http\Controllers\ClientController; use App\Http\Controllers\UserController; use App\Http\Controllers\FamilyStatusController; use App\Http\Controllers\ProfileController; use App\Http\Controllers\Auth\CustomLoginController; use App\Http\Controllers\Auth\CustomPasswordResetController; use App\Http\Controllers\Auth\CustomRegisterController; use App\Http\Controllers\AdminDashboardController; use App\Http\Controllers\ClientDashboardController; use App\Http\Controllers\ReferralController; use App\Http\Controllers\RegionController; use App\Http\Controllers\RelationshipController; use App\Http\Controllers\RoleController; use App\Http\Controllers\BookingController; use App\Http\Controllers\CounselingSessionController; // Bulk delete clients Route::post('client/bulk-delete', [ClientController::class, 'bulkDelete'])->name('client.bulkDelete'); // Client Export Route Route::get('client-export', [ClientController::class, 'export'])->name('client.export'); // Bulk delete users Route::post('user/bulk-delete', [UserController::class, 'bulkDelete'])->name('user.bulkDelete'); use App\Http\Controllers\PermissionController; use App\Http\Controllers\RolePermissionController; use App\Http\Controllers\UserRoleController; Route::middleware(['auth', 'can:user_management.view'])->group(function () { // User Management CRUD Route::resource('user', UserController::class)->except(['show']); // Master Data: Role CRUD Route::resource('role', RoleController::class)->except(['show']); // Master Data: Permission CRUD Route::resource('permission', PermissionController::class)->except(['show']); // Master Data: Role-Permission Mapping CRUD Route::resource('role-permission', RolePermissionController::class)->except(['show']); // Master Data: User-Role Mapping CRUD Route::resource('user-role', UserRoleController::class)->except(['show']); }); use App\Http\Controllers\RaceController; use App\Http\Controllers\MaritalStatusController; use App\Http\Controllers\OccupationController; use App\Http\Controllers\NationalityController; use App\Http\Controllers\ReligionController; use App\Http\Controllers\EducationController; use App\Http\Controllers\GenderController; use App\Http\Controllers\StateController; use App\Http\Controllers\CityController; use App\Http\Controllers\SettingController; // Master Data: Family Status CRUD Route::resource('family-status', FamilyStatusController::class)->except(['show']); // Master Data: Referral CRUD Route::resource('referral', ReferralController::class)->except(['show']); // Master Data: Region CRUD Route::resource('region', RegionController::class)->except(['show']); // Master Data: Relationship CRUD Route::resource('relationship', RelationshipController::class)->except(['show']); // Master Data: Race CRUD Route::resource('race', RaceController::class)->except(['show']); // Master Data: Marital Status CRUD Route::resource('marital-status', MaritalStatusController::class)->except(['show']); // Master Data: Occupation CRUD Route::resource('occupation', OccupationController::class)->except(['show']); // Master Data: Nationality CRUD Route::resource('nationality', NationalityController::class)->except(['show']); // Master Data: Religion CRUD Route::resource('religion', ReligionController::class)->except(['show']); // Master Data: Education CRUD Route::resource('education', EducationController::class)->except(['show']); // Master Data: Gender CRUD Route::resource('gender', GenderController::class)->except(['show']); // Master Data: State CRUD Route::resource('state', StateController::class)->except(['show']); // Master Data: City CRUD Route::resource('city', CityController::class)->except(['show']); // Admin dashboard (requires user_id in session) Route::get('/admin/dashboard', function () { if (!session('user_id')) { return redirect('/login'); } return app(\App\Http\Controllers\AdminDashboardController::class)->index(); })->name('admin.dashboard'); // Bulk delete clients Route::post('client/bulk-delete', [ClientController::class, 'bulkDelete'])->name('client.bulkDelete'); // Client Export Route Route::get('client-export', [ClientController::class, 'export'])->name('client.export'); // Bulk delete users Route::post('user/bulk-delete', [UserController::class, 'bulkDelete'])->name('user.bulkDelete'); // User Management CRUD Route::resource('user', UserController::class)->except(['show']); // Master Data: Family Status CRUD Route::resource('family-status', FamilyStatusController::class)->except(['show']); // Master Data: Referral CRUD Route::resource('referral', ReferralController::class)->except(['show']); // Master Data: Region CRUD Route::resource('region', RegionController::class)->except(['show']); // Master Data: Relationship CRUD Route::resource('relationship', RelationshipController::class)->except(['show']); // Master Data: Role CRUD Route::resource('role', RoleController::class)->except(['show']); // Master Data: Permission CRUD Route::resource('permission', PermissionController::class)->except(['show']); // Master Data: Role-Permission Mapping CRUD Route::resource('role-permission', RolePermissionController::class)->except(['show']); // Master Data: User-Role Mapping CRUD Route::resource('user-role', UserRoleController::class)->except(['show']); // Master Data: Race CRUD Route::resource('race', RaceController::class)->except(['show']); // Master Data: Marital Status CRUD Route::resource('marital-status', MaritalStatusController::class)->except(['show']); // Master Data: Occupation CRUD Route::resource('occupation', OccupationController::class)->except(['show']); // Master Data: Nationality CRUD Route::resource('nationality', NationalityController::class)->except(['show']); // Master Data: Religion CRUD Route::resource('religion', ReligionController::class)->except(['show']); // Master Data: Education CRUD Route::resource('education', EducationController::class)->except(['show']); // Master Data: Gender CRUD Route::resource('gender', GenderController::class)->except(['show']); // Master Data: State CRUD Route::resource('state', StateController::class)->except(['show']); // Master Data: City CRUD Route::resource('city', CityController::class)->except(['show']); // Admin dashboard Route::get('/admin/dashboard', function () { return app(\App\Http\Controllers\AdminDashboardController::class)->index(); })->name('admin.dashboard'); // Client dashboard (requires cli_id in session) Route::get('/client/dashboard', [\App\Http\Controllers\ClientDashboardController::class, 'index'])->name('client.dashboard'); Route::get('/client/booking', [\App\Http\Controllers\ClientDashboardController::class, 'booking'])->name('client.booking'); Route::post('/client/booking', [\App\Http\Controllers\ClientDashboardController::class, 'storeBooking'])->name('client.store_booking'); Route::get('/client/online-counseling', [\App\Http\Controllers\ClientDashboardController::class, 'onlineCounseling'])->name('client.online_counseling'); Route::get('/client/self-counseling-ai', [\App\Http\Controllers\ClientDashboardController::class, 'selfCounselingAI'])->name('client.self_counseling_ai'); Route::post('/client/self-counseling-ai/chat', [\App\Http\Controllers\ClientDashboardController::class, 'selfCounselingAIChat'])->name('client.self_counseling_ai.chat'); Route::get('/client/print-profile', [\App\Http\Controllers\ClientDashboardController::class, 'printProfile'])->name('client.print_profile'); Route::get('/client/update-info', [\App\Http\Controllers\ClientDashboardController::class, 'updateInfo'])->name('client.update_info'); Route::put('/client/update-info', [\App\Http\Controllers\ClientDashboardController::class, 'storeUpdateInfo'])->name('client.store_update_info'); Route::get('/client/update-nok', [\App\Http\Controllers\ClientDashboardController::class, 'updateNok'])->name('client.update_nok'); Route::put('/client/update-nok', [\App\Http\Controllers\ClientDashboardController::class, 'storeUpdateNok'])->name('client.store_update_nok'); Route::get('/client/update-occupation', [\App\Http\Controllers\ClientDashboardController::class, 'updateOccupation'])->name('client.update_occupation'); Route::put('/client/update-occupation', [\App\Http\Controllers\ClientDashboardController::class, 'storeUpdateOccupation'])->name('client.store_update_occupation'); Route::get('/client/appointment-history', [\App\Http\Controllers\ClientDashboardController::class, 'appointmentHistory'])->name('client.appointment_history'); Route::get('/client/video-session-history', [\App\Http\Controllers\ClientDashboardController::class, 'videoSessionHistory'])->name('client.video_session_history'); Route::get('/client/video-session-book', [\App\Http\Controllers\ClientDashboardController::class, 'videoSessionBook'])->name('client.video_session_book'); Route::post('/client/video-session-book', [\App\Http\Controllers\ClientDashboardController::class, 'storeVideoSessionBook'])->name('client.store_video_session_book'); Route::get('/client/change-password', [\App\Http\Controllers\ClientDashboardController::class, 'changePassword'])->name('client.change_password'); Route::post('/client/change-password', [\App\Http\Controllers\ClientDashboardController::class, 'storeChangePassword'])->name('client.store_change_password'); Route::post('/client/logout', [\App\Http\Controllers\ClientDashboardController::class, 'logout'])->name('client.logout'); // Custom password reset routes for client Route::get('/forgot-password', [CustomPasswordResetController::class, 'showRequestForm'])->name('password.request'); Route::post('/forgot-password', [CustomPasswordResetController::class, 'sendResetLink'])->name('password.email'); Route::get('/reset-password', [CustomPasswordResetController::class, 'showResetForm'])->name('password.reset'); Route::post('/reset-password', [CustomPasswordResetController::class, 'reset'])->name('password.update'); // Custom registration routes for admin sign up Route::get('/register', [CustomRegisterController::class, 'showRegisterForm'])->name('register'); Route::post('/register', [CustomRegisterController::class, 'register'])->name('register.submit'); // Client Registration (public flow) use App\Http\Controllers\ClientRegistrationController; Route::get('/client/register', [ClientRegistrationController::class, 'create'])->name('client.register'); Route::post('/client/register', [ClientRegistrationController::class, 'store'])->name('client.register.submit'); // Client Management CRUD (admin flow) Route::resource('client', ClientController::class); Route::get('/', function () { $setting = \App\Models\Setting::first(); return view('system_home', compact('setting')); }); // Custom login routes for legacy flows Route::get('/login', [CustomLoginController::class, 'showLoginSelection'])->name('login'); Route::get('/login/client', [CustomLoginController::class, 'showClientLoginForm'])->name('login.client.form'); Route::get('/login/staff', [CustomLoginController::class, 'showStaffLoginForm'])->name('login.staff.form'); Route::post('/login/client', [CustomLoginController::class, 'clientLogin'])->name('login.client'); Route::post('/login/staff', [CustomLoginController::class, 'staffLogin'])->name('login.staff'); Route::post('/logout', [CustomLoginController::class, 'logout'])->name('logout'); Route::get('/dashboard', function () { return view('dashboard'); })->middleware(['auth', 'verified'])->name('dashboard'); Route::middleware('auth')->group(function () { Route::get('/profile', [ProfileController::class, 'edit'])->name('profile.edit'); Route::patch('/profile', [ProfileController::class, 'update'])->name('profile.update'); Route::delete('/profile', [ProfileController::class, 'destroy'])->name('profile.destroy'); }); require __DIR__.'/auth.php'; // Counseling dashboard (for staff/counselors) Route::get('/counseling/dashboard', [\App\Http\Controllers\CounselingDashboardController::class, 'index'])->name('counseling.dashboard'); // Settings module Route::get('/settings', [SettingController::class, 'index'])->name('settings.index')->middleware('can:settings.view'); Route::get('/settings/edit', [SettingController::class, 'edit'])->name('settings.edit')->middleware('can:settings.edit'); Route::post('/settings/update', [SettingController::class, 'update'])->name('settings.update')->middleware('can:settings.edit'); Route::get('/settings/ui', [SettingController::class, 'uiEdit'])->name('settings.ui')->middleware('can:settings.edit'); Route::post('/settings/ui', [SettingController::class, 'uiUpdate'])->name('settings.ui.update')->middleware('can:settings.edit'); // Booking Management (testing without permission middleware) Route::get('bookings', [BookingController::class, 'index'])->name('bookings.index'); Route::get('bookings/search-clients', [BookingController::class, 'searchClients'])->name('bookings.search-clients'); Route::get('bookings/create', [BookingController::class, 'create'])->name('bookings.create'); Route::post('bookings', [BookingController::class, 'store'])->name('bookings.store'); Route::post('bookings/{booking}/approve', [BookingController::class, 'approve'])->name('bookings.approve'); Route::put('bookings/{booking}', [BookingController::class, 'update'])->name('bookings.update'); Route::post('bookings/{booking}/reject', [BookingController::class, 'reject'])->name('bookings.reject'); Route::get('counseling-sessions', [CounselingSessionController::class, 'index'])->name('counseling-sessions.index'); Route::get('counseling-sessions/{booking}/start', [CounselingSessionController::class, 'start'])->name('counseling-sessions.start'); Route::patch('counseling-sessions/{booking}/close', [CounselingSessionController::class, 'closeBooking'])->name('counseling-sessions.close'); Route::post('counseling-sessions/{booking}/save-intake', [CounselingSessionController::class, 'saveIntake'])->name('counseling-sessions.save-intake'); Route::get('counseling-sessions-walkin', [CounselingSessionController::class, 'createWalkIn'])->name('counseling-sessions.create-walkin'); Route::post('counseling-sessions-walkin', [CounselingSessionController::class, 'storeWalkIn'])->name('counseling-sessions.store-walkin'); // Client Reports Module use App\Http\Controllers\ClientReportController; Route::prefix('client-reports')->name('client-reports.')->group(function () { Route::get('/demographics', [ClientReportController::class, 'demographics'])->name('demographics'); }); // Debug route to test session persistence Route::get('test-session', function () { session(['test' => 'ok']); return session('test', 'fail'); });