<?php
namespace App\Entity;
use App\Repository\AppSettingsRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=AppSettingsRepository::class)
*/
class AppSettings
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $isCampaignOn = true;
/**
* @ORM\Column(type="bigint", nullable=true)
*/
private $apacheErrorLogReadOffset;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $channelAdmins;
/**
* @ORM\ManyToMany(targetEntity=TelegramCampaignMessage::class)
* @ORM\JoinTable(name="app_settings_registered_candidates_campaign_message")
*/
private $registeredCandidatesCampaignMessages;
/**
* @ORM\ManyToMany(targetEntity=TelegramCampaignMessage::class)
* @ORM\JoinTable(name="app_settings_approved_candidates_campaign_message")
*/
private $approvedCandidatesCampaignMessages;
/**
* @ORM\ManyToMany(targetEntity=TelegramCampaignMessage::class)
* @ORM\JoinTable(name="app_settings_declined_candidates_campaign_message")
*/
private $declinedCandidatesCampaignMessages;
/**
* @ORM\ManyToMany(targetEntity=TelegramCampaignMessage::class)
* @ORM\JoinTable(name="app_settings_payment_requisites_campaign_message")
*/
private $paymentRequisitesCampaignMessages;
/**
* @ORM\ManyToMany(targetEntity=TelegramCampaignMessage::class)
* @ORM\JoinTable(name="app_settings_telegram_channel_link_campaign_message")
*/
private $telegramChannelLinkCampaignMessages;
public function __construct()
{
$this->registeredCandidatesCampaignMessages = new ArrayCollection();
$this->approvedCandidatesCampaignMessages = new ArrayCollection();
$this->declinedCandidatesCampaignMessages = new ArrayCollection();
$this->paymentRequisitesCampaignMessages = new ArrayCollection();
$this->telegramChannelLinkCampaignMessages = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function isIsCampaignOn(): ?bool
{
return $this->isCampaignOn;
}
public function setIsCampaignOn(?bool $isCampaignOn): self
{
$this->isCampaignOn = $isCampaignOn;
return $this;
}
public function getApacheErrorLogReadOffset(): ?string
{
return $this->apacheErrorLogReadOffset;
}
public function setApacheErrorLogReadOffset(?string $apacheErrorLogReadOffset): self
{
$this->apacheErrorLogReadOffset = $apacheErrorLogReadOffset;
return $this;
}
public function getChannelAdmins(): ?string
{
return $this->channelAdmins;
}
public function getChannelAdminsAsArray(): array
{
return $this->channelAdmins ? explode("\n", $this->channelAdmins) : [];
}
public function setChannelAdmins(?string $channelAdmins): self
{
$this->channelAdmins = $channelAdmins;
$this->normalizeChannelAdmins();
return $this;
}
private function normalizeChannelAdmins(): void
{
$fullNames = array_filter(array_map('trim', preg_split('/\\R/u', (string) $this->channelAdmins)), function (string $fullName) {
return $fullName !== '';
});
$this->channelAdmins = implode("\n", $fullNames);
}
/**
* @return Collection<int, TelegramCampaignMessage>
*/
public function getRegisteredCandidatesCampaignMessages(): Collection
{
return $this->registeredCandidatesCampaignMessages;
}
public function addRegisteredCandidatesCampaignMessage(TelegramCampaignMessage $registeredCandidatesCampaignMessage): self
{
if (!$this->registeredCandidatesCampaignMessages->contains($registeredCandidatesCampaignMessage)) {
$this->registeredCandidatesCampaignMessages[] = $registeredCandidatesCampaignMessage;
}
return $this;
}
public function removeRegisteredCandidatesCampaignMessage(TelegramCampaignMessage $registeredCandidatesCampaignMessage): self
{
$this->registeredCandidatesCampaignMessages->removeElement($registeredCandidatesCampaignMessage);
return $this;
}
/**
* @return Collection<int, TelegramCampaignMessage>
*/
public function getApprovedCandidatesCampaignMessages(): Collection
{
return $this->approvedCandidatesCampaignMessages;
}
public function addApprovedCandidatesCampaignMessage(TelegramCampaignMessage $approvedCandidatesCampaignMessage): self
{
if (!$this->approvedCandidatesCampaignMessages->contains($approvedCandidatesCampaignMessage)) {
$this->approvedCandidatesCampaignMessages[] = $approvedCandidatesCampaignMessage;
}
return $this;
}
public function removeApprovedCandidatesCampaignMessage(TelegramCampaignMessage $approvedCandidatesCampaignMessage): self
{
$this->approvedCandidatesCampaignMessages->removeElement($approvedCandidatesCampaignMessage);
return $this;
}
/**
* @return Collection<int, TelegramCampaignMessage>
*/
public function getDeclinedCandidatesCampaignMessages(): Collection
{
return $this->declinedCandidatesCampaignMessages;
}
public function addDeclinedCandidatesCampaignMessage(TelegramCampaignMessage $declinedCandidatesCampaignMessage): self
{
if (!$this->declinedCandidatesCampaignMessages->contains($declinedCandidatesCampaignMessage)) {
$this->declinedCandidatesCampaignMessages[] = $declinedCandidatesCampaignMessage;
}
return $this;
}
public function removeDeclinedCandidatesCampaignMessage(TelegramCampaignMessage $declinedCandidatesCampaignMessage): self
{
$this->declinedCandidatesCampaignMessages->removeElement($declinedCandidatesCampaignMessage);
return $this;
}
/**
* @return Collection<int, TelegramCampaignMessage>
*/
public function getPaymentRequisitesCampaignMessages(): Collection
{
return $this->paymentRequisitesCampaignMessages;
}
public function addPaymentRequisitesCampaignMessage(TelegramCampaignMessage $paymentRequisitesCampaignMessage): self
{
if (!$this->paymentRequisitesCampaignMessages->contains($paymentRequisitesCampaignMessage)) {
$this->paymentRequisitesCampaignMessages[] = $paymentRequisitesCampaignMessage;
}
return $this;
}
public function removePaymentRequisitesCampaignMessage(TelegramCampaignMessage $paymentRequisitesCampaignMessage): self
{
$this->paymentRequisitesCampaignMessages->removeElement($paymentRequisitesCampaignMessage);
return $this;
}
/**
* @return Collection<int, TelegramCampaignMessage>
*/
public function getTelegramChannelLinkCampaignMessages(): Collection
{
return $this->telegramChannelLinkCampaignMessages;
}
public function addTelegramChannelLinkCampaignMessage(TelegramCampaignMessage $telegramChannelLinkCampaignMessage): self
{
if (!$this->telegramChannelLinkCampaignMessages->contains($telegramChannelLinkCampaignMessage)) {
$this->telegramChannelLinkCampaignMessages[] = $telegramChannelLinkCampaignMessage;
}
return $this;
}
public function removeTelegramChannelLinkCampaignMessage(TelegramCampaignMessage $telegramChannelLinkCampaignMessage): self
{
$this->telegramChannelLinkCampaignMessages->removeElement($telegramChannelLinkCampaignMessage);
return $this;
}
}