]> git.localhorst.tv Git - alttp.git/blobdiff - app/Models/Round.php
tournament/guild connection
[alttp.git] / app / Models / Round.php
index 3777df9e8e96040717fa8ce3e97e0d878188463c..18be60fe015d346a085a416e4990aee3458c7447 100644 (file)
@@ -10,6 +10,16 @@ class Round extends Model
        use HasFactory;
 
 
+       public function isComplete() {
+               if (count($this->tournament->participants) == 0) return false;
+               if (count($this->results) == 0) return false;
+               foreach ($this->tournament->getRunners() as $participant) {
+                       $result = $participant->findResult($this);
+                       if (!$result || !$result->has_finished) return false;
+               }
+               return true;
+       }
+
        public function updatePlacement() {
                $runners = [];
                foreach ($this->tournament->participants as $p) {
@@ -53,10 +63,21 @@ class Round extends Model
        }
 
 
+       public function hideResults() {
+               foreach ($this->results as $result) {
+                       $result->makeHidden(['forfeit', 'placement', 'score', 'time']);
+               }
+       }
+
+
        public function results() {
                return $this->hasMany(Result::class);
        }
 
+       public function rolled_by_user() {
+               return $this->belongsTo(User::class, 'rolled_by');
+       }
+
        public function tournament() {
                return $this->belongsTo(Tournament::class);
        }
@@ -65,11 +86,17 @@ class Round extends Model
        protected $casts = [
                'code' => 'array',
                'locked' => 'boolean',
+               'no_record' => 'boolean',
        ];
 
        protected $fillable = [
                'number',
+               'no_record',
                'tournament_id',
        ];
 
+       protected $with = [
+               'rolled_by_user',
+       ];
+
 }