Spaces:
No application file
No application file
| namespace Mautic\ChannelBundle\Event; | |
| use Symfony\Component\Console\Output\OutputInterface; | |
| use Symfony\Contracts\EventDispatcher\Event; | |
| class ChannelBroadcastEvent extends Event | |
| { | |
| /** | |
| * Specific channel. | |
| * | |
| * @var null | |
| */ | |
| protected $channel; | |
| /** | |
| * Specific ID of a specific channel. | |
| * | |
| * @var null | |
| */ | |
| protected $id; | |
| /** | |
| * Number of contacts successfully processed and/or failed per channel. | |
| * | |
| * @var array | |
| */ | |
| protected $results = []; | |
| /** | |
| * Min contact ID filter can be used for process parallelization. | |
| * | |
| * @var int | |
| */ | |
| private $minContactIdFilter; | |
| /** | |
| * Max contact ID filter can be used for process parallelization. | |
| * | |
| * @var int | |
| */ | |
| private $maxContactIdFilter; | |
| /** | |
| * How many contacts to load from the database. | |
| */ | |
| private int $limit = 100; | |
| /** | |
| * How big batches to use to actually send. | |
| */ | |
| private int $batch = 50; | |
| private ?int $maxThreads = null; | |
| private ?int $threadId = null; | |
| public function __construct( | |
| $channel, | |
| $channelId, | |
| protected OutputInterface $output | |
| ) { | |
| $this->channel = $channel; | |
| $this->id = $channelId; | |
| } | |
| /** | |
| * @return mixed | |
| */ | |
| public function getChannel() | |
| { | |
| return $this->channel; | |
| } | |
| /** | |
| * @return mixed | |
| */ | |
| public function getId() | |
| { | |
| return $this->id; | |
| } | |
| /** | |
| * @param string $channelLabel | |
| * @param int $successCount | |
| * @param int $failedCount | |
| */ | |
| public function setResults($channelLabel, $successCount, $failedCount = 0, array $failedRecipientsByList = []): void | |
| { | |
| $this->results[$channelLabel] = [ | |
| 'success' => (int) $successCount, | |
| 'failed' => (int) $failedCount, | |
| 'failedRecipientsByList' => $failedRecipientsByList, | |
| ]; | |
| } | |
| /** | |
| * @return array | |
| */ | |
| public function getResults() | |
| { | |
| return $this->results; | |
| } | |
| public function checkContext($channel): bool | |
| { | |
| if ($this->channel && $this->channel !== $channel) { | |
| return false; | |
| } | |
| return true; | |
| } | |
| /** | |
| * @return OutputInterface | |
| */ | |
| public function getOutput() | |
| { | |
| return $this->output; | |
| } | |
| /** | |
| * @param int $minContactIdFilter | |
| */ | |
| public function setMinContactIdFilter($minContactIdFilter): void | |
| { | |
| $this->minContactIdFilter = $minContactIdFilter; | |
| } | |
| /** | |
| * @return int|null | |
| */ | |
| public function getMinContactIdFilter() | |
| { | |
| return $this->minContactIdFilter; | |
| } | |
| /** | |
| * @param int $maxContactIdFilter | |
| */ | |
| public function setMaxContactIdFilter($maxContactIdFilter): void | |
| { | |
| $this->maxContactIdFilter = $maxContactIdFilter; | |
| } | |
| /** | |
| * @return int|null | |
| */ | |
| public function getMaxContactIdFilter() | |
| { | |
| return $this->maxContactIdFilter; | |
| } | |
| /** | |
| * @param int $limit | |
| */ | |
| public function setLimit($limit): void | |
| { | |
| $this->limit = $limit; | |
| } | |
| public function getLimit(): int | |
| { | |
| return $this->limit; | |
| } | |
| /** | |
| * @param int $batch | |
| */ | |
| public function setBatch($batch): void | |
| { | |
| $this->batch = $batch; | |
| } | |
| public function getBatch(): int | |
| { | |
| return $this->batch; | |
| } | |
| public function getMaxThreads(): ?int | |
| { | |
| return $this->maxThreads; | |
| } | |
| public function setMaxThreads(?int $maxThreads): void | |
| { | |
| $this->maxThreads = $maxThreads; | |
| } | |
| public function getThreadId(): ?int | |
| { | |
| return $this->threadId; | |
| } | |
| public function setThreadId(?int $threadId): void | |
| { | |
| $this->threadId = $threadId; | |
| } | |
| } | |