src/ThreeSixtyViewBundle/Entity/ThreeSixtyView.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\ThreeSixtyViewBundle\Entity;
  3. use App\MediaBundle\Entity\Image;
  4. use App\ThreeSixtyViewBundle\Enums\ThreeSixtyViewImageExtensionEnums;
  5. use Doctrine\Common\Collections\ArrayCollection;
  6. use Doctrine\Common\Collections\Collection;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use PN\ServiceBundle\Interfaces\DateTimeInterface;
  9. use PN\ServiceBundle\Model\DateTimeTrait;
  10. /**
  11. * @ORM\HasLifecycleCallbacks
  12. * @ORM\Table(name="360_view")
  13. * @ORM\Entity(repositoryClass="App\ThreeSixtyViewBundle\Repository\ThreeSixtyViewRepository")
  14. */
  15. class ThreeSixtyView implements DateTimeInterface
  16. {
  17. use DateTimeTrait;
  18. /**
  19. * @ORM\Column(name="id", type="integer")
  20. * @ORM\Id
  21. * @ORM\GeneratedValue(strategy="AUTO")
  22. */
  23. private ?int $id = null;
  24. /**
  25. * @ORM\Column(name="image_extension", enumType=ThreeSixtyViewImageExtensionEnums::class, type="string", length=255)
  26. */
  27. private ?ThreeSixtyViewImageExtensionEnums $imageExtension = ThreeSixtyViewImageExtensionEnums::IMAGE_EXTENSION_PNG;
  28. /**
  29. * @ORM\ManyToMany(targetEntity="App\MediaBundle\Entity\Image", cascade={"persist", "remove" })
  30. * @ORM\OrderBy({"tarteb" = "ASC"})
  31. */
  32. private Collection $images;
  33. public function hasImage(Image $image): bool
  34. {
  35. if (!$this->images->contains($image)) {
  36. return false;
  37. }
  38. return true;
  39. }
  40. public function getImageExtensionName(): ?string
  41. {
  42. if ($this->getImageExtension() instanceof ThreeSixtyViewImageExtensionEnums) {
  43. return $this->getImageExtension()->name();
  44. }
  45. return null;
  46. }
  47. public function getImageExtension(): ?ThreeSixtyViewImageExtensionEnums
  48. {
  49. return $this->imageExtension;
  50. }
  51. public function setImageExtension(ThreeSixtyViewImageExtensionEnums $imageExtension): self
  52. {
  53. $this->imageExtension = $imageExtension;
  54. return $this;
  55. }
  56. public function __construct()
  57. {
  58. $this->images = new ArrayCollection();
  59. }
  60. public function getId(): ?int
  61. {
  62. return $this->id;
  63. }
  64. /**
  65. * @return Collection<int, Image>
  66. */
  67. public function getImages(): Collection
  68. {
  69. return $this->images;
  70. }
  71. public function addImage(Image $image): self
  72. {
  73. if (!$this->images->contains($image)) {
  74. $this->images->add($image);
  75. }
  76. return $this;
  77. }
  78. public function removeImage(Image $image): self
  79. {
  80. $this->images->removeElement($image);
  81. return $this;
  82. }
  83. }