X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=app%2FModels%2FUser.php;h=b4950c306c458fc5973f2a899f7021f93603f53d;hb=2ab05ab7927e8b21887ffa42d04eb9d4ff899382;hp=dd129821890d28e9736b81bd6aaa800f35d15333;hpb=55f2d7cd6c290a0d26db177d54d20c393f890bbb;p=alttp.git diff --git a/app/Models/User.php b/app/Models/User.php index dd12982..b4950c3 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -12,6 +12,88 @@ class User extends Authenticatable { use HasApiTokens, HasFactory, Notifiable; + public function isParticipant(Tournament $tournament) { + foreach ($tournament->participants as $participant) { + if ($participant->user_id == $this->id) { + return true; + } + } + return false; + } + + public function isRunner(Tournament $tournament) { + foreach ($tournament->participants as $participant) { + if ($participant->user_id == $this->id) { + return in_array('runner', $participant->roles); + } + } + return false; + } + + public function isTournamentAdmin(Tournament $tournament) { + foreach ($tournament->participants as $participant) { + if ($participant->user_id == $this->id) { + return in_array('admin', $participant->roles); + } + } + return false; + } + + + public function participation() { + return $this->hasMany(Participant::class); + } + + public function results() { + return $this->hasMany(Result::class); + } + + public function rounds() { + return $this->belongsToMany(Round::class, 'results'); + } + + public function tournaments() { + return $this->belongsToMany(Tournament::class, 'participants'); + } + + + public function round_first() { + return $this->rounds() + ->whereNot('locked') + ->wherePivot('placement', 1); + } + + public function round_second() { + return $this->rounds() + ->whereNot('locked') + ->wherePivot('placement', 2); + } + + public function round_third() { + return $this->rounds() + ->whereNot('locked') + ->wherePivot('placement', 3); + } + + public function tournament_first() { + return $this->tournaments() + ->whereNot('locked') + ->wherePivot('placement', 1); + } + + public function tournament_second() { + return $this->tournaments() + ->whereNot('locked') + ->wherePivot('placement', 2); + } + + public function tournament_third() { + return $this->tournaments() + ->whereNot('locked') + ->wherePivot('placement', 3); + } + + /** * The attributes that are mass assignable. * @@ -36,6 +118,8 @@ class User extends Authenticatable * @var array */ protected $hidden = [ + 'email', + 'mfa_enabled', 'refresh_token', 'remember_token', ];