From f00b52269fee3a2c28830de5fa11b4ba35e5a807 Mon Sep 17 00:00:00 2001 From: Application-drop-up Date: Fri, 22 May 2026 09:13:02 +0900 Subject: [PATCH] perf: remove images eager load from list and search endpoints main_image_url is now stored directly on world_heritage_sites, so thumbnail_url resolves from that column without touching world_heritage_site_images. Loading the images relation on every list/search page was a redundant query since the fallback to images[0].url is never reached for sites that have main_image_url populated. The detail endpoint (getHeritageById) retains its full images eager load because it renders the complete image gallery. Closes #465 Part of #463 --- src/app/Packages/Domains/WorldHeritageQueryService.php | 3 --- src/app/Packages/Domains/WorldHeritageReadQueryService.php | 3 --- 2 files changed, 6 deletions(-) diff --git a/src/app/Packages/Domains/WorldHeritageQueryService.php b/src/app/Packages/Domains/WorldHeritageQueryService.php index 3f4a0c3..9e234b7 100644 --- a/src/app/Packages/Domains/WorldHeritageQueryService.php +++ b/src/app/Packages/Domains/WorldHeritageQueryService.php @@ -58,9 +58,6 @@ public function getAllHeritages( 'countries.region', ]); }, - 'images' => static function ($imagesQuery): void { - $imagesQuery->where('is_primary', true)->limit(1); - }, 'descriptions' => static function ($descriptionsQuery): void { $descriptionsQuery->select([ 'world_heritage_descriptions.world_heritage_site_id', diff --git a/src/app/Packages/Domains/WorldHeritageReadQueryService.php b/src/app/Packages/Domains/WorldHeritageReadQueryService.php index 889d053..a897451 100644 --- a/src/app/Packages/Domains/WorldHeritageReadQueryService.php +++ b/src/app/Packages/Domains/WorldHeritageReadQueryService.php @@ -41,9 +41,6 @@ public function findByIdsPreserveOrder(array $ids): Collection $q->select('countries.state_party_code', 'countries.name_en', 'countries.name_jp', 'countries.region') ->orderBy('countries.state_party_code', 'asc'); }, - 'images' => static function ($imageQuery): void { - $imageQuery->where('is_primary', true)->limit(1); - }, 'descriptions' => static function ($descriptionQuery): void { $descriptionQuery->select([ 'world_heritage_descriptions.world_heritage_site_id',