Console::orderBy('name')->get(), ]); } public function search(Request $request): JsonResponse { $request->validate([ 'query' => 'required|string|min:2', 'console' => 'nullable|string', ]); $results = $this->scraper->search( $request->query('query'), $request->query('console') )->map(fn ($result) => ScraperResultData::from($result)); return response()->json(['results' => $results]); } public function apply(Request $request, string $slug): RedirectResponse { $game = Game::where('slug', $slug)->firstOrFail(); $request->validate([ 'cover_url' => 'required|url', ]); $path = $this->scraper->downloadCover( $request->cover_url, $game ); $game->update(['cover_path' => $path]); return redirect()->route('games.show', $game) ->with('success', 'Cover updated successfully.'); } }