X-Git-Url: https://git.rapsys.eu/airbundle/blobdiff_plain/f110b8ba20232e0ceeb67390f8e672431868d32d..7e6c49558e06e7b1018d1cb82dbe9da1b92ad4f4:/Entity/Session.php

diff --git a/Entity/Session.php b/Entity/Session.php
index 72d1f33..e746171 100644
--- a/Entity/Session.php
+++ b/Entity/Session.php
@@ -24,7 +24,67 @@ class Session {
 	/**
 	 * @var \DateTime
 	 */
-	private $end;
+	private $start = null;
+
+	/**
+	 * @var \DateTime
+	 */
+	private $length;
+
+	/**
+	 * @var \DateTime
+	 */
+	private $stop = null;
+
+	/**
+	 * @var boolean
+	 */
+	private $premium;
+
+	/**
+	 * @var float
+	 */
+	private $rainfall;
+
+	/**
+	 * @var float
+	 */
+	private $rainrisk;
+
+	/**
+	 * @var float
+	 */
+	private $realfeel;
+
+	/**
+	 * @var float
+	 */
+	private $realfeelmin;
+
+	/**
+	 * @var float
+	 */
+	private $realfeelmax;
+
+	/**
+	 * @var integer
+	 */
+	private $temperature;
+
+	/**
+	 * @var integer
+	 */
+	private $temperaturemin;
+
+	/**
+	 * @var integer
+	 */
+	private $temperaturemax;
+
+	/**
+	 * @var \DateTime
+	 */
+	private $locked;
 
 	/**
 	 * @var \DateTime
@@ -37,9 +97,9 @@ class Session {
 	private $updated;
 
 	/**
-	 * @var \Doctrine\Common\Collections\Collection
+	 * @var \Rapsys\AirBundle\Entity\Application
 	 */
-	private $applications;
+	private $application;
 
 	/**
 	 * @var \Rapsys\AirBundle\Entity\Location
@@ -47,9 +107,14 @@ class Session {
 	private $location;
 
 	/**
-	 * @var \Rapsys\AirBundle\Entity\Application
+	 * @var \Rapsys\AirBundle\Entity\Slot
 	 */
-	private $application;
+	private $slot;
+
+	/**
+	 * @var \Doctrine\Common\Collections\Collection
+	 */
+	private $applications;
 
 	/**
 	 * Constructor
@@ -112,25 +177,288 @@ class Session {
 	}
 
 	/**
-	 * Set end
+	 * Get start
 	 *
-	 * @param \DateTime $end
+	 * @return \DateTime
+	 */
+	public function getStart() {
+		//Check start
+		if ($this->start !== null) {
+			return $this->start;
+		}
+
+		//Clone date
+		$this->start = clone $this->date;
+
+		//Check if after slot
+		//XXX: id=4 <=> title=After
+		if ($this->slot->getId() == 4) {
+			//Add one day
+			$this->start->add(new \DateInterval('P1D'));
+		}
+
+		//Return date
+		return $this->start->setTime($this->begin->format('H'), $this->begin->format('i'), $this->begin->format('s'));
+	}
+
+	/**
+	 * Set length
+	 *
+	 * @param \DateTime $length
 	 *
 	 * @return Session
 	 */
-	public function setEnd($end) {
-		$this->end = $end;
+	public function setLength($length) {
+		$this->length = $length;
 
 		return $this;
 	}
 
 	/**
-	 * Get end
+	 * Get length
+	 *
+	 * @return \DateTime
+	 */
+	public function getLength() {
+		return $this->length;
+	}
+
+	/**
+	 * Get stop
 	 *
 	 * @return \DateTime
 	 */
-	public function getEnd() {
-		return $this->end;
+	public function getStop() {
+		//Check start
+		if ($this->stop !== null) {
+			return $this->stop;
+		}
+
+		//Get start clone
+		$this->stop = clone $this->getStart();
+
+		//Return date
+		return $this->stop->add(new \DateInterval('PT'.$this->length->format('H').'H'.$this->length->format('i').'M'.$this->length->format('s').'S'));
+	}
+
+	/**
+	 * Set premium
+	 *
+	 * @param boolean $premium
+	 *
+	 * @return Session
+	 */
+	public function setPremium($premium) {
+		$this->premium = $premium;
+
+		return $this;
+	}
+
+	/**
+	 * Get premium
+	 *
+	 * @return boolean
+	 */
+	public function getPremium() {
+		return $this->premium;
+	}
+
+	/**
+	 * Set rainfall
+	 *
+	 * @param boolean $rainfall
+	 *
+	 * @return Session
+	 */
+	public function setRainfall($rainfall) {
+		$this->rainfall = $rainfall;
+
+		return $this;
+	}
+
+	/**
+	 * Get rainfall
+	 *
+	 * @return boolean
+	 */
+	public function getRainfall() {
+		return $this->rainfall;
+	}
+
+	/**
+	 * Set rainrisk
+	 *
+	 * @param boolean $rainrisk
+	 *
+	 * @return Session
+	 */
+	public function setRainrisk($rainrisk) {
+		$this->rainrisk = $rainrisk;
+
+		return $this;
+	}
+
+	/**
+	 * Get rainrisk
+	 *
+	 * @return boolean
+	 */
+	public function getRainrisk() {
+		return $this->rainrisk;
+	}
+
+	/**
+	 * Set realfeel
+	 *
+	 * @param integer $realfeel
+	 *
+	 * @return Session
+	 */
+	public function setRealfeel($realfeel) {
+		$this->realfeel = $realfeel;
+
+		return $this;
+	}
+
+	/**
+	 * Get realfeel
+	 *
+	 * @return integer
+	 */
+	public function getRealfeel() {
+		return $this->realfeel;
+	}
+
+	/**
+	 * Set realfeelmin
+	 *
+	 * @param integer $realfeelmin
+	 *
+	 * @return Session
+	 */
+	public function setRealfeelmin($realfeelmin) {
+		$this->realfeelmin = $realfeelmin;
+
+		return $this;
+	}
+
+	/**
+	 * Get realfeelmin
+	 *
+	 * @return integer
+	 */
+	public function getRealfeelmin() {
+		return $this->realfeelmin;
+	}
+
+	/**
+	 * Set realfeelmax
+	 *
+	 * @param integer $realfeelmax
+	 *
+	 * @return Session
+	 */
+	public function setRealfeelmax($realfeelmax) {
+		$this->realfeelmax = $realfeelmax;
+
+		return $this;
+	}
+
+	/**
+	 * Get realfeelmax
+	 *
+	 * @return integer
+	 */
+	public function getRealfeelmax() {
+		return $this->realfeelmax;
+	}
+
+	/**
+	 * Set temperature
+	 *
+	 * @param integer $temperature
+	 *
+	 * @return Session
+	 */
+	public function setTemperature($temperature) {
+		$this->temperature = $temperature;
+
+		return $this;
+	}
+
+	/**
+	 * Get temperature
+	 *
+	 * @return integer
+	 */
+	public function getTemperature() {
+		return $this->temperature;
+	}
+
+	/**
+	 * Set temperaturemin
+	 *
+	 * @param integer $temperaturemin
+	 *
+	 * @return Session
+	 */
+	public function setTemperaturemin($temperaturemin) {
+		$this->temperaturemin = $temperaturemin;
+
+		return $this;
+	}
+
+	/**
+	 * Get temperaturemin
+	 *
+	 * @return integer
+	 */
+	public function getTemperaturemin() {
+		return $this->temperaturemin;
+	}
+
+	/**
+	 * Set temperaturemax
+	 *
+	 * @param integer $temperaturemax
+	 *
+	 * @return Session
+	 */
+	public function setTemperaturemax($temperaturemax) {
+		$this->temperaturemax = $temperaturemax;
+
+		return $this;
+	}
+
+	/**
+	 * Get temperaturemax
+	 *
+	 * @return integer
+	 */
+	public function getTemperaturemax() {
+		return $this->temperaturemax;
+	}
+
+	/**
+	 * Set locked
+	 *
+	 * @param \DateTime $locked
+	 *
+	 * @return Session
+	 */
+	public function setLocked($locked) {
+		$this->locked = $locked;
+
+		return $this;
+	}
+
+	/**
+	 * Get locked
+	 *
+	 * @return \DateTime
+	 */
+	public function getLocked() {
+		return $this->locked;
 	}
 
 	/**
@@ -229,11 +557,6 @@ class Session {
 	public function getLocation() {
 		return $this->location;
 	}
-	/**
-	 * @var \Rapsys\AirBundle\Entity\Slot
-	 */
-	private $slot;
-
 
 	/**
 	 * Set slot