This repository has been archived on 2026-07-19. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
espocrm-base/application/Espo/Hooks/Email/NoteRemove.php
T
2025-12-03 15:40:22 +02:00

44 lines
1.0 KiB
PHP

<?php
namespace Espo\Hooks\Email;
use Espo\Core\Hook\Hook\AfterRemove;
use Espo\Entities\Email;
use Espo\Entities\Note;
use Espo\ORM\Entity;
use Espo\ORM\EntityManager;
use Espo\ORM\Repository\Option\RemoveOptions;
/**
* @implements AfterRemove<Email>
*/
class NoteRemove implements AfterRemove
{
private const int LIMIT = 5;
public function __construct(
private EntityManager $entityManager,
) {}
public function afterRemove(Entity $entity, RemoveOptions $options): void
{
$notes = $this->entityManager
->getRDBRepositoryByClass(Note::class)
->sth()
->where([
'relatedId' => $entity->getId(),
'relatedType' => $entity->getEntityType(),
'type' => [
Note::TYPE_EMAIL_RECEIVED,
Note::TYPE_EMAIL_SENT,
],
])
->limit(self::LIMIT)
->find();
foreach ($notes as $note) {
$this->entityManager->removeEntity($note);
}
}
}