public function createPlan(array $plan)
 {
     $em = $this->doctrineBoot->getEntityManager();
     $id = Uuid::uuid5(Uuid::NAMESPACE_OID, $plan['name'])->toString();
     $repo = $em->getRepository(Plan::class);
     $planObject = $repo->find($id);
     $free = !isset($service['free']) || $service['free'] ? true : false;
     if ($planObject === null) {
         $planObject = new Plan($id, $plan['name'], $plan['description']);
     }
     if (isset($plan['metadata'])) {
         $planObject->setMetadata($this->createMetadata($plan['metadata']));
     }
     $planObject->setFree($free);
     $em->persist($planObject);
     return $planObject;
 }
 public function getPlanAsArray(Plan $plan)
 {
     $planArray = [];
     $planArray['id'] = $plan->getId();
     $planArray['name'] = $plan->getName();
     $planArray['description'] = $plan->getDescription();
     $planArray['free'] = $plan->isFree();
     if ($plan->getMetadata() !== null) {
         $planArray['metadata'] = $this->getMetadataPlanAsArray($plan->getMetadata());
     }
     return $planArray;
 }