<?php namespace App\Entity; use App\Dto\MapInput; use Doctrine\Common\Collections\ArrayCollection; use Doctrine\ORM\Mapping as ORM; use ApiPlatform\Core\Annotation\ApiResource; use App\Controller\MapController; use App\Entity\EntityTrait\GeolocEntityTrait; use Symfony\Component\Serializer\Annotation\Groups; /** * @ApiResource( * collectionOperations={ * "get", * "post" * }, * itemOperations={ * "get", * "put", * "delete", * }, * collectionOperations={ * "get", * "post", * "get_all_poi"={ * "controller"=MapController::class, * "method"="GET", * "input"=false, * "output"=Map::class, * "path"="/public/poi/all", * "read"=false, * "swagger_context" = { * "parameters" = { * { * "name" = "geoloc", * "in" = "query", * "description" = "[Latitude, Longitude], exemple : [45.123,4.023]", * "required" = false, * "type" : "string", * }, * { * "name" = "distance", * "in" = "query", * "description" = "Distance in kilometers", * "required" = false, * "type" : "string" * } * } * }, * "security"="is_granted('ROLE_ADMIN_PRESTATAIRE_GERER_LIST') or is_granted('ROLE_API')"}, * }, * ) */ class Map { /** * @var string|null * * @ORM\Column(length=150) * @Groups({"read", "write"}) */ protected $name; /** * @var string|null * * @ORM\Column(type="text", nullable=true) * @Groups({"read", "write"}) */ private $content; /** * @var null|string * * @ORM\Column(name="web", type="string", length=255, nullable=true) * @Groups({"read", "write"}) */ private $web; /** * @var null|string * * @ORM\Column(name="link", type="string", length=255, nullable=true) * @Groups({"read", "write"}) */ private $link; /** * @var null|string * * @ORM\Column(name="hours", type="string", length=255, nullable=true) * @Groups({"read", "write"}) */ private $hours; /** * @var null|string * * @ORM\Column(name="icon", type="string", length=255, nullable=true) * @Groups({"read", "write"}) */ private $icon; /** * @var Rubrique[] * @ORM\OneToMany(targetEntity="Rubrique") * @Groups({"read", "write"}) */ private $rubriques; /** * @var Geoloc[] * @ORM\OneToMany(targetEntity="Geoloc") * @Groups({"read", "write"}) */ private $geolocs; /** * Get name * @return */ public function getName() { return $this->name; } /** * Get content * @return */ public function getContent() { return $this->content; } /** * Get web * @return */ public function getWeb() { return $this->web; } /** * Get link * @return */ public function getLink() { return $this->link; } /** * Get hours * @return */ public function getHours() { return $this->hours; } /** * Get icon * @return */ public function getIcon() { return $this->icon; } /** * Get rubriques * @return */ public function getRubriques(): ?Rubrique { return $this->rubriques; } /** * Get geolocs * @return */ public function getGeolocs(): ?Geoloc { return $this->geolocs; } }