X-Git-Url: https://git.rapsys.eu/airbundle/blobdiff_plain/40fa570f0ce4fc6b518ab7b6d71fde5bf249cd56..9766283440328e29ddc18b6ed9928eb4593d5c41:/Entity/Dance.php

diff --git a/Entity/Dance.php b/Entity/Dance.php
index fa07ba9..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,8 +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();
 	}
@@ -66,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;
 	}
 
 	/**
@@ -172,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;
@@ -185,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);
 	}
 
@@ -201,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'));
@@ -214,6 +261,6 @@ class Dance {
 	 * @return string
 	 */
 	public function __toString(): string {
-		return $this->title;
+		return $this->name.' '.lcfirst($this->type);
 	}
 }