<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for LocationBusinessHours StructType
 * @subpackage Structs
 */
class LocationBusinessHours extends AbstractStructBase
{
    /**
     * The startTime
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $startTime;
    /**
     * The endTime
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $endTime;
    /**
     * The isSunday
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isSunday;
    /**
     * The isMonday
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isMonday;
    /**
     * The isTuesday
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isTuesday;
    /**
     * The isWednesday
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isWednesday;
    /**
     * The isThursday
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isThursday;
    /**
     * The isFriday
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isFriday;
    /**
     * The isSaturday
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $isSaturday;
    /**
     * The sameDayPickupCutOffTime
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $sameDayPickupCutOffTime;
    /**
     * Constructor method for LocationBusinessHours
     * @uses LocationBusinessHours::setStartTime()
     * @uses LocationBusinessHours::setEndTime()
     * @uses LocationBusinessHours::setIsSunday()
     * @uses LocationBusinessHours::setIsMonday()
     * @uses LocationBusinessHours::setIsTuesday()
     * @uses LocationBusinessHours::setIsWednesday()
     * @uses LocationBusinessHours::setIsThursday()
     * @uses LocationBusinessHours::setIsFriday()
     * @uses LocationBusinessHours::setIsSaturday()
     * @uses LocationBusinessHours::setSameDayPickupCutOffTime()
     * @param string $startTime
     * @param string $endTime
     * @param bool $isSunday
     * @param bool $isMonday
     * @param bool $isTuesday
     * @param bool $isWednesday
     * @param bool $isThursday
     * @param bool $isFriday
     * @param bool $isSaturday
     * @param string $sameDayPickupCutOffTime
     */
    public function __construct($startTime = null, $endTime = null, $isSunday = null, $isMonday = null, $isTuesday = null, $isWednesday = null, $isThursday = null, $isFriday = null, $isSaturday = null, $sameDayPickupCutOffTime = null)
    {
        $this
            ->setStartTime($startTime)
            ->setEndTime($endTime)
            ->setIsSunday($isSunday)
            ->setIsMonday($isMonday)
            ->setIsTuesday($isTuesday)
            ->setIsWednesday($isWednesday)
            ->setIsThursday($isThursday)
            ->setIsFriday($isFriday)
            ->setIsSaturday($isSaturday)
            ->setSameDayPickupCutOffTime($sameDayPickupCutOffTime);
    }
    /**
     * Get startTime value
     * @return string|null
     */
    public function getStartTime()
    {
        return $this->startTime;
    }
    /**
     * Set startTime value
     * @param string $startTime
     * @return \StructType\LocationBusinessHours
     */
    public function setStartTime($startTime = null)
    {
        // validation for constraint: string
        if (!is_null($startTime) && !is_string($startTime)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($startTime, true), gettype($startTime)), __LINE__);
        }
        $this->startTime = $startTime;
        return $this;
    }
    /**
     * Get endTime value
     * @return string|null
     */
    public function getEndTime()
    {
        return $this->endTime;
    }
    /**
     * Set endTime value
     * @param string $endTime
     * @return \StructType\LocationBusinessHours
     */
    public function setEndTime($endTime = null)
    {
        // validation for constraint: string
        if (!is_null($endTime) && !is_string($endTime)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($endTime, true), gettype($endTime)), __LINE__);
        }
        $this->endTime = $endTime;
        return $this;
    }
    /**
     * Get isSunday value
     * @return bool|null
     */
    public function getIsSunday()
    {
        return $this->isSunday;
    }
    /**
     * Set isSunday value
     * @param bool $isSunday
     * @return \StructType\LocationBusinessHours
     */
    public function setIsSunday($isSunday = null)
    {
        // validation for constraint: boolean
        if (!is_null($isSunday) && !is_bool($isSunday)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isSunday, true), gettype($isSunday)), __LINE__);
        }
        $this->isSunday = $isSunday;
        return $this;
    }
    /**
     * Get isMonday value
     * @return bool|null
     */
    public function getIsMonday()
    {
        return $this->isMonday;
    }
    /**
     * Set isMonday value
     * @param bool $isMonday
     * @return \StructType\LocationBusinessHours
     */
    public function setIsMonday($isMonday = null)
    {
        // validation for constraint: boolean
        if (!is_null($isMonday) && !is_bool($isMonday)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isMonday, true), gettype($isMonday)), __LINE__);
        }
        $this->isMonday = $isMonday;
        return $this;
    }
    /**
     * Get isTuesday value
     * @return bool|null
     */
    public function getIsTuesday()
    {
        return $this->isTuesday;
    }
    /**
     * Set isTuesday value
     * @param bool $isTuesday
     * @return \StructType\LocationBusinessHours
     */
    public function setIsTuesday($isTuesday = null)
    {
        // validation for constraint: boolean
        if (!is_null($isTuesday) && !is_bool($isTuesday)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isTuesday, true), gettype($isTuesday)), __LINE__);
        }
        $this->isTuesday = $isTuesday;
        return $this;
    }
    /**
     * Get isWednesday value
     * @return bool|null
     */
    public function getIsWednesday()
    {
        return $this->isWednesday;
    }
    /**
     * Set isWednesday value
     * @param bool $isWednesday
     * @return \StructType\LocationBusinessHours
     */
    public function setIsWednesday($isWednesday = null)
    {
        // validation for constraint: boolean
        if (!is_null($isWednesday) && !is_bool($isWednesday)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isWednesday, true), gettype($isWednesday)), __LINE__);
        }
        $this->isWednesday = $isWednesday;
        return $this;
    }
    /**
     * Get isThursday value
     * @return bool|null
     */
    public function getIsThursday()
    {
        return $this->isThursday;
    }
    /**
     * Set isThursday value
     * @param bool $isThursday
     * @return \StructType\LocationBusinessHours
     */
    public function setIsThursday($isThursday = null)
    {
        // validation for constraint: boolean
        if (!is_null($isThursday) && !is_bool($isThursday)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isThursday, true), gettype($isThursday)), __LINE__);
        }
        $this->isThursday = $isThursday;
        return $this;
    }
    /**
     * Get isFriday value
     * @return bool|null
     */
    public function getIsFriday()
    {
        return $this->isFriday;
    }
    /**
     * Set isFriday value
     * @param bool $isFriday
     * @return \StructType\LocationBusinessHours
     */
    public function setIsFriday($isFriday = null)
    {
        // validation for constraint: boolean
        if (!is_null($isFriday) && !is_bool($isFriday)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isFriday, true), gettype($isFriday)), __LINE__);
        }
        $this->isFriday = $isFriday;
        return $this;
    }
    /**
     * Get isSaturday value
     * @return bool|null
     */
    public function getIsSaturday()
    {
        return $this->isSaturday;
    }
    /**
     * Set isSaturday value
     * @param bool $isSaturday
     * @return \StructType\LocationBusinessHours
     */
    public function setIsSaturday($isSaturday = null)
    {
        // validation for constraint: boolean
        if (!is_null($isSaturday) && !is_bool($isSaturday)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($isSaturday, true), gettype($isSaturday)), __LINE__);
        }
        $this->isSaturday = $isSaturday;
        return $this;
    }
    /**
     * Get sameDayPickupCutOffTime value
     * @return string|null
     */
    public function getSameDayPickupCutOffTime()
    {
        return $this->sameDayPickupCutOffTime;
    }
    /**
     * Set sameDayPickupCutOffTime value
     * @param string $sameDayPickupCutOffTime
     * @return \StructType\LocationBusinessHours
     */
    public function setSameDayPickupCutOffTime($sameDayPickupCutOffTime = null)
    {
        // validation for constraint: string
        if (!is_null($sameDayPickupCutOffTime) && !is_string($sameDayPickupCutOffTime)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sameDayPickupCutOffTime, true), gettype($sameDayPickupCutOffTime)), __LINE__);
        }
        $this->sameDayPickupCutOffTime = $sameDayPickupCutOffTime;
        return $this;
    }
}
