diff options
Diffstat (limited to 'app/Rugby/Model/Match.php')
-rw-r--r-- | app/Rugby/Model/Match.php | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/app/Rugby/Model/Match.php b/app/Rugby/Model/Match.php new file mode 100644 index 0000000..5447ef5 --- /dev/null +++ b/app/Rugby/Model/Match.php @@ -0,0 +1,59 @@ +<?php + +namespace App\Rugby\Model; + +use App\Rugby\Model\Team; +use App\Rugby\Model\Tournament; +use App\Rugby\Model\Venue; + +use Illuminate\Database\Eloquent\Model; + +class Match extends Model +{ + protected $table = 'matches'; + + protected $casts = ['date' => 'datetime:Y-m-d']; + + protected $fillable = ['score', 'half_score', 'referee', 'date']; + + public function teams() + { + return $this->belongsToMany(Team::class, 'match_team'); + } + + public function venue() + { + return $this->hasOne(Venue::class, 'id'); + } + + public function getDisplayName() + { + $venue = Venue::find($this->venue_id); + + if (!$venue) { + return 'Unknown'; + } + + return $venue->name; + } + + public function getDisplayDate() + { + return (new \Carbon\Carbon($this->date))->format('M d Y'); + } + + public function homeTeam() + { + return $this->teams()->wherePivot('is_home', '=', true); + } + + public function awayTeam() + { + return $this->teams()->wherePivot('is_home', '=', false); + } + + public function tournaments() + { + return $this->belongsToMany(Tournament::class, 'match_tournament'); + } +} |