]> git.localhorst.tv Git - alttp.git/blobdiff - app/Models/User.php
slightly better way of fixing timezones
[alttp.git] / app / Models / User.php
index 164fb026bfecba420a784daf83b44697f37cd869..ad5215f064acc5407b2d1bc48664c549c3e41fbb 100644 (file)
@@ -2,6 +2,7 @@
 
 namespace App\Models;
 
+use Illuminate\Database\Eloquent\Builder;
 use Illuminate\Database\Eloquent\Factories\HasFactory;
 use Illuminate\Foundation\Auth\User as Authenticatable;
 use Illuminate\Notifications\Notifiable;
@@ -28,11 +29,25 @@ class User extends Authenticatable
                return $this->username;
        }
 
+       public function getRandomQuoteAttribute() {
+               return $this->results()
+                       ->where('comment', '!=', '')
+                       ->whereHas('round', function(Builder $query) {
+                               $query->where('locked', true);
+                       })
+                       ->inRandomOrder()
+                       ->first();
+       }
+
 
        public function isAdmin() {
                return $this->role === 'admin';
        }
 
+       public function isPrivileged() {
+               return $this->role === 'special' || $this->isAdmin();
+       }
+
        public function isApplicant(Tournament $tournament) {
                foreach ($tournament->applications as $applicant) {
                        if ($applicant->user_id == $this->id) {
@@ -100,6 +115,10 @@ class User extends Authenticatable
        }
 
 
+       public function channel_crews() {
+               return $this->hasMany(ChannelCrew::class);
+       }
+
        public function participation() {
                return $this->hasMany(Participant::class);
        }
@@ -204,6 +223,7 @@ class User extends Authenticatable
                'discriminator' => 'string',
                'email' => 'string',
                'avatar' => 'string',
+               'avatar_cached' => 'datetime',
                'verified' => 'boolean',
                'locale' => 'string',
                'mfa_enabled' => 'boolean',