src/Entity/CustomerNotification.php line 19

  1. <?php
  2. namespace App\Entity;
  3. use Doctrine\ORM\Mapping as ORM;
  4. use Symfony\Component\Validator\Constraints as Assert,
  5.     Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  6. use App\Entity\Trait\IdTrait,
  7.     App\Entity\Trait\UuidTrait,
  8.     App\Entity\Trait\StatTrait,
  9.     App\Entity\Trait\TimestampableTrait,
  10.     App\Repository\CustomerNotificationRepository,
  11.     App\Entity\Interface\StatableInterface;
  12. #[UniqueEntity(fields: ['parent''journal'], errorPath'journal'ignoreNullfalsemessage'This value already exists.')]
  13. #[ORM\UniqueConstraint(fields: ['parent''title'])]
  14. #[ORM\Entity(repositoryClassCustomerNotificationRepository::class)]
  15. class CustomerNotification implements StatableInterface
  16. {
  17.     use IdTrait,
  18.         UuidTrait,
  19.         StatTrait,
  20.         TimestampableTrait;
  21.     #[Assert\NotNull]
  22.     #[ORM\ManyToOne(targetEntityCustomer::class, inversedBy'notifications')]
  23.     #[ORM\JoinColumn(onDelete'cascade'nullablefalse)]
  24.     private Customer $parent;
  25.     #[Assert\NotNull]
  26.     #[ORM\ManyToOne(targetEntityJournal::class)]
  27.     #[ORM\JoinColumn(onDelete'cascade'nullablefalse)]
  28.     private Journal $journal;
  29.     public function __construct(Customer $parentJournal $journal)
  30.     {
  31.         $this->setUuid();
  32.         $this->parent $parent;
  33.         $this->journal $journal;
  34.         $this->createdAt = new \DateTimeImmutable();
  35.         $this->updatedAt = new \DateTimeImmutable();
  36.         $parent->addNotification($this);
  37.     }
  38.     public function getParent(): Customer
  39.     {
  40.         return $this->parent;
  41.     }
  42.     public function getJournal(): Journal
  43.     {
  44.         return $this->journal;
  45.     }
  46. }