X-Git-Url: https://git.rapsys.eu/airbundle/blobdiff_plain/f0ed7af138b95f31354f8d5a37cb4cd27b902a75..d38cae3e15b6538588fb6773ca6d30e293067722:/Entity/Dance.php

diff --git a/Entity/Dance.php b/Entity/Dance.php
index e3779da..796b81f 100644
--- a/Entity/Dance.php
+++ b/Entity/Dance.php
@@ -26,7 +26,12 @@ class Dance {
 	/**
 	 * @var string
 	 */
-	protected $title;
+	protected $name;
+
+	/**
+	 * @var string
+	 */
+	protected $type;
 
 	/**
 	 * @var \DateTime
@@ -50,11 +55,18 @@ 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');
+
+		//Set collections
 		$this->applications = new ArrayCollection();
 		$this->users = new ArrayCollection();
 	}
@@ -69,25 +81,47 @@ class Dance {
 	}
 
 	/**
-	 * Set title
+	 * Set name
 	 *
-	 * @param string $title
+	 * @param string $name
 	 *
 	 * @return Dance
 	 */
-	public function setTitle(string $title): Dance {
-		$this->title = $title;
+	public function setName(string $name): Dance {
+		$this->name = $name;
 
 		return $this;
 	}
 
 	/**
-	 * Get title
+	 * Get name
 	 *
 	 * @return string
 	 */
-	public function getTitle(): string {
-		return $this->title;
+	public function getName(): string {
+		return $this->name;
+	}
+
+	/**
+	 * Set type
+	 *
+	 * @param string $type
+	 *
+	 * @return Dance
+	 */
+	public function setType(string $type): Dance {
+		$this->type = $type;
+
+		return $this;
+	}
+
+	/**
+	 * Get type
+	 *
+	 * @return string
+	 */
+	public function getType(): string {
+		return $this->type;
 	}
 
 	/**
@@ -175,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;
@@ -188,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);
 	}
 
@@ -204,7 +248,7 @@ class Dance {
 	 * {@inheritdoc}
 	 */
 	public function preUpdate(PreUpdateEventArgs $eventArgs) {
-		//Check that we have an session instance
+		//Check that we have a dance instance
 		if (($dance = $eventArgs->getEntity()) instanceof Dance) {
 			//Set updated value
 			$dance->setUpdated(new \DateTime('now'));
@@ -217,6 +261,6 @@ class Dance {
 	 * @return string
 	 */
 	public function __toString(): string {
-		return $this->title;
+		return $this->name.' '.lcfirst($this->type);
 	}
 }