From 06e15d316cd794d22623b5ab662679579f1e6817 Mon Sep 17 00:00:00 2001 From: nanaya Date: Thu, 27 Oct 2022 22:04:27 +0900 Subject: [PATCH] Preload solo score performance --- app/Models/Score/Best/Model.php | 1 + app/Models/Score/Model.php | 7 +++++++ app/Transformers/ScoreTransformer.php | 1 + 3 files changed, 9 insertions(+) diff --git a/app/Models/Score/Best/Model.php b/app/Models/Score/Best/Model.php index 6ca0db20ee0..05454ebe0d0 100644 --- a/app/Models/Score/Best/Model.php +++ b/app/Models/Score/Best/Model.php @@ -85,6 +85,7 @@ public function getAttribute($key) 'best' => $this, 'data' => $this->getData(), 'enabled_mods' => $this->getEnabledModsAttribute($this->getRawAttribute('enabled_mods')), + 'nonexistent' => null, 'pass' => true, 'beatmap', diff --git a/app/Models/Score/Model.php b/app/Models/Score/Model.php index 57e7467a41c..b523b77e278 100644 --- a/app/Models/Score/Model.php +++ b/app/Models/Score/Model.php @@ -10,6 +10,7 @@ use App\Models\Beatmap; use App\Models\Model as BaseModel; use App\Models\Solo\ScoreData; +use App\Models\Solo\ScorePerformance; use App\Models\Traits\Scoreable; use App\Models\User; @@ -114,6 +115,11 @@ public function best() return $this->belongsTo("App\\Models\\Score\\Best\\{$basename}", 'high_score_id', 'score_id'); } + public function performance() + { + return $this->belongsTo(ScorePerformance::class, 'nonexistent'); + } + public function user() { return $this->belongsTo(User::class, 'user_id'); @@ -148,6 +154,7 @@ public function getAttribute($key) 'data' => $this->getData(), 'enabled_mods' => $this->getEnabledModsAttribute($this->getRawAttribute('enabled_mods')), + 'nonexistent' => null, 'beatmap', 'best', diff --git a/app/Transformers/ScoreTransformer.php b/app/Transformers/ScoreTransformer.php index 166570dfa41..de54324b3d1 100644 --- a/app/Transformers/ScoreTransformer.php +++ b/app/Transformers/ScoreTransformer.php @@ -24,6 +24,7 @@ class ScoreTransformer extends TransformerAbstract const USER_PROFILE_INCLUDES_PRELOAD = [ 'beatmap', 'beatmap.beatmapset', + 'performance', // it's for user profile so the user is already available // 'user', ];