auditionadmin/app/Models/Entry.php

48 lines
1.1 KiB
PHP

<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\Relations\HasManyThrough;
use Illuminate\Database\Eloquent\Relations\HasOneThrough;
class Entry extends Model
{
use HasFactory;
protected $guarded = [];
public function student(): BelongsTo
{
return $this->belongsTo(Student::class);
}
public function audition(): BelongsTo
{
return $this->belongsTo(Audition::class);
}
public function school(): HasOneThrough
{
return $this->hasOneThrough(
School::class,
Student::class,
'id',
'id',
'student_id',
'school_id');
}
public function scoreSheets(): HasMany
{
return $this->hasMany(ScoreSheet::class);
}
public function scoreFromJudge($user): ScoreSheet|null
{
return $this->scoreSheets()->where('user_id','=',$user)->first() ?? null;
}
}