/**
  * @param array $data
  * @return \SubscribePro\Service\Subscription\SubscriptionInterface
  */
 public function create(array $data = [])
 {
     $addressData = $this->getFieldData($data, SubscriptionInterface::SHIPPING_ADDRESS);
     $data[SubscriptionInterface::SHIPPING_ADDRESS] = $this->addressFactory->create($addressData);
     $paymentProfileData = $this->getFieldData($data, SubscriptionInterface::PAYMENT_PROFILE);
     $data[SubscriptionInterface::PAYMENT_PROFILE] = $this->paymentProfileFactory->create($paymentProfileData);
     return new $this->instanceName($data);
 }
 /**
  * @param array $data
  * @return \SubscribePro\Service\Webhook\Event\DestinationInterface[]
  */
 protected function createDestinationItems(array $data = [])
 {
     return array_map(function ($itemData) {
         return $this->destinationFactory->create($itemData);
     }, $data);
 }
 /**
  * @param array $data
  * @return \SubscribePro\Service\PaymentProfile\PaymentProfileInterface
  */
 public function create(array $data = [])
 {
     $addressData = $this->getFieldData($data, PaymentProfileInterface::BILLING_ADDRESS);
     $data[PaymentProfileInterface::BILLING_ADDRESS] = $this->addressFactory->create($addressData);
     return new $this->instanceName($data);
 }
 /**
  * @param array $data
  * @return \SubscribePro\Service\DataInterface[]
  */
 private function createItems(array $data = [])
 {
     return array_map(function ($itemData) {
         return $this->dataFactory->create($itemData);
     }, $data);
 }