From cd9c16a990dd1699f6e0d51f1302b2d5597a3b85 Mon Sep 17 00:00:00 2001 From: matthieu Date: Tue, 19 May 2026 23:17:16 +0200 Subject: [PATCH] feat(mail) : TaskMailLink entity + repository --- src/Entity/TaskMailLink.php | 88 +++++++++++++++++++++++ src/Repository/TaskMailLinkRepository.php | 46 ++++++++++++ 2 files changed, 134 insertions(+) create mode 100644 src/Entity/TaskMailLink.php create mode 100644 src/Repository/TaskMailLinkRepository.php diff --git a/src/Entity/TaskMailLink.php b/src/Entity/TaskMailLink.php new file mode 100644 index 0000000..652fc22 --- /dev/null +++ b/src/Entity/TaskMailLink.php @@ -0,0 +1,88 @@ +id; + } + + public function getTask(): Task + { + return $this->task; + } + + public function setTask(Task $task): static + { + $this->task = $task; + + return $this; + } + + public function getMailMessage(): MailMessage + { + return $this->mailMessage; + } + + public function setMailMessage(MailMessage $mailMessage): static + { + $this->mailMessage = $mailMessage; + + return $this; + } + + public function getLinkedAt(): DateTimeImmutable + { + return $this->linkedAt; + } + + public function setLinkedAt(DateTimeImmutable $linkedAt): static + { + $this->linkedAt = $linkedAt; + + return $this; + } + + public function getLinkedBy(): ?User + { + return $this->linkedBy; + } + + public function setLinkedBy(?User $linkedBy): static + { + $this->linkedBy = $linkedBy; + + return $this; + } +} diff --git a/src/Repository/TaskMailLinkRepository.php b/src/Repository/TaskMailLinkRepository.php new file mode 100644 index 0000000..565e71d --- /dev/null +++ b/src/Repository/TaskMailLinkRepository.php @@ -0,0 +1,46 @@ + + */ + public function findByTask(Task $task): array + { + return $this->createQueryBuilder('l') + ->andWhere('l.task = :task') + ->setParameter('task', $task) + ->orderBy('l.linkedAt', 'DESC') + ->getQuery() + ->getResult() + ; + } + + public function findByTaskAndMessage(Task $task, MailMessage $message): ?TaskMailLink + { + return $this->findOneBy(['task' => $task, 'mailMessage' => $message]); + } + + /** + * @return list + */ + public function findByMessage(MailMessage $message): array + { + return $this->findBy(['mailMessage' => $message]); + } +}