![]() 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/LeadBundle/Entity/ |
<?php declare(strict_types=1); namespace Mautic\LeadBundle\Entity; use Doctrine\DBAL\Types\Types; use Doctrine\ORM\Mapping\ClassMetadata; use Mautic\CoreBundle\Doctrine\Mapping\ClassMetadataBuilder; use Mautic\UserBundle\Entity\User; use Symfony\Component\Validator\Constraints as Assert; use Symfony\Component\Validator\Mapping\ClassMetadata as ValidatorClassMetadata; class ContactExportScheduler { private ?int $id = null; private ?User $user = null; // Created by private \DateTimeImmutable $scheduledDateTime; /** * @var array<mixed> */ private array $data = []; /** * @var array<mixed> */ private array $changes = []; /** * @template T of ClassMetadata * * @param T $metadata */ public static function loadMetadata(ClassMetadata $metadata): void { $builder = new ClassMetadataBuilder($metadata); $builder->setTable('contact_export_scheduler'); $builder->setCustomRepositoryClass(ContactExportSchedulerRepository::class); $builder->addId(); $builder->createManyToOne('user', User::class) ->addJoinColumn('user_id', 'id', true, false, 'CASCADE') ->build(); $builder->createField('scheduledDateTime', Types::DATETIME_IMMUTABLE) ->columnName('scheduled_datetime') ->build(); $builder->addNullableField('data', Types::ARRAY); } public static function loadValidatorMetadata(ValidatorClassMetadata $metadata): void { $metadata->addPropertyConstraint( 'scheduledDate', new Assert\NotBlank( ['message' => 'mautic.lead.import.dir.notblank'] ) ); } public function getId(): ?int { return $this->id; } public function getUser(): ?User { return $this->user; } public function setUser(User $user): self { $this->user = $user; $this->addChange('user', $user->getId()); return $this; } public function getScheduledDateTime(): ?\DateTimeImmutable { return $this->scheduledDateTime; } public function setScheduledDateTime(\DateTimeImmutable $scheduledDateTime): self { $this->scheduledDateTime = $scheduledDateTime; $this->addChange('scheduledDateTime', $scheduledDateTime); return $this; } /** * @return array<mixed> */ public function getData(): array { return $this->data; } /** * @param array<mixed> $data */ public function setData(array $data): self { $this->data = $data; $this->addChange('data', $data); return $this; } /** * @return array<mixed> */ public function getChanges(): array { return $this->changes; } /** * @param mixed $value */ private function addChange(string $property, $value): void { $this->changes[$property] = $value; } }