public function persistVersion(Version $version)
 {
     $data = array($version->getPackage()->getId(), $version->getVersion(), $version->getReferenceHash(), $version->getReferenceName(), $version->getLicense(), $version->getCreatedAt()->format('Y-m-d H:i:s'), $version->getUpdatedAt()->format('Y-m-d H:i:s'));
     if ($version->getId()) {
         $data[] = $version->getId();
         $sql = "UPDATE " . $this->getTablePrefix() . "version\n                    SET\n                        package_id = ?,\n                        version = ?,\n                        reference_hash = ?,\n                        reference_name = ?,\n                        license = ?,\n                        created_at = ?,\n                        updated_at = ?\n                    WHERE\n                        id = ?";
         $stmt = $this->pdo->prepare($sql);
         $stmt->execute($data);
     } else {
         $sql = "INSERT INTO " . $this->getTablePrefix() . "version\n                    (package_id, version, reference_hash, reference_name, license, created_at, updated_at)\n                    VALUES\n                    (?, ?, ?, ?, ?, ?, ?)";
         $stmt = $this->pdo->prepare($sql);
         $stmt->execute($data);
         $version->setId((int) $this->pdo->lastInsertId());
     }
     $this->persistDependencies($version, $version->getDependencies());
 }
 private function generateVersion(Version $version)
 {
     return array('createdAt' => array('date' => $version->getCreatedAt()->format('Y-m-d H:i:s'), 'timezone' => $version->getCreatedAt()->getTimezone()->getName()), 'reference' => $version->getReference(), 'referenceType' => $version->getReferenceType(), 'referenceUrl' => $version->getReferenceUrl(), 'license' => $version->getLicense(), 'updatedAt' => array('date' => $version->getUpdatedAt()->format('Y-m-d H:i:s'), 'timezone' => $version->getUpdatedAt()->getTimezone()->getName()), 'version' => $version->getVersion());
 }