Expand IGDB data: collections, game modes, themes, perspectives, videos, websites, age ratings, similar games; add backfill command
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
0eab3e8dbf
commit
2a724c0ae2
@@ -47,7 +47,11 @@ class GameController extends Controller
|
||||
|
||||
public function show(Game $game)
|
||||
{
|
||||
$game->load(['genres', 'platforms', 'companies', 'screenshots', 'reviews.user']);
|
||||
$game->load([
|
||||
'genres', 'platforms', 'companies', 'screenshots', 'reviews.user',
|
||||
'collection', 'gameModes', 'themes', 'playerPerspectives', 'videos', 'websites',
|
||||
'similarGames' => fn($q) => $q->published()->with(['genres'])->limit(6),
|
||||
]);
|
||||
|
||||
$userGame = null;
|
||||
$userReview = null;
|
||||
@@ -64,8 +68,10 @@ class GameController extends Controller
|
||||
->limit(20)
|
||||
->get();
|
||||
|
||||
$similarGames = collect();
|
||||
if ($game->genres->isNotEmpty()) {
|
||||
// Use IGDB similar_games if available, otherwise fall back to genre-based
|
||||
if ($game->similarGames->isNotEmpty()) {
|
||||
$similarGames = $game->similarGames;
|
||||
} elseif ($game->genres->isNotEmpty()) {
|
||||
$similarGames = Game::published()
|
||||
->whereHas('genres', fn($q) => $q->whereIn('genres.id', $game->genres->pluck('id')))
|
||||
->where('id', '!=', $game->id)
|
||||
@@ -73,6 +79,8 @@ class GameController extends Controller
|
||||
->orderByDesc('rating_avg')
|
||||
->limit(6)
|
||||
->get();
|
||||
} else {
|
||||
$similarGames = collect();
|
||||
}
|
||||
|
||||
$response = view('games.show', compact('game', 'userGame', 'userReview', 'userLists', 'comments', 'similarGames'));
|
||||
|
||||
Reference in New Issue
Block a user