<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for InterfaceVehicleSelection_V2 StructType
 * @subpackage Structs
 */
class InterfaceVehicleSelection_V2 extends VehicleSelection_With_NextStop_Info_And_VehicleProfile
{
    /**
     * The IncludeLastTextMessageInboxOutbox
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $IncludeLastTextMessageInboxOutbox;
    /**
     * The IncludeLastAlarmMessage
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $IncludeLastAlarmMessage;
    /**
     * The IncludeBlockedVehicleInfo
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $IncludeBlockedVehicleInfo;
    /**
     * The IncludeCompanyCardInfo
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * - nillable: true
     * @var bool
     */
    public $IncludeCompanyCardInfo;
    /**
     * Constructor method for InterfaceVehicleSelection_V2
     * @uses InterfaceVehicleSelection_V2::setIncludeLastTextMessageInboxOutbox()
     * @uses InterfaceVehicleSelection_V2::setIncludeLastAlarmMessage()
     * @uses InterfaceVehicleSelection_V2::setIncludeBlockedVehicleInfo()
     * @uses InterfaceVehicleSelection_V2::setIncludeCompanyCardInfo()
     * @param bool $includeLastTextMessageInboxOutbox
     * @param bool $includeLastAlarmMessage
     * @param bool $includeBlockedVehicleInfo
     * @param bool $includeCompanyCardInfo
     */
    public function __construct($includeLastTextMessageInboxOutbox = null, $includeLastAlarmMessage = null, $includeBlockedVehicleInfo = null, $includeCompanyCardInfo = null)
    {
        $this
            ->setIncludeLastTextMessageInboxOutbox($includeLastTextMessageInboxOutbox)
            ->setIncludeLastAlarmMessage($includeLastAlarmMessage)
            ->setIncludeBlockedVehicleInfo($includeBlockedVehicleInfo)
            ->setIncludeCompanyCardInfo($includeCompanyCardInfo);
    }
    /**
     * Get IncludeLastTextMessageInboxOutbox value
     * @return bool
     */
    public function getIncludeLastTextMessageInboxOutbox()
    {
        return $this->IncludeLastTextMessageInboxOutbox;
    }
    /**
     * Set IncludeLastTextMessageInboxOutbox value
     * @param bool $includeLastTextMessageInboxOutbox
     * @return \StructType\InterfaceVehicleSelection_V2
     */
    public function setIncludeLastTextMessageInboxOutbox($includeLastTextMessageInboxOutbox = null)
    {
        // validation for constraint: boolean
        if (!is_null($includeLastTextMessageInboxOutbox) && !is_bool($includeLastTextMessageInboxOutbox)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($includeLastTextMessageInboxOutbox, true), gettype($includeLastTextMessageInboxOutbox)), __LINE__);
        }
        $this->IncludeLastTextMessageInboxOutbox = $includeLastTextMessageInboxOutbox;
        return $this;
    }
    /**
     * Get IncludeLastAlarmMessage value
     * @return bool
     */
    public function getIncludeLastAlarmMessage()
    {
        return $this->IncludeLastAlarmMessage;
    }
    /**
     * Set IncludeLastAlarmMessage value
     * @param bool $includeLastAlarmMessage
     * @return \StructType\InterfaceVehicleSelection_V2
     */
    public function setIncludeLastAlarmMessage($includeLastAlarmMessage = null)
    {
        // validation for constraint: boolean
        if (!is_null($includeLastAlarmMessage) && !is_bool($includeLastAlarmMessage)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($includeLastAlarmMessage, true), gettype($includeLastAlarmMessage)), __LINE__);
        }
        $this->IncludeLastAlarmMessage = $includeLastAlarmMessage;
        return $this;
    }
    /**
     * Get IncludeBlockedVehicleInfo value
     * @return bool
     */
    public function getIncludeBlockedVehicleInfo()
    {
        return $this->IncludeBlockedVehicleInfo;
    }
    /**
     * Set IncludeBlockedVehicleInfo value
     * @param bool $includeBlockedVehicleInfo
     * @return \StructType\InterfaceVehicleSelection_V2
     */
    public function setIncludeBlockedVehicleInfo($includeBlockedVehicleInfo = null)
    {
        // validation for constraint: boolean
        if (!is_null($includeBlockedVehicleInfo) && !is_bool($includeBlockedVehicleInfo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($includeBlockedVehicleInfo, true), gettype($includeBlockedVehicleInfo)), __LINE__);
        }
        $this->IncludeBlockedVehicleInfo = $includeBlockedVehicleInfo;
        return $this;
    }
    /**
     * Get IncludeCompanyCardInfo value
     * @return bool
     */
    public function getIncludeCompanyCardInfo()
    {
        return $this->IncludeCompanyCardInfo;
    }
    /**
     * Set IncludeCompanyCardInfo value
     * @param bool $includeCompanyCardInfo
     * @return \StructType\InterfaceVehicleSelection_V2
     */
    public function setIncludeCompanyCardInfo($includeCompanyCardInfo = null)
    {
        // validation for constraint: boolean
        if (!is_null($includeCompanyCardInfo) && !is_bool($includeCompanyCardInfo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($includeCompanyCardInfo, true), gettype($includeCompanyCardInfo)), __LINE__);
        }
        $this->IncludeCompanyCardInfo = $includeCompanyCardInfo;
        return $this;
    }
}
