Spaces:
No application file
No application file
declare(strict_types=1); | |
namespace Mautic\CampaignBundle\Entity; | |
use Doctrine\DBAL\Types\Types; | |
use Doctrine\ORM\Mapping as ORM; | |
use Mautic\CoreBundle\Doctrine\Mapping\ClassMetadataBuilder; | |
class Summary | |
{ | |
public const TABLE_NAME = 'campaign_summary'; | |
/** | |
* @var int|null | |
*/ | |
private $id; | |
/** | |
* @var \DateTimeImmutable|null | |
**/ | |
private $dateTriggered; | |
/** | |
* @var int | |
*/ | |
private $scheduledCount = 0; | |
/** | |
* @var int | |
*/ | |
private $triggeredCount = 0; | |
/** | |
* @var int | |
*/ | |
private $nonActionPathTakenCount = 0; | |
/** | |
* @var int | |
*/ | |
private $failedCount = 0; | |
/** | |
* @var Event|null | |
*/ | |
private $event; | |
/** | |
* @var Campaign|null | |
*/ | |
private $campaign; | |
/** | |
* @var int|null | |
*/ | |
private $logCountsProcessed = 0; | |
public static function loadMetadata(ORM\ClassMetadata $metadata): void | |
{ | |
$builder = new ClassMetadataBuilder($metadata); | |
$builder->setTable(self::TABLE_NAME) | |
->setCustomRepositoryClass(SummaryRepository::class) | |
->addUniqueConstraint(['campaign_id', 'event_id', 'date_triggered'], 'campaign_event_date_triggered'); | |
$builder->addId(); | |
$builder->createManyToOne('campaign', Campaign::class) | |
->addJoinColumn('campaign_id', 'id') | |
->fetchExtraLazy() | |
->build(); | |
$builder->createManyToOne('event', Event::class) | |
->addJoinColumn('event_id', 'id', false, false, 'CASCADE') | |
->fetchExtraLazy() | |
->build(); | |
$builder->addNullableField('dateTriggered', Types::DATETIME_IMMUTABLE, 'date_triggered'); | |
$builder->addNamedField('scheduledCount', Types::INTEGER, 'scheduled_count'); | |
$builder->addNamedField('triggeredCount', Types::INTEGER, 'triggered_count'); | |
$builder->addNamedField('nonActionPathTakenCount', Types::INTEGER, 'non_action_path_taken_count'); | |
$builder->addNamedField('failedCount', Types::INTEGER, 'failed_count'); | |
$builder->addNamedField('logCountsProcessed', Types::INTEGER, 'log_counts_processed', true); | |
} | |
public function getScheduledCount(): ?int | |
{ | |
return $this->scheduledCount; | |
} | |
public function setScheduledCount(int $scheduledCount): void | |
{ | |
$this->scheduledCount = $scheduledCount; | |
} | |
public function getTriggeredCount(): ?int | |
{ | |
return $this->triggeredCount; | |
} | |
public function setTriggeredCount(int $triggeredCount): void | |
{ | |
$this->triggeredCount = $triggeredCount; | |
} | |
public function getNonActionPathTakenCount(): ?int | |
{ | |
return $this->nonActionPathTakenCount; | |
} | |
public function setNonActionPathTakenCount(int $nonActionPathTakenCount): void | |
{ | |
$this->nonActionPathTakenCount = $nonActionPathTakenCount; | |
} | |
public function getFailedCount(): ?int | |
{ | |
return $this->failedCount; | |
} | |
public function setFailedCount(int $failedCount): void | |
{ | |
$this->failedCount = $failedCount; | |
} | |
public function getCampaign(): ?Campaign | |
{ | |
return $this->campaign; | |
} | |
public function setCampaign(Campaign $campaign): void | |
{ | |
$this->campaign = $campaign; | |
} | |
public function getEvent(): ?Event | |
{ | |
return $this->event; | |
} | |
public function setEvent(Event $event): void | |
{ | |
$this->event = $event; | |
if (!$this->campaign) { | |
$this->setCampaign($event->getCampaign()); | |
} | |
} | |
public function getDateTriggered(): ?\DateTimeInterface | |
{ | |
return $this->dateTriggered; | |
} | |
public function setDateTriggered(\DateTimeImmutable $dateTriggered = null): void | |
{ | |
$this->dateTriggered = $dateTriggered; | |
} | |
public function getId(): ?int | |
{ | |
return $this->id; | |
} | |
public function getLogCountsProcessed(): ?int | |
{ | |
return $this->logCountsProcessed; | |
} | |
public function setLogCountsProcessed(?int $logCountsProcessed): void | |
{ | |
$this->logCountsProcessed = $logCountsProcessed; | |
} | |
} | |