<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for PersonStatuses StructType
 * @subpackage Structs
 */
class PersonStatuses extends AbstractStructBase
{
    /**
     * The TemporaryStaff
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $TemporaryStaff;
    /**
     * The NightDriver
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $NightDriver;
    /**
     * The International
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $International;
    /**
     * The Fixed
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $Fixed;
    /**
     * The RegularServiceTimes
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $RegularServiceTimes;
    /**
     * Constructor method for PersonStatuses
     * @uses PersonStatuses::setTemporaryStaff()
     * @uses PersonStatuses::setNightDriver()
     * @uses PersonStatuses::setInternational()
     * @uses PersonStatuses::setFixed()
     * @uses PersonStatuses::setRegularServiceTimes()
     * @param bool $temporaryStaff
     * @param bool $nightDriver
     * @param bool $international
     * @param bool $fixed
     * @param bool $regularServiceTimes
     */
    public function __construct($temporaryStaff = null, $nightDriver = null, $international = null, $fixed = null, $regularServiceTimes = null)
    {
        $this
            ->setTemporaryStaff($temporaryStaff)
            ->setNightDriver($nightDriver)
            ->setInternational($international)
            ->setFixed($fixed)
            ->setRegularServiceTimes($regularServiceTimes);
    }
    /**
     * Get TemporaryStaff value
     * @return bool
     */
    public function getTemporaryStaff()
    {
        return $this->TemporaryStaff;
    }
    /**
     * Set TemporaryStaff value
     * @param bool $temporaryStaff
     * @return \StructType\PersonStatuses
     */
    public function setTemporaryStaff($temporaryStaff = null)
    {
        // validation for constraint: boolean
        if (!is_null($temporaryStaff) && !is_bool($temporaryStaff)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($temporaryStaff, true), gettype($temporaryStaff)), __LINE__);
        }
        $this->TemporaryStaff = $temporaryStaff;
        return $this;
    }
    /**
     * Get NightDriver value
     * @return bool
     */
    public function getNightDriver()
    {
        return $this->NightDriver;
    }
    /**
     * Set NightDriver value
     * @param bool $nightDriver
     * @return \StructType\PersonStatuses
     */
    public function setNightDriver($nightDriver = null)
    {
        // validation for constraint: boolean
        if (!is_null($nightDriver) && !is_bool($nightDriver)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($nightDriver, true), gettype($nightDriver)), __LINE__);
        }
        $this->NightDriver = $nightDriver;
        return $this;
    }
    /**
     * Get International value
     * @return bool
     */
    public function getInternational()
    {
        return $this->International;
    }
    /**
     * Set International value
     * @param bool $international
     * @return \StructType\PersonStatuses
     */
    public function setInternational($international = null)
    {
        // validation for constraint: boolean
        if (!is_null($international) && !is_bool($international)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($international, true), gettype($international)), __LINE__);
        }
        $this->International = $international;
        return $this;
    }
    /**
     * Get Fixed value
     * @return bool
     */
    public function getFixed()
    {
        return $this->Fixed;
    }
    /**
     * Set Fixed value
     * @param bool $fixed
     * @return \StructType\PersonStatuses
     */
    public function setFixed($fixed = null)
    {
        // validation for constraint: boolean
        if (!is_null($fixed) && !is_bool($fixed)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($fixed, true), gettype($fixed)), __LINE__);
        }
        $this->Fixed = $fixed;
        return $this;
    }
    /**
     * Get RegularServiceTimes value
     * @return bool
     */
    public function getRegularServiceTimes()
    {
        return $this->RegularServiceTimes;
    }
    /**
     * Set RegularServiceTimes value
     * @param bool $regularServiceTimes
     * @return \StructType\PersonStatuses
     */
    public function setRegularServiceTimes($regularServiceTimes = null)
    {
        // validation for constraint: boolean
        if (!is_null($regularServiceTimes) && !is_bool($regularServiceTimes)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($regularServiceTimes, true), gettype($regularServiceTimes)), __LINE__);
        }
        $this->RegularServiceTimes = $regularServiceTimes;
        return $this;
    }
}
