src/Entity/Location.php line 15
<?phpnamespace App\Entity;use App\Repository\LocationRepository;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\ORM\Mapping as ORM;/*** @ORM\Entity(repositoryClass=LocationRepository::class)* @ORM\Table(name="location")* @ORM\HasLifecycleCallbacks()*/class Location{/*** @ORM\Id* @ORM\GeneratedValue* @ORM\Column(type="integer")*/private ?int $id = null;/*** @ORM\ManyToOne(targetEntity=City::class, inversedBy="locations")* @ORM\JoinColumn(nullable=false)*/private City $city;/*** @ORM\Column(type="string", length=150)*/private string $name;/*** Armenian name (optional). Falls back to $name when empty.* @ORM\Column(type="string", length=150, nullable=true)*/private ?string $nameHy = null;/*** Russian name (optional). Falls back to $name when empty.* @ORM\Column(type="string", length=150, nullable=true)*/private ?string $nameRu = null;/*** @ORM\Column(type="string", length=170, unique=true)*/private string $slug;/*** @ORM\Column(type="string", length=255, nullable=true)*/private ?string $address = null;/*** @ORM\Column(type="decimal", precision=10, scale=7, nullable=true)*/private ?float $latitude = null;/*** @ORM\Column(type="decimal", precision=10, scale=7, nullable=true)*/private ?float $longitude = null;/*** e.g. "museum", "landmark", "restaurant"* @ORM\Column(type="string", length=50, nullable=true)*/private ?string $category = null;/*** @ORM\Column(type="boolean", options={"default": true})*/private bool $isActive = true;/*** @ORM\Column(type="datetime_immutable")*/private \DateTimeImmutable $createdAt;/*** @ORM\Column(type="datetime_immutable", nullable=true)*/private ?\DateTimeImmutable $updatedAt = null;/*** @ORM\OneToMany(targetEntity=LocationDetail::class, mappedBy="location", cascade={"persist"}, orphanRemoval=true)* @ORM\OrderBy({"sortOrder" = "ASC"})*/private Collection $details;public function __construct(){$this->details = new ArrayCollection();$this->createdAt = new \DateTimeImmutable();}/*** @ORM\PreUpdate()*/public function onPreUpdate(): void{$this->updatedAt = new \DateTimeImmutable();}public function getId(): ?int{return $this->id;}public function getCity(): City{return $this->city;}public function setCity(?City $city): self{$this->city = $city;return $this;}public function getName(): string{return $this->name;}public function setName(string $name): self{$this->name = $name;return $this;}public function getNameHy(): ?string{return $this->nameHy;}public function setNameHy(?string $nameHy): self{$this->nameHy = $nameHy;return $this;}public function getNameRu(): ?string{return $this->nameRu;}public function setNameRu(?string $nameRu): self{$this->nameRu = $nameRu;return $this;}public function getSlug(): string{return $this->slug;}public function setSlug(string $slug): self{$this->slug = $slug;return $this;}public function getAddress(): ?string{return $this->address;}public function setAddress(?string $address): self{$this->address = $address;return $this;}public function getLatitude(): ?float{return $this->latitude;}public function setLatitude(?float $latitude): self{$this->latitude = $latitude;return $this;}public function getLongitude(): ?float{return $this->longitude;}public function setLongitude(?float $longitude): self{$this->longitude = $longitude;return $this;}public function getCategory(): ?string{return $this->category;}public function setCategory(?string $category): self{$this->category = $category;return $this;}public function isActive(): bool{return $this->isActive;}public function setIsActive(bool $isActive): self{$this->isActive = $isActive;return $this;}public function getCreatedAt(): \DateTimeImmutable{return $this->createdAt;}public function getUpdatedAt(): ?\DateTimeImmutable{return $this->updatedAt;}public function getDetails(): Collection{return $this->details;}public function addDetail(LocationDetail $detail): self{if (!$this->details->contains($detail)) {$this->details->add($detail);$detail->setLocation($this);}return $this;}public function removeDetail(LocationDetail $detail): self{if ($this->details->removeElement($detail)) {if ($detail->getLocation() === $this) {$detail->setLocation(null);}}return $this;}public function __toString(): string{return ($this->title ?? '');}}