2026-03-11 23:33:10 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
|
use Laravel\Fortify\Features;
|
|
|
|
|
|
|
|
|
|
Route::inertia('/', 'Welcome', [
|
|
|
|
|
'canRegister' => Features::enabled(Features::registration()),
|
|
|
|
|
])->name('home');
|
|
|
|
|
|
2026-03-27 15:16:45 +01:00
|
|
|
Route::get('team/invitation/{token}/accept', \App\Http\Controllers\TeamInvitationAcceptController::class)
|
|
|
|
|
->name('team.invitation.accept');
|
|
|
|
|
|
2026-03-11 23:33:10 +00:00
|
|
|
Route::middleware(['auth', 'verified'])->group(function () {
|
|
|
|
|
Route::get('dashboard', \App\Http\Controllers\DashboardController::class)->name('dashboard');
|
|
|
|
|
Route::post('workspace/switch', \App\Http\Controllers\WorkspaceSwitchController::class)
|
|
|
|
|
->name('workspace.switch');
|
|
|
|
|
|
|
|
|
|
Route::middleware('workspace')->group(function () {
|
|
|
|
|
Route::resource('clients', \App\Http\Controllers\ClientController::class);
|
2026-03-26 14:31:36 +01:00
|
|
|
Route::post('declarations/bulk-notify', [\App\Http\Controllers\BulkNotificationController::class, 'store'])
|
|
|
|
|
->middleware('throttle:5,1')
|
|
|
|
|
->name('declarations.bulk-notify');
|
2026-03-12 18:25:32 +00:00
|
|
|
Route::resource('declarations', \App\Http\Controllers\DeclarationController::class);
|
|
|
|
|
Route::post('declarations/{declaration}/messages', [\App\Http\Controllers\DeclarationMessageController::class, 'store'])
|
|
|
|
|
->name('declarations.messages.store');
|
|
|
|
|
Route::post('declarations/{declaration}/media', [\App\Http\Controllers\DeclarationMediaController::class, 'store'])
|
|
|
|
|
->name('declarations.media.store');
|
|
|
|
|
Route::get('declarations/{declaration}/media/{mediaId}', [\App\Http\Controllers\DeclarationMediaController::class, 'download'])
|
|
|
|
|
->name('declarations.media.download')
|
2026-03-11 23:33:10 +00:00
|
|
|
->whereNumber('mediaId');
|
2026-03-12 18:25:32 +00:00
|
|
|
Route::post('declarations/{declaration}/mentions', [\App\Http\Controllers\DeclarationMentionController::class, 'store'])
|
2026-03-11 23:33:10 +00:00
|
|
|
->middleware('throttle:10,1')
|
2026-03-12 18:25:32 +00:00
|
|
|
->name('declarations.mentions.store');
|
2026-03-26 11:26:22 +01:00
|
|
|
Route::post('declarations/{declaration}/nudge', [\App\Http\Controllers\NudgeController::class, 'store'])
|
|
|
|
|
->middleware('throttle:10,1')
|
|
|
|
|
->name('declarations.nudge');
|
2026-03-18 00:12:50 +00:00
|
|
|
|
|
|
|
|
Route::get('team', [\App\Http\Controllers\TeamController::class, 'index'])->name('team.index');
|
|
|
|
|
Route::post('team/invite', [\App\Http\Controllers\TeamController::class, 'invite'])->name('team.invite');
|
|
|
|
|
Route::patch('team/{workspaceUserId}/role', [\App\Http\Controllers\TeamController::class, 'updateRole'])->name('team.updateRole');
|
|
|
|
|
Route::put('team/{workspaceUserId}/permissions', [\App\Http\Controllers\TeamController::class, 'updatePermissions'])->name('team.updatePermissions');
|
|
|
|
|
Route::delete('team/{workspaceUserId}', [\App\Http\Controllers\TeamController::class, 'remove'])->name('team.remove');
|
2026-03-11 23:33:10 +00:00
|
|
|
|
2026-03-26 11:26:22 +01:00
|
|
|
Route::get('notifications', [\App\Http\Controllers\NotificationController::class, 'index'])->name('notifications.index');
|
|
|
|
|
Route::post('notifications/mark-all-read', [\App\Http\Controllers\NotificationController::class, 'markAllAsRead'])->name('notifications.readAll');
|
|
|
|
|
Route::post('notifications/{id}/read', [\App\Http\Controllers\NotificationController::class, 'markAsRead'])->name('notifications.read');
|
|
|
|
|
});
|
2026-03-11 23:33:10 +00:00
|
|
|
|
|
|
|
|
Route::middleware('admin')->group(function () {
|
|
|
|
|
Route::resource('users', \App\Http\Controllers\UserController::class);
|
|
|
|
|
Route::resource('workspaces', \App\Http\Controllers\WorkspaceController::class);
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
2026-03-12 18:25:32 +00:00
|
|
|
Route::prefix('c')->name('client.')->middleware('client-portal')->group(function () {
|
2026-03-11 23:33:10 +00:00
|
|
|
Route::get('upload/{token}', [\App\Http\Controllers\Client\UploadController::class, 'show'])
|
|
|
|
|
->name('upload');
|
|
|
|
|
Route::post('upload/{token}', [\App\Http\Controllers\Client\UploadController::class, 'store'])
|
|
|
|
|
->name('upload.store');
|
|
|
|
|
Route::get('confirm/{token}', [\App\Http\Controllers\Client\ConfirmController::class, 'show'])
|
|
|
|
|
->name('confirm');
|
|
|
|
|
Route::post('confirm/{token}', [\App\Http\Controllers\Client\ConfirmController::class, 'store'])
|
|
|
|
|
->name('confirm.store');
|
|
|
|
|
Route::get('refuse/{token}', [\App\Http\Controllers\Client\RefuseController::class, 'show'])
|
|
|
|
|
->name('refuse');
|
|
|
|
|
Route::post('refuse/{token}', [\App\Http\Controllers\Client\RefuseController::class, 'store'])
|
|
|
|
|
->name('refuse.store');
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
require __DIR__.'/settings.php';
|