]> Raphaƫl G. Git Repositories - airbundle/blobdiff - Entity/Session.php
Add strict type
[airbundle] / Entity / Session.php
index 72d1f33f83843f3db7c31ba6266712d72d5a477f..e7461711fdd30ff8ae3143ccb8524d5f9c1a7b5b 100644 (file)
@@ -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