/**
  * @param SubscriptionAwareEvent $event
  */
 public function cleanRecipient(SubscriptionAwareEvent $event)
 {
     if (!\Config::get('avisota_subscription_recipient_cleanup')) {
         return;
     }
     $subscription = $event->getSubscription();
     $recipient = $subscription->getRecipient();
     if ($recipient) {
         $subscriptions = $recipient->getSubscriptions();
         if ($subscriptions->isEmpty() || $subscriptions->count() == 1 && $subscriptions->contains($subscription)) {
             $entityManager = EntityHelper::getEntityManager();
             $entityManager->remove($recipient);
         }
     }
 }
 /**
  * PrepareSubscriptionEvent constructor.
  *
  * @param Subscription                   $subscription
  * @param SubscriptionRecipientInterface $recipient
  */
 public function __construct(Subscription $subscription, SubscriptionRecipientInterface $recipient)
 {
     parent::__construct($subscription);
     $this->recipient = $recipient;
 }
 /**
  * UnsubscribeEvent constructor.
  *
  * @param Subscription   $subscription
  * @param Blacklist|null $blacklist
  * @param                $options
  */
 public function __construct(Subscription $subscription, Blacklist $blacklist = null, $options = null)
 {
     parent::__construct($subscription);
     $this->blacklist = $blacklist;
     $this->options = $options;
 }
 /**
  * SubscribeEvent constructor.
  *
  * @param Subscription $subscription
  * @param              $subscriptionOptions
  */
 public function __construct(Subscription $subscription, $subscriptionOptions)
 {
     parent::__construct($subscription);
     $this->options = $subscriptionOptions;
 }