Spaces:
No application file
No application file
| declare(strict_types=1); | |
| namespace Mautic\EmailBundle\Model; | |
| use Doctrine\ORM\EntityManagerInterface; | |
| use Mautic\EmailBundle\EmailEvents; | |
| use Mautic\EmailBundle\Entity\Stat; | |
| use Mautic\EmailBundle\Entity\StatRepository; | |
| use Mautic\EmailBundle\Event\EmailStatEvent; | |
| use Symfony\Component\EventDispatcher\EventDispatcherInterface; | |
| class EmailStatModel | |
| { | |
| public function __construct(private EntityManagerInterface $entityManager, private EventDispatcherInterface $dispatcher) | |
| { | |
| } | |
| public function saveEntity(Stat $stat): void | |
| { | |
| $this->saveEntities([$stat]); | |
| } | |
| /** | |
| * @param Stat[] $stats | |
| */ | |
| public function saveEntities(array $stats): void | |
| { | |
| $event = new EmailStatEvent($stats); | |
| $this->dispatcher->dispatch($event, EmailEvents::ON_EMAIL_STAT_PRE_SAVE); | |
| $this->getRepository()->saveEntities($stats); | |
| $this->dispatcher->dispatch($event, EmailEvents::ON_EMAIL_STAT_POST_SAVE); | |
| } | |
| public function getRepository(): StatRepository | |
| { | |
| return $this->entityManager->getRepository(Stat::class); | |
| } | |
| } | |