![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mautic.corals.io/app/bundles/ChannelBundle/Entity/ |
<?php namespace Mautic\ChannelBundle\Entity; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\ORM\Mapping\ClassMetadata; use Mautic\ApiBundle\Serializer\Driver\ApiMetadataDriver; use Mautic\CategoryBundle\Entity\Category; use Mautic\CoreBundle\Doctrine\Mapping\ClassMetadataBuilder; use Mautic\CoreBundle\Entity\FormEntity; use Symfony\Component\Validator\Constraints\NotBlank; use Symfony\Component\Validator\Mapping\ClassMetadata as ValidationClassMetadata; class Message extends FormEntity { /** * @var ?int */ private $id; /** * @var string */ private $name; /** * @var ?string */ private $description; /** * @var ?\DateTimeInterface */ private $publishUp; /** * @var ?\DateTimeInterface */ private $publishDown; /** * @var ?Category */ private $category; /** * @var ArrayCollection<int,Channel> */ private $channels; public function __clone() { $this->id = null; } public static function loadMetadata(ClassMetadata $metadata): void { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('messages') ->setCustomRepositoryClass(MessageRepository::class) ->addIndex(['date_added'], 'date_message_added'); $builder ->addIdColumns() ->addPublishDates() ->addCategory(); $builder->createOneToMany('channels', Channel::class) ->setIndexBy('channel') ->orphanRemoval() ->mappedBy('message') ->cascadeMerge() ->cascadePersist() ->cascadeDetach() ->build(); } public static function loadValidatorMetadata(ValidationClassMetadata $metadata): void { $metadata->addPropertyConstraint('name', new NotBlank([ 'message' => 'mautic.core.name.required', ])); } public static function loadApiMetadata(ApiMetadataDriver $metadata): void { $metadata->setGroupPrefix('message') ->addListProperties( [ 'id', 'name', 'description', ] ) ->addProperties( [ 'publishUp', 'publishDown', 'channels', 'category', ] ) ->build(); } public function __construct() { $this->channels = new ArrayCollection(); } /** * @return ?int */ public function getId() { return $this->id; } /** * @return ?string */ public function getName() { return $this->name; } /** * @param ?string $name * * @return Message */ public function setName($name) { $this->isChanged('name', $name); $this->name = $name; return $this; } /** * @return ?string */ public function getDescription() { return $this->description; } /** * @param ?string $description * * @return Message */ public function setDescription($description) { $this->isChanged('description', $description); $this->description = $description; return $this; } /** * @return ?\DateTimeInterface */ public function getPublishUp() { return $this->publishUp; } /** * @param ?\DateTime $publishUp * * @return Message */ public function setPublishUp($publishUp) { $this->isChanged('publishUp', $publishUp); $this->publishUp = $publishUp; return $this; } /** * @return ?\DateTimeInterface */ public function getPublishDown() { return $this->publishDown; } /** * @param ?\DateTime $publishDown * * @return Message */ public function setPublishDown($publishDown) { $this->isChanged('publishDown', $publishDown); $this->publishDown = $publishDown; return $this; } /** * @return ?Category */ public function getCategory() { return $this->category; } /** * @param ?Category $category * * @return Message */ public function setCategory($category) { $this->isChanged('category', $category); $this->category = $category; return $this; } /** * @return ArrayCollection<int,Channel> */ public function getChannels() { return $this->channels; } /** * @param ArrayCollection<int,Channel> $channels * * @return Message */ public function setChannels($channels) { $this->isChanged('channels', $channels); $this->channels = $channels; return $this; } public function addChannel(Channel $channel): void { if (!$this->channels->contains($channel)) { $channel->setMessage($this); $this->isChanged('channels', $channel); $this->channels[$channel->getChannel()] = $channel; } } public function removeChannel(Channel $channel): void { if ($channel->getId()) { $this->isChanged('channels', $channel->getId()); } $this->channels->removeElement($channel); } }