Spaces:
No application file
No application file
| namespace Mautic\ReportBundle\Model; | |
| use Doctrine\ORM\EntityManager; | |
| use Mautic\ReportBundle\Entity\Report; | |
| use Mautic\ReportBundle\Entity\Scheduler; | |
| use Mautic\ReportBundle\Entity\SchedulerRepository; | |
| use Mautic\ReportBundle\Scheduler\Model\SchedulerPlanner; | |
| use Mautic\ReportBundle\Scheduler\Option\ExportOption; | |
| class ScheduleModel | |
| { | |
| /** | |
| * @var SchedulerRepository | |
| */ | |
| private \Doctrine\ORM\EntityRepository $schedulerRepository; | |
| public function __construct( | |
| private EntityManager $entityManager, | |
| private SchedulerPlanner $schedulerPlanner | |
| ) { | |
| $this->schedulerRepository = $entityManager->getRepository(Scheduler::class); | |
| } | |
| /** | |
| * @return Scheduler[] | |
| */ | |
| public function getScheduledReportsForExport(ExportOption $exportOption) | |
| { | |
| return $this->schedulerRepository->getScheduledReportsForExport($exportOption); | |
| } | |
| public function reportWasScheduled(Report $report): void | |
| { | |
| $this->schedulerPlanner->computeScheduler($report); | |
| } | |
| public function turnOffScheduler(Report $report): void | |
| { | |
| $report->setIsScheduled(false); | |
| $this->entityManager->persist($report); | |
| $this->entityManager->flush(); | |
| } | |
| } | |