From 745cf2431a71d0e6c5f08f8605839279b2f7496e Mon Sep 17 00:00:00 2001 From: Devian Date: Thu, 22 Apr 2021 17:03:46 +0800 Subject: Initiate commit --- src/Entity/Scorm.php | 146 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 src/Entity/Scorm.php (limited to 'src/Entity/Scorm.php') diff --git a/src/Entity/Scorm.php b/src/Entity/Scorm.php new file mode 100644 index 0000000..4095986 --- /dev/null +++ b/src/Entity/Scorm.php @@ -0,0 +1,146 @@ +uuid; + } + + /** + * @param int $id + */ + public function setUuid($uuid) + { + $this->uuid = $uuid; + } + + /** + * @return int + */ + public function getId() + { + return $this->id; + } + + /** + * @param int $id + */ + public function setId($id) + { + $this->id = $id; + } + + /** + * @return string + */ + public function getVersion() + { + return $this->version; + } + + /** + * @param string $version + */ + public function setVersion($version) + { + $this->version = $version; + } + + /** + * @return string + */ + public function getHashName() + { + return $this->hashName; + } + + /** + * @param string $hashName + */ + public function setHashName($hashName) + { + $this->hashName = $hashName; + } + + /** + * @return float + */ + public function getRatio() + { + return $this->ratio; + } + + /** + * @param float $ratio + */ + public function setRatio($ratio) + { + $this->ratio = $ratio; + } + + /** + * @return Sco[] + */ + public function getScos() + { + return $this->scos; + } + + /** + * @return Sco[] + */ + public function getRootScos() + { + $roots = []; + + if (!empty($this->scos)) { + foreach ($this->scos as $sco) { + if (is_null($sco->getScoParent())) { + // Root sco found + $roots[] = $sco; + } + } + } + + return $roots; + } + + public function serialize(Scorm $scorm) + { + return [ + 'id' => $scorm->getUuid(), + 'version' => $scorm->getVersion(), + 'hashName' => $scorm->getHashName(), + 'ratio' => $scorm->getRatio(), + 'scos' => $this->serializeScos($scorm), + ]; + } + + private function serializeScos(Scorm $scorm) + { + return array_map(function (Sco $sco) { + return $sco->serialize($sco); + }, $scorm->getRootScos()); + } +} -- cgit v1.2.3