Spaces:
No application file
No application file
| namespace Mautic\CoreBundle\Event; | |
| use Symfony\Contracts\EventDispatcher\Event; | |
| class MaintenanceEvent extends Event | |
| { | |
| protected int $daysOld; | |
| protected \DateTimeInterface $date; | |
| /** | |
| * @var array | |
| */ | |
| protected $stats = []; | |
| protected bool $dryRun; | |
| protected bool $gdpr; | |
| /** | |
| * @var array | |
| */ | |
| protected $debug = []; | |
| /** | |
| * @param int $daysOld | |
| * @param bool $dryRun | |
| */ | |
| public function __construct($daysOld, $dryRun, $gdpr) | |
| { | |
| $this->daysOld = (int) $daysOld; | |
| $this->dryRun = (bool) $dryRun; | |
| $this->date = new \DateTime("$daysOld days ago", new \DateTimeZone('UTC')); | |
| $this->gdpr = (bool) $gdpr; | |
| } | |
| /** | |
| * Get integer for number of days ago to purge data. | |
| */ | |
| public function getDays(): int | |
| { | |
| return $this->daysOld; | |
| } | |
| /** | |
| * Returns a DateTime in UTC for the date to delete records older than the given date. | |
| * | |
| * @return \DateTimeInterface | |
| */ | |
| public function getDate() | |
| { | |
| return $this->date; | |
| } | |
| /** | |
| * Set the number of records purged by the listener. | |
| * | |
| * @param string $key | |
| * @param int $recordCount | |
| */ | |
| public function setStat($key, $recordCount, $sql = null, $parameters = []): void | |
| { | |
| $this->stats[$key] = (int) $recordCount; | |
| if ($sql) { | |
| foreach ($parameters as $paramKey => $value) { | |
| $sql = str_replace(":$paramKey", $value, $sql); | |
| } | |
| $this->debug[$key] = $sql; | |
| } | |
| } | |
| /** | |
| * @return array | |
| */ | |
| public function getStats() | |
| { | |
| ksort($this->stats, SORT_NATURAL); | |
| return $this->stats; | |
| } | |
| /** | |
| * Return if this is to be a dry run. | |
| */ | |
| public function isDryRun(): bool | |
| { | |
| return $this->dryRun; | |
| } | |
| /** | |
| * @return array | |
| */ | |
| public function getDebug() | |
| { | |
| return $this->debug; | |
| } | |
| public function isGdpr(): bool | |
| { | |
| return $this->gdpr; | |
| } | |
| } | |