/** * Handle the event. * * @param Events $event * @return void */ public function handle(TournamentWasStarted $event) { $this->setTournament($event->tournament); if (Tournament::MIN_TEAMS_AMOUNT > count($this->teams)) { throw new \UnexpectedValueException('Tournament should have at least 2 teams.'); } /** * @var $matches Collection */ $matches = $this->tournament->matches()->getResults(); if (0 < $matches->count()) { throw new \UnexpectedValueException('Tournament draw has been already done.'); } $this->draw(); }
public function updating(Tournament $model) { $dirtyStatus = array_get($model->getDirty(), 'status'); if (Tournament::STATUS_STARTED === $dirtyStatus && 1 > $model->matches()->getResults()->count()) { Log::debug('Tournament ' . $model->name . ' was started'); event(new TournamentWasStarted($model)); } if (Tournament::STATUS_DRAFT === $dirtyStatus) { Log::debug('Tournament ' . $model->name . ' was reset'); event(new TournamentWasReset($model)); } }