177 lines
4.1 KiB
PHP
Executable File
177 lines
4.1 KiB
PHP
Executable File
<?php
|
|
|
|
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;
|
|
}
|
|
}
|