$request->user()->reservations() ->with('items.asset:id,name,asset_tag') ->latest() ->paginate(15), ]); } public function create(Request $request): Response { return Inertia::render('reservations/create', [ 'assets' => SnipeAsset::query() ->where('active', true) ->where('requestable', true) ->whereNull('assigned_id') ->orderBy('name') ->get(['id', 'name', 'asset_tag', 'model_name', 'category_name', 'location_name']), 'selectedAssetId' => $request->integer('asset'), ]); } public function store(StoreReservationRequest $request, ReservationService $service): RedirectResponse { /** @var array{purpose:string, usage_location:string, starts_at:string, ends_at:string, asset_ids:list} $data */ $data = $request->safe()->only(['purpose', 'usage_location', 'starts_at', 'ends_at', 'asset_ids']); $reservation = $service->createPending($request->user(), $data); return to_route('dashboard')->with('success', "Requisição {$reservation->reference} submetida para aprovação."); } }