src/Infrastructure/Doctrine/Entity/DoctrineCatalog.php line 23

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Infrastructure\Doctrine\Entity;
  4. use App\Domain\Common\Entity\Catalog;
  5. use App\Infrastructure\Doctrine\Entity\Traits\EnabledTrait;
  6. use App\Infrastructure\Doctrine\Entity\Traits\IdableTrait;
  7. use App\Infrastructure\Doctrine\Entity\Traits\LabelableTrait;
  8. use App\Infrastructure\Doctrine\Entity\Traits\TimestampableTrait;
  9. use Doctrine\ORM\Mapping as ORM;
  10. use Gedmo\Mapping\Annotation as Gedmo;
  11. use Symfony\Component\HttpFoundation\File\File;
  12. use Symfony\Component\Validator\Constraints as Assert;
  13. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  14. /**
  15.  * @ORM\Entity(repositoryClass="App\Infrastructure\Doctrine\Repository\DoctrineCatalogRepository")
  16.  *
  17.  * @Vich\Uploadable
  18.  */
  19. class DoctrineCatalog implements Catalog
  20. {
  21.     use EnabledTrait;
  22.     use IdableTrait;
  23.     use LabelableTrait;
  24.     use TimestampableTrait;
  25.     /**
  26.      * @Vich\UploadableField(mapping="catalog", fileNameProperty="catalog")
  27.      */
  28.     private ?File $catalogFile null;
  29.     /**
  30.      * @ORM\Column(type="string", length=255, nullable=true)
  31.      */
  32.     private ?string $catalog null;
  33.     /**
  34.      * @Gedmo\SortablePosition
  35.      * @ORM\Column(type="integer")
  36.      *
  37.      * @Assert\GreaterThanOrEqual(value="1")
  38.      * @Assert\LessThanOrEqual(value="10")
  39.      */
  40.     private int $position = -1;
  41.     public function __toString(): string
  42.     {
  43.         return (string) $this->getLabel();
  44.     }
  45.     public function getCatalogFile(): ?File
  46.     {
  47.         return $this->catalogFile;
  48.     }
  49.     public function setCatalogFile(?File $catalogFile): void
  50.     {
  51.         $this->catalogFile $catalogFile;
  52.         if (null !== $catalogFile) {
  53.             $this->setUpdatedAt(new \DateTimeImmutable());
  54.         }
  55.     }
  56.     public function getCatalog(): ?string
  57.     {
  58.         return $this->catalog;
  59.     }
  60.     public function setCatalog(?string $catalog): void
  61.     {
  62.         $this->catalog $catalog;
  63.     }
  64.     public function getPosition(): int
  65.     {
  66.         return $this->position;
  67.     }
  68.     public function setPosition(int $position): void
  69.     {
  70.         $this->position $position;
  71.     }
  72. }