feat: complete approval workflow

This commit is contained in:
2026-08-04 16:51:51 +01:00
parent c2136bc250
commit 809eab9d4a
26 changed files with 1156 additions and 41 deletions

View File

@@ -4,6 +4,7 @@ use App\Http\Controllers\Admin\SnipeItController;
use App\Http\Controllers\ApprovalController;
use App\Http\Controllers\AssetController;
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\NotificationController;
use App\Http\Controllers\ReservationController;
use Illuminate\Support\Facades\Route;
@@ -12,17 +13,22 @@ Route::get('/', fn () => redirect()->route(auth()->check() ? 'dashboard' : 'logi
Route::middleware(['auth', 'verified'])->group(function () {
Route::get('dashboard', DashboardController::class)->name('dashboard');
Route::get('equipamentos', [AssetController::class, 'index'])->name('assets.index');
Route::get('notificacoes', [NotificationController::class, 'index'])->name('notifications.index');
Route::post('notificacoes/ler-todas', [NotificationController::class, 'readAll'])->name('notifications.read-all');
Route::post('notificacoes/{notification}/ler', [NotificationController::class, 'read'])->name('notifications.read');
Route::get('requisicoes', [ReservationController::class, 'index'])->name('reservations.index');
Route::get('requisicoes/calendario', [ReservationController::class, 'calendar'])->name('reservations.calendar');
Route::get('requisicoes/nova', [ReservationController::class, 'create'])->name('reservations.create');
Route::post('requisicoes', [ReservationController::class, 'store'])->name('reservations.store');
Route::post('requisicoes/{reservation:uuid}/cancelar', [ReservationController::class, 'cancel'])->name('reservations.cancel');
Route::post('requisicoes/{reservation:uuid}/responder', [ReservationController::class, 'respondToInformation'])->name('reservations.respond');
Route::middleware('can:approve-reservations')->prefix('aprovacoes')->name('approvals.')->group(function () {
Route::get('/', [ApprovalController::class, 'index'])->name('index');
Route::post('{reservation:uuid}/aprovar', [ApprovalController::class, 'approve'])->name('approve');
Route::post('{reservation:uuid}/rejeitar', [ApprovalController::class, 'reject'])->name('reject');
Route::post('{reservation:uuid}/pedir-esclarecimentos', [ApprovalController::class, 'requestInformation'])->name('request-information');
Route::post('{reservation:uuid}/itens/{item}/substituir', [ApprovalController::class, 'substitute'])->name('substitute');
});
Route::middleware('can:administer')->prefix('administracao')->name('admin.')->group(function () {