src/Entity/JournalArticleSlugHistory.php line 16

  1. <?php
  2. namespace App\Entity;
  3. use ApiPlatform\Metadata\ApiProperty;
  4. use App\Entity\Interface\ParentableInterface;
  5. use App\Entity\Trait\IdTrait;
  6. use App\Entity\Trait\TimestampableTrait;
  7. use App\Entity\Trait\UuidTrait;
  8. use App\Repository\JournalArticleSlugHistoryRepository;
  9. use Doctrine\DBAL\Types\Types;
  10. use Doctrine\ORM\Mapping as ORM;
  11. use Symfony\Component\Serializer\Annotation\Groups;
  12. #[ORM\Entity(repositoryClassJournalArticleSlugHistoryRepository::class)]
  13. class JournalArticleSlugHistory implements ParentableInterface
  14. {
  15.     use IdTrait,
  16.         UuidTrait,
  17.         TimestampableTrait;
  18.     #[ORM\ManyToOne(inversedBy'slugHistory')]
  19.     #[ORM\JoinColumn(nullablefalse)]
  20.     private JournalArticle $parent;
  21.     #[ApiProperty(description'Slug')]
  22.     #[Groups(['read:' self::class])]
  23.     #[ORM\Column(typeTypes::TEXTnullabletrue)]
  24.     private ?string $slug null;
  25.     public function __construct(JournalArticle $parent, ?string $slug)
  26.     {
  27.         $this->setUuid();
  28.         $this->parent $parent;
  29.         $this->slug $slug;
  30.         $this->createdAt = new \DateTimeImmutable();
  31.         $this->updatedAt = new \DateTimeImmutable();
  32.     }
  33.     public function getParent(): JournalArticle
  34.     {
  35.         return $this->parent;
  36.     }
  37.     public function getSlug(): ?string
  38.     {
  39.         return $this->slug;
  40.     }
  41. }