'boolean', 'release_date' => 'date', ]; public function scopePublished( Builder $query ): Builder { return $query->where( 'state', 'published' ); } /** * Return game link. * @return BelongsTo */ public function game(): BelongsTo { return $this->belongsTo(Game::class); } public function platform(): BelongsTo { return $this->belongsTo(Platform::class); } public function getRealPlatform(): ?Platform { return $this->game?->platform ?? $this->platform; } public function status(): BelongsTo { return $this->belongsTo(Status::class ); } public function authors(): BelongsToMany { return $this->belongsToMany(Author::class, 'entry_authors'); } public function languages(): BelongsToMany { return $this->belongsToMany(Language::class, 'entry_languages'); } public function modifications(): BelongsToMany { return $this->belongsToMany( Modification::class, 'entry_modifications'); } public function files(): HasMany { return $this->hasMany(EntryFile::class)->orderBy('filename'); } public function gallery(): HasMany { return $this->hasMany(EntryGallery::class)->orderBy('id'); } public function hashes(): HasMany { return $this->hasMany(EntryHash::class); } }