X-Git-Url: https://git.rapsys.eu/airbundle/blobdiff_plain/1c376852cd0277866cbb7345ea00993f0b37ad76..7fb4966e3d8a42c7199ab35d5f798105bcb65b73:/Entity/Dance.php diff --git a/Entity/Dance.php b/Entity/Dance.php index dccee33..6ae5f1b 100644 --- a/Entity/Dance.php +++ b/Entity/Dance.php @@ -1,16 +1,17 @@ + * (c) Raphaël Gertz * - * for the full copyright and license information, please view the license + * 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; @@ -19,39 +20,29 @@ use Doctrine\ORM\Event\PreUpdateEventArgs; */ class Dance { /** - * @var integer + * Primary key */ - private $id; + private ?int $id = null; /** - * @var string + * Create datetime */ - protected $name; + private \DateTime $created; /** - * @var string + * Update datetime */ - protected $type; + private \DateTime $updated; /** - * @var \DateTime + * Applications collection */ - private $created; + private Collection $applications; /** - * @var \DateTime + * Users collection */ - private $updated; - - /** - * @var ArrayCollection - */ - private $applications; - - /** - * @var ArrayCollection - */ - private $users; + private Collection $users; /** * Constructor @@ -59,10 +50,8 @@ class Dance { * @param string $name The dance name * @param string $type The dance type */ - public function __construct(string $name, string $type) { + public function __construct(private string $name, private string $type) { //Set defaults - $this->name = $name; - $this->type = $type; $this->created = new \DateTime('now'); $this->updated = new \DateTime('now'); @@ -76,7 +65,7 @@ class Dance { * * @return integer */ - public function getId(): int { + public function getId(): ?int { return $this->id; } @@ -209,6 +198,9 @@ class Dance { * @return Dance */ public function addUser(User $user): Dance { + //Add from owning side + $user->addDance($this); + $this->users[] = $user; return $this; @@ -222,6 +214,13 @@ class Dance { * @return bool */ public function removeUser(User $user): bool { + if (!$this->dances->contains($user)) { + return true; + } + + //Remove from owning side + $user->removeDance($this); + return $this->users->removeElement($user); } @@ -239,7 +238,7 @@ class Dance { */ public function preUpdate(PreUpdateEventArgs $eventArgs) { //Check that we have a dance instance - if (($dance = $eventArgs->getEntity()) instanceof Dance) { + if (($dance = $eventArgs->getObject()) instanceof Dance) { //Set updated value $dance->setUpdated(new \DateTime('now')); }