registry = $registry; $this->transitionQuery = $transitionQuery; $this->placesRepository = $placesRepository; $this->transition = $transition; $this->commands = $commands; } public function findFirstPlace(array $places, $module) { $current_places = []; foreach ($places as $place) { $current_places[] = $place['currentPlace']; } $color = null; if (count($current_places) > 0) { $color = $this->placesRepository->findFirstPlace($current_places, $module); } return $color; } public function changePlace($object_id, $transition_key) { $statusView = $this->StatusViewPlace($object_id, $transition_key); $changePlace = $this->registry->applyStatus($statusView['view'], $statusView['transition']->getConfiguration()->getId()); if ($changePlace) { $transitionView = $this->transitionQuery->read($transition_key); $this->commands->getCommand($statusView['view'], $transitionView, $object_id); } return $changePlace; } private function StatusViewPlace($object_id, $transition_key) { $transition = $this->transition->findByKey($transition_key); return ['view'=>new StatusView( (int) $object_id, $transition_key ), 'transition'=>$transition]; } public function readByConfig(int $configId) { $places = $this->placesRepository->findByConfigId($configId); $placesView = []; foreach ($places as $place) { $placesView[] = new PlaceReadView( $place->getId(), $place->getName(), $place->getDateEnable() ); } return $placesView; } public function getKeysByConfig(int $configId) { $places = $this->placesRepository->findByConfigId($configId); $placesView = []; foreach ($places as $place) { $placesView[] = [ "id" => $place->getId(), "key" => $place->getKey() ]; } return $placesView; } public function getKeysByIds(array $ids) { $places = $this->placesRepository->findByIds($ids); $result = []; foreach($places as $place) { $result[] = ["id" => $place->getId(), "key" => $place->getKey()]; } return $result; } }