src/Entity/Widget.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use ApiPlatform\Core\Annotation\ApiResource;
  4. use App\Repository\WidgetRepository;
  5. use Doctrine\Common\Collections\ArrayCollection;
  6. use Doctrine\Common\Collections\Collection;
  7. use Doctrine\DBAL\Types\Types;
  8. use Doctrine\ORM\Mapping as ORM;
  9. use Symfony\Component\Serializer\Annotation\Groups;
  10. use Symfony\Component\Validator\Constraints as Assert;
  11. #[ORM\Entity(repositoryClassWidgetRepository::class)]
  12. #[ApiResource]
  13. class Widget
  14. {
  15.     #[ORM\Id]
  16.     #[ORM\GeneratedValue]
  17.     #[ORM\Column]
  18.     #[Groups([
  19.         'read:club:collection:getWidgets',
  20.     ])]
  21.     private ?int $id null;
  22.     #[ORM\Column(length255)]
  23.     #[Groups([
  24.         'read:club:collection:getWidgets',
  25.     ])]
  26.     private ?string $title null;
  27.     #[ORM\Column]
  28.     #[Assert\Range(
  29.         notInRangeMessage'You must be between {{ min }} and {{ max }} tall to enter',
  30.         min1,
  31.         max4,
  32.     )]
  33.     #[Groups([
  34.         'read:club:collection:getWidgets',
  35.     ])]
  36.     private ?int $width null;
  37.     #[ORM\Column(length255nullabletrue)]
  38.     #[Groups([
  39.         'read:club:collection:getWidgets',
  40.     ])]
  41.     private ?string $link null;
  42.     #[ORM\ManyToOne(inversedBy'widgets')]
  43.     #[ORM\JoinColumn(nullabletrueonDelete"SET NULL")]
  44.     private ?Club $club null;
  45.     #[ORM\Column(typeTypes::TEXT)]
  46.     #[Groups([
  47.         'read:club:collection:getWidgets',
  48.     ])]
  49.     private ?string $content null;
  50.     #[ORM\Column]
  51.     #[Groups([
  52.         'read:club:collection:getWidgets',
  53.     ])]
  54.     private ?int $position_x null;
  55.     #[ORM\Column]
  56.     #[Groups([
  57.         'read:club:collection:getWidgets',
  58.     ])]
  59.     private ?int $position_y null;
  60.     #[ORM\Column]
  61.     #[Groups([
  62.         'read:club:collection:getWidgets',
  63.     ])]
  64.     private ?int $height null;
  65.     #[ORM\OneToMany(mappedBy'widget'targetEntityPhoto::class, cascade: ["persist"])]
  66.     private Collection $photos;
  67.     public function __construct()
  68.     {
  69.         $this->photos = new ArrayCollection();
  70.     }
  71.     public function getImageUrl(): string
  72.     {
  73.         $mainPhoto $this->getMainPhoto();
  74.         if ($mainPhoto) {
  75.             return $mainPhoto->getImageLarge()->getUrl();
  76.         }
  77.         return 'https://localbeez.ri7.fr/assets/img/image_placeholder.jpg';
  78.     }
  79.     public function getMainPhoto()
  80.     {
  81.         foreach ($this->photos as $p) {
  82.             if ($p->isMain()) {
  83.                 return $p;
  84.             }
  85.         }
  86.         if (sizeof($this->photos) > 0) {
  87.             return $this->photos[0];
  88.         }
  89.         return false;
  90.     }
  91.     public function getSmallImageUrl(): string
  92.     {
  93.         $mainPhoto $this->getMainPhoto();
  94.         if ($mainPhoto) {
  95.             return $mainPhoto->getImageSmall()->getUrl();
  96.         }
  97.         return 'https://localbeez.ri7.fr/assets/img/image_placeholder.jpg';
  98.     }
  99.     public function getMediumImageUrl(): string
  100.     {
  101.         $mainPhoto $this->getMainPhoto();
  102.         if ($mainPhoto) {
  103.             return $mainPhoto->getImageMedium()->getUrl();
  104.         }
  105.         return 'https://localbeez.ri7.fr/assets/img/image_placeholder.jpg';
  106.     }
  107.     public function getId(): ?int
  108.     {
  109.         return $this->id;
  110.     }
  111.     public function getTitle(): ?string
  112.     {
  113.         return $this->title;
  114.     }
  115.     public function setTitle(string $title): self
  116.     {
  117.         $this->title $title;
  118.         return $this;
  119.     }
  120.     public function getWidth(): ?int
  121.     {
  122.         return $this->width;
  123.     }
  124.     public function setWidth(int $width): self
  125.     {
  126.         $this->width $width;
  127.         return $this;
  128.     }
  129.     public function getLink(): ?string
  130.     {
  131.         return $this->link;
  132.     }
  133.     public function setLink(string $link): self
  134.     {
  135.         $this->link $link;
  136.         return $this;
  137.     }
  138.     public function getClub(): ?Club
  139.     {
  140.         return $this->club;
  141.     }
  142.     public function setClub(?Club $club): self
  143.     {
  144.         $this->club $club;
  145.         return $this;
  146.     }
  147.     public function getContent(): ?string
  148.     {
  149.         return $this->content;
  150.     }
  151.     public function setContent(string $content): static
  152.     {
  153.         $this->content $content;
  154.         return $this;
  155.     }
  156.     public function getPositionX(): ?int
  157.     {
  158.         return $this->position_x;
  159.     }
  160.     public function setPositionX(int $position_x): static
  161.     {
  162.         $this->position_x $position_x;
  163.         return $this;
  164.     }
  165.     public function getPositionY(): ?int
  166.     {
  167.         return $this->position_y;
  168.     }
  169.     public function setPositionY(int $position_y): static
  170.     {
  171.         $this->position_y $position_y;
  172.         return $this;
  173.     }
  174.     public function getHeight(): ?int
  175.     {
  176.         return $this->height;
  177.     }
  178.     public function setHeight(int $height): static
  179.     {
  180.         $this->height $height;
  181.         return $this;
  182.     }
  183.     /**
  184.      * @return Collection<int, Photo>
  185.      */
  186.     public function getPhotos(): Collection
  187.     {
  188.         return $this->photos;
  189.     }
  190.     public function addPhoto(Photo $photo): static
  191.     {
  192.         if (!$this->photos->contains($photo)) {
  193.             $this->photos->add($photo);
  194.             $photo->setWidget($this);
  195.         }
  196.         return $this;
  197.     }
  198.     public function removePhoto(Photo $photo): static
  199.     {
  200.         if ($this->photos->removeElement($photo)) {
  201.             // set the owning side to null (unless already changed)
  202.             if ($photo->getWidget() === $this) {
  203.                 $photo->setWidget(null);
  204.             }
  205.         }
  206.         return $this;
  207.     }
  208. }