From 8b01360627b7c7e87223e1922b31f98bb9c89e12 Mon Sep 17 00:00:00 2001 From: Jan Jakes Date: Thu, 26 Oct 2023 15:25:20 +0200 Subject: [PATCH] Use orphan removal for scheduled task subscriber entity It is a connecting entity between task and subscriber, and it makes no sense to keep without either of them. This could prevent some partial-delete bugs. [MAILPOET-4375] --- mailpoet/lib/Entities/ScheduledTaskEntity.php | 7 +++++++ mailpoet/lib/Entities/ScheduledTaskSubscriberEntity.php | 4 ++-- mailpoet/lib/Entities/SubscriberEntity.php | 7 +++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/mailpoet/lib/Entities/ScheduledTaskEntity.php b/mailpoet/lib/Entities/ScheduledTaskEntity.php index a74f3a063c..24e47e8556 100644 --- a/mailpoet/lib/Entities/ScheduledTaskEntity.php +++ b/mailpoet/lib/Entities/ScheduledTaskEntity.php @@ -95,8 +95,15 @@ class ScheduledTaskEntity { */ private $sendingQueue; + /** + * @ORM\OneToMany(targetEntity="MailPoet\Entities\ScheduledTaskSubscriberEntity", mappedBy="task", orphanRemoval=true) + * @var Collection + */ + private $scheduledTaskSubscribers; + public function __construct() { $this->subscribers = new ArrayCollection(); + $this->scheduledTaskSubscribers = new ArrayCollection(); } /** diff --git a/mailpoet/lib/Entities/ScheduledTaskSubscriberEntity.php b/mailpoet/lib/Entities/ScheduledTaskSubscriberEntity.php index 8a4fd89e0e..2ef4ec75e2 100644 --- a/mailpoet/lib/Entities/ScheduledTaskSubscriberEntity.php +++ b/mailpoet/lib/Entities/ScheduledTaskSubscriberEntity.php @@ -45,13 +45,13 @@ class ScheduledTaskSubscriberEntity { private $error; /** - * @ORM\Id @ORM\ManyToOne(targetEntity="MailPoet\Entities\ScheduledTaskEntity") + * @ORM\Id @ORM\ManyToOne(targetEntity="MailPoet\Entities\ScheduledTaskEntity", inversedBy="scheduledTaskSubscribers") * @var ScheduledTaskEntity|null */ private $task; /** - * @ORM\Id @ORM\ManyToOne(targetEntity="MailPoet\Entities\SubscriberEntity") + * @ORM\Id @ORM\ManyToOne(targetEntity="MailPoet\Entities\SubscriberEntity", inversedBy="scheduledTaskSubscribers") * @var SubscriberEntity|null */ private $subscriber; diff --git a/mailpoet/lib/Entities/SubscriberEntity.php b/mailpoet/lib/Entities/SubscriberEntity.php index 592d64a0d3..65f6201752 100644 --- a/mailpoet/lib/Entities/SubscriberEntity.php +++ b/mailpoet/lib/Entities/SubscriberEntity.php @@ -215,10 +215,17 @@ class SubscriberEntity { */ private $subscriberTags; + /** + * @ORM\OneToMany(targetEntity="MailPoet\Entities\ScheduledTaskSubscriberEntity", mappedBy="subscriber", orphanRemoval=true) + * @var Collection + */ + private $scheduledTaskSubscribers; + public function __construct() { $this->subscriberSegments = new ArrayCollection(); $this->subscriberCustomFields = new ArrayCollection(); $this->subscriberTags = new ArrayCollection(); + $this->scheduledTaskSubscribers = new ArrayCollection(); } /**