]> git.localhorst.tv Git - alttp.git/blobdiff - app/Models/User.php
random comments on profile page
[alttp.git] / app / Models / User.php
index ff45c6177c234acddda70e6b62493863fb48d151..8373b5d236c134a5cd0f2fc8127505e0dfb53966 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;
@@ -12,6 +13,33 @@ class User extends Authenticatable
 {
        use HasApiTokens, HasFactory, Notifiable;
 
+       public function findResult(Round $round) {
+               foreach ($round->results as $result) {
+                       if ($this->id == $result->user_id) {
+                               return $result;
+                       }
+               }
+               return null;
+       }
+
+       public function getName() {
+               if (!empty($this->nickname)) {
+                       return $this->nickname;
+               }
+               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';
        }