X-Git-Url: https://git.rapsys.eu/airbundle/blobdiff_plain/7a3c81a5fa9cc1ad105457d1f4f7153df2475e7e..8af69ac700a76d252d0c2beceaeee29b41f5d483:/Entity/Location.php diff --git a/Entity/Location.php b/Entity/Location.php index e57f235..62ef9fc 100644 --- a/Entity/Location.php +++ b/Entity/Location.php @@ -1,82 +1,71 @@ - + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ namespace Rapsys\AirBundle\Entity; +use Doctrine\Common\Collections\Collection; +use Doctrine\Common\Collections\ArrayCollection; +use Doctrine\ORM\Event\PreUpdateEventArgs; + /** * Location */ class Location { /** - * @var integer - */ - private $id; - - /** - * @var string - */ - private $title; - - /** - * @var string - */ - private $short; - - /** - * @var string - */ - private $address; - - /** - * @var string - */ - private $zipcode; - - /** - * @var string - */ - private $city; - - /** - * @var string + * Primary key */ - private $latitude; + private ?int $id = null; /** * @var string */ - private $longitude; + private ?string $description = null; /** - * @var boolean + * Create datetime */ - private $hotspot; + private \DateTime $created; /** - * @var \DateTime + * Update datetime */ - private $created; + private \DateTime $updated; /** - * @var \DateTime + * Sessions collection */ - private $updated; + private Collection $sessions; /** - * @var \Doctrine\Common\Collections\Collection + * Snippets collection */ - private $sessions; + private Collection $snippets; /** - * @var \Doctrine\Common\Collections\Collection + * Users collection */ - private $snippets; + private Collection $users; /** * Constructor */ - public function __construct() { - $this->sessions = new \Doctrine\Common\Collections\ArrayCollection(); - $this->snippets = new \Doctrine\Common\Collections\ArrayCollection(); + public function __construct(private string $title = '', private string $address = '', private string $zipcode = '', private string $city = '', private string $latitude = '0', private string $longitude = '0', private bool $hotspot = false, private bool $indoor = false) { + //Set defaults + $this->created = new \DateTime('now'); + $this->updated = new \DateTime('now'); + + //Set collections + $this->sessions = new ArrayCollection(); + $this->snippets = new ArrayCollection(); + $this->users = new ArrayCollection(); } /** @@ -84,7 +73,7 @@ class Location { * * @return integer */ - public function getId() { + public function getId(): ?int { return $this->id; } @@ -95,7 +84,7 @@ class Location { * * @return Location */ - public function setTitle($title) { + public function setTitle(string $title): Location { $this->title = $title; return $this; @@ -106,30 +95,30 @@ class Location { * * @return string */ - public function getTitle() { + public function getTitle(): string { return $this->title; } /** - * Set short + * Set description * - * @param string $short + * @param string $description * * @return Location */ - public function setShort($short) { - $this->short = $short; + public function setDescription(?string $description): Location { + $this->description = $description; return $this; } /** - * Get short + * Get description * * @return string */ - public function getShort() { - return $this->short; + public function getDescription(): ?string { + return $this->description; } /** @@ -139,7 +128,7 @@ class Location { * * @return Location */ - public function setAddress($address) { + public function setAddress(string $address): Location { $this->address = $address; return $this; @@ -150,7 +139,7 @@ class Location { * * @return string */ - public function getAddress() { + public function getAddress(): string { return $this->address; } @@ -161,7 +150,7 @@ class Location { * * @return Location */ - public function setZipcode($zipcode) { + public function setZipcode(string $zipcode): Location { $this->zipcode = $zipcode; return $this; @@ -172,7 +161,7 @@ class Location { * * @return string */ - public function getZipcode() { + public function getZipcode(): string { return $this->zipcode; } @@ -183,7 +172,7 @@ class Location { * * @return Location */ - public function setCity($city) { + public function setCity(string $city): Location { $this->city = $city; return $this; @@ -194,7 +183,7 @@ class Location { * * @return string */ - public function getCity() { + public function getCity(): string { return $this->city; } @@ -205,7 +194,7 @@ class Location { * * @return Location */ - public function setLatitude($latitude) { + public function setLatitude(string $latitude): Location { $this->latitude = $latitude; return $this; @@ -216,7 +205,7 @@ class Location { * * @return string */ - public function getLatitude() { + public function getLatitude(): string { return $this->latitude; } @@ -227,7 +216,7 @@ class Location { * * @return Location */ - public function setLongitude($longitude) { + public function setLongitude(string $longitude): Location { $this->longitude = $longitude; return $this; @@ -238,18 +227,40 @@ class Location { * * @return string */ - public function getLongitude() { + public function getLongitude(): string { return $this->longitude; } + /** + * Set indoor + * + * @param bool $indoor + * + * @return Session + */ + public function setIndoor(bool $indoor): Location { + $this->indoor = $indoor; + + return $this; + } + + /** + * Get indoor + * + * @return bool + */ + public function getIndoor(): bool { + return $this->indoor; + } + /** * Set hotspot * - * @param boolean $hotspot + * @param bool $hotspot * * @return Session */ - public function setHotspot($hotspot) { + public function setHotspot(bool $hotspot): Location { $this->hotspot = $hotspot; return $this; @@ -258,9 +269,9 @@ class Location { /** * Get hotspot * - * @return boolean + * @return bool */ - public function getHotspot() { + public function getHotspot(): bool { return $this->hotspot; } @@ -271,7 +282,7 @@ class Location { * * @return Location */ - public function setCreated($created) { + public function setCreated(\DateTime $created): Location { $this->created = $created; return $this; @@ -282,7 +293,7 @@ class Location { * * @return \DateTime */ - public function getCreated() { + public function getCreated(): \DateTime { return $this->created; } @@ -293,7 +304,7 @@ class Location { * * @return Location */ - public function setUpdated($updated) { + public function setUpdated(\DateTime $updated): Location { $this->updated = $updated; return $this; @@ -304,18 +315,18 @@ class Location { * * @return \DateTime */ - public function getUpdated() { + public function getUpdated(): \DateTime { return $this->updated; } /** * Add session * - * @param \Rapsys\AirBundle\Entity\Session $session + * @param Session $session * * @return Location */ - public function addSession(\Rapsys\AirBundle\Entity\Session $session) { + public function addSession(Session $session): Location { $this->sessions[] = $session; return $this; @@ -324,29 +335,30 @@ class Location { /** * Remove session * - * @param \Rapsys\AirBundle\Entity\Session $session + * @param Session $session + * @return bool */ - public function removeSession(\Rapsys\AirBundle\Entity\Session $session) { - $this->sessions->removeElement($session); + public function removeSession(Session $session): bool { + return $this->sessions->removeElement($session); } /** * Get sessions * - * @return \Doctrine\Common\Collections\Collection + * @return ArrayCollection */ - public function getSessions() { + public function getSessions(): ArrayCollection { return $this->sessions; } /** * Add snippet * - * @param \Rapsys\AirBundle\Entity\Snippet $snippet + * @param Snippet $snippet * * @return Location */ - public function addSnippet(\Rapsys\AirBundle\Entity\Snippet $snippet) { + public function addSnippet(Snippet $snippet): Location { $this->snippets[] = $snippet; return $this; @@ -355,21 +367,75 @@ class Location { /** * Remove snippet * - * @param \Rapsys\AirBundle\Entity\Snippet $snippet + * @param Snippet $snippet + * @return bool */ - public function removeSnippet(\Rapsys\AirBundle\Entity\Snippet $snippet) { - $this->snippets->removeElement($snippet); + public function removeSnippet(Snippet $snippet): bool { + return $this->snippets->removeElement($snippet); } /** * Get snippets * - * @return \Doctrine\Common\Collections\Collection + * @return ArrayCollection */ - public function getSnippets() { + public function getSnippets(): ArrayCollection { return $this->snippets; } + /** + * Add user + * + * @param User $user + * + * @return Location + */ + public function addUser(User $user): Location { + //Add from owning side + $user->addLocation($this); + + $this->users[] = $user; + + return $this; + } + + /** + * Remove user + * + * @param User $user + * @return bool + */ + public function removeUser(User $user): bool { + if (!$this->locations->contains($user)) { + return true; + } + + //Remove from owning side + $user->removeLocation($this); + + return $this->users->removeElement($user); + } + + /** + * Get users + * + * @return ArrayCollection + */ + public function getUsers(): ArrayCollection { + return $this->users; + } + + /** + * {@inheritdoc} + */ + public function preUpdate(PreUpdateEventArgs $eventArgs) { + //Check that we have a location instance + if (($location = $eventArgs->getObject()) instanceof Location) { + //Set updated value + $location->setUpdated(new \DateTime('now')); + } + } + /** * Returns a string representation of the location *