]> Raphaƫl G. Git Repositories - airbundle/blobdiff - Entity/Dance.php
Fix dance user add/remove from inverse side
[airbundle] / Entity / Dance.php
index c269f32d196a33dc200c32ad9e75e3809e6595aa..796b81f20798f80239fca9dee7fee51ced9ce337 100644 (file)
@@ -26,7 +26,12 @@ class Dance {
        /**
         * @var string
         */
-       protected $title;
+       protected $name;
+
+       /**
+        * @var string
+        */
+       protected $type;
 
        /**
         * @var \DateTime
@@ -50,9 +55,14 @@ class Dance {
 
        /**
         * Constructor
+        *
+        * @param string $name The dance name
+        * @param string $type The dance type
         */
-       public function __construct() {
+       public function __construct(string $name, string $type) {
                //Set defaults
+               $this->name = $name;
+               $this->type = $type;
                $this->created = new \DateTime('now');
                $this->updated = new \DateTime('now');
 
@@ -71,25 +81,47 @@ class Dance {
        }
 
        /**
-        * Set title
+        * Set name
+        *
+        * @param string $name
+        *
+        * @return Dance
+        */
+       public function setName(string $name): Dance {
+               $this->name = $name;
+
+               return $this;
+       }
+
+       /**
+        * Get name
+        *
+        * @return string
+        */
+       public function getName(): string {
+               return $this->name;
+       }
+
+       /**
+        * Set type
         *
-        * @param string $title
+        * @param string $type
         *
         * @return Dance
         */
-       public function setTitle(string $title): Dance {
-               $this->title = $title;
+       public function setType(string $type): Dance {
+               $this->type = $type;
 
                return $this;
        }
 
        /**
-        * Get title
+        * Get type
         *
         * @return string
         */
-       public function getTitle(): string {
-               return $this->title;
+       public function getType(): string {
+               return $this->type;
        }
 
        /**
@@ -177,6 +209,9 @@ class Dance {
         * @return Dance
         */
        public function addUser(User $user): Dance {
+               //Add from owning side
+               $user->addDance($this);
+
                $this->users[] = $user;
 
                return $this;
@@ -190,6 +225,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);
        }
 
@@ -219,6 +261,6 @@ class Dance {
         * @return string
         */
        public function __toString(): string {
-               return $this->title;
+               return $this->name.' '.lcfirst($this->type);
        }
 }