the browser-facing portion of osu!
at master 1.1 kB view raw
1<?php 2 3// Copyright (c) ppy Pty Ltd <contact@ppy.sh>. Licensed under the GNU Affero General Public License v3.0. 4// See the LICENCE file in the repository root for full licence text. 5 6declare(strict_types=1); 7 8namespace App\Models\LegacyScoreFirst; 9 10use App\Models\Beatmap; 11use App\Models\Model as BaseModel; 12use App\Models\Solo\Score; 13use Illuminate\Database\Eloquent\Builder; 14use Illuminate\Database\Eloquent\Relations\BelongsTo; 15 16abstract class Model extends BaseModel 17{ 18 protected static int $rulesetId; 19 20 public $incrementing = false; 21 public $timestamps = false; 22 protected $primaryKey = 'beatmap_id'; 23 24 public function scopeDefault(Builder $query): Builder 25 { 26 return $query->whereHas('beatmap.beatmapset')->whereHas('score'); 27 } 28 29 public function beatmap(): BelongsTo 30 { 31 return $this->belongsTo(Beatmap::class, 'beatmap_id'); 32 } 33 34 public function score(): BelongsTo 35 { 36 return $this->belongsTo(Score::class, 'score_id', 'legacy_score_id')->where('ruleset_id', static::$rulesetId); 37 } 38}