<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for EventAndTicketCommonCriteria StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:EventAndTicketCommonCriteria
 * @subpackage Structs
 */
class EventAndTicketCommonCriteria extends AbstractCriteria
{
    /**
     * The EventId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $EventId;
    /**
     * The EventType1Id
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $EventType1Id;
    /**
     * The EventType2Id
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $EventType2Id;
    /**
     * The EventType3Id
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $EventType3Id;
    /**
     * The EventType4Id
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $EventType4Id;
    /**
     * The EventType5Id
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $EventType5Id;
    /**
     * The EventTypeId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $EventTypeId;
    /**
     * The FromActualDateTime
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfdateTime
     */
    public $FromActualDateTime;
    /**
     * The FromDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfdateTime
     */
    public $FromDate;
    /**
     * The Hall
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfstring
     */
    public $Hall;
    /**
     * The HallId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $HallId;
    /**
     * The ShowId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $ShowId;
    /**
     * The ShowName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfstring
     */
    public $ShowName;
    /**
     * The UntilActualDateTime
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfdateTime
     */
    public $UntilActualDateTime;
    /**
     * The UntilDate
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfdateTime
     */
    public $UntilDate;
    /**
     * Constructor method for EventAndTicketCommonCriteria
     * @uses EventAndTicketCommonCriteria::setEventId()
     * @uses EventAndTicketCommonCriteria::setEventType1Id()
     * @uses EventAndTicketCommonCriteria::setEventType2Id()
     * @uses EventAndTicketCommonCriteria::setEventType3Id()
     * @uses EventAndTicketCommonCriteria::setEventType4Id()
     * @uses EventAndTicketCommonCriteria::setEventType5Id()
     * @uses EventAndTicketCommonCriteria::setEventTypeId()
     * @uses EventAndTicketCommonCriteria::setFromActualDateTime()
     * @uses EventAndTicketCommonCriteria::setFromDate()
     * @uses EventAndTicketCommonCriteria::setHall()
     * @uses EventAndTicketCommonCriteria::setHallId()
     * @uses EventAndTicketCommonCriteria::setShowId()
     * @uses EventAndTicketCommonCriteria::setShowName()
     * @uses EventAndTicketCommonCriteria::setUntilActualDateTime()
     * @uses EventAndTicketCommonCriteria::setUntilDate()
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $eventId
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $eventType1Id
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $eventType2Id
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $eventType3Id
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $eventType4Id
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $eventType5Id
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $eventTypeId
     * @param \patest\StructType\SinglePropertyCriteriaOfdateTime $fromActualDateTime
     * @param \patest\StructType\SinglePropertyCriteriaOfdateTime $fromDate
     * @param \patest\StructType\SinglePropertyCriteriaOfstring $hall
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $hallId
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $showId
     * @param \patest\StructType\SinglePropertyCriteriaOfstring $showName
     * @param \patest\StructType\SinglePropertyCriteriaOfdateTime $untilActualDateTime
     * @param \patest\StructType\SinglePropertyCriteriaOfdateTime $untilDate
     */
    public function __construct(\patest\StructType\SinglePropertyCriteriaOfguid $eventId = null, \patest\StructType\SinglePropertyCriteriaOfguid $eventType1Id = null, \patest\StructType\SinglePropertyCriteriaOfguid $eventType2Id = null, \patest\StructType\SinglePropertyCriteriaOfguid $eventType3Id = null, \patest\StructType\SinglePropertyCriteriaOfguid $eventType4Id = null, \patest\StructType\SinglePropertyCriteriaOfguid $eventType5Id = null, \patest\StructType\SinglePropertyCriteriaOfguid $eventTypeId = null, \patest\StructType\SinglePropertyCriteriaOfdateTime $fromActualDateTime = null, \patest\StructType\SinglePropertyCriteriaOfdateTime $fromDate = null, \patest\StructType\SinglePropertyCriteriaOfstring $hall = null, \patest\StructType\SinglePropertyCriteriaOfguid $hallId = null, \patest\StructType\SinglePropertyCriteriaOfguid $showId = null, \patest\StructType\SinglePropertyCriteriaOfstring $showName = null, \patest\StructType\SinglePropertyCriteriaOfdateTime $untilActualDateTime = null, \patest\StructType\SinglePropertyCriteriaOfdateTime $untilDate = null)
    {
        $this
            ->setEventId($eventId)
            ->setEventType1Id($eventType1Id)
            ->setEventType2Id($eventType2Id)
            ->setEventType3Id($eventType3Id)
            ->setEventType4Id($eventType4Id)
            ->setEventType5Id($eventType5Id)
            ->setEventTypeId($eventTypeId)
            ->setFromActualDateTime($fromActualDateTime)
            ->setFromDate($fromDate)
            ->setHall($hall)
            ->setHallId($hallId)
            ->setShowId($showId)
            ->setShowName($showName)
            ->setUntilActualDateTime($untilActualDateTime)
            ->setUntilDate($untilDate);
    }
    /**
     * Get EventId value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfguid|null
     */
    public function getEventId()
    {
        return isset($this->EventId) ? $this->EventId : null;
    }
    /**
     * Set EventId value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $eventId
     * @return \patest\StructType\EventAndTicketCommonCriteria
     */
    public function setEventId(\patest\StructType\SinglePropertyCriteriaOfguid $eventId = null)
    {
        if (is_null($eventId) || (is_array($eventId) && empty($eventId))) {
            unset($this->EventId);
        } else {
            $this->EventId = $eventId;
        }
        return $this;
    }
    /**
     * Get EventType1Id value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfguid|null
     */
    public function getEventType1Id()
    {
        return isset($this->EventType1Id) ? $this->EventType1Id : null;
    }
    /**
     * Set EventType1Id value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $eventType1Id
     * @return \patest\StructType\EventAndTicketCommonCriteria
     */
    public function setEventType1Id(\patest\StructType\SinglePropertyCriteriaOfguid $eventType1Id = null)
    {
        if (is_null($eventType1Id) || (is_array($eventType1Id) && empty($eventType1Id))) {
            unset($this->EventType1Id);
        } else {
            $this->EventType1Id = $eventType1Id;
        }
        return $this;
    }
    /**
     * Get EventType2Id value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfguid|null
     */
    public function getEventType2Id()
    {
        return isset($this->EventType2Id) ? $this->EventType2Id : null;
    }
    /**
     * Set EventType2Id value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $eventType2Id
     * @return \patest\StructType\EventAndTicketCommonCriteria
     */
    public function setEventType2Id(\patest\StructType\SinglePropertyCriteriaOfguid $eventType2Id = null)
    {
        if (is_null($eventType2Id) || (is_array($eventType2Id) && empty($eventType2Id))) {
            unset($this->EventType2Id);
        } else {
            $this->EventType2Id = $eventType2Id;
        }
        return $this;
    }
    /**
     * Get EventType3Id value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfguid|null
     */
    public function getEventType3Id()
    {
        return isset($this->EventType3Id) ? $this->EventType3Id : null;
    }
    /**
     * Set EventType3Id value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $eventType3Id
     * @return \patest\StructType\EventAndTicketCommonCriteria
     */
    public function setEventType3Id(\patest\StructType\SinglePropertyCriteriaOfguid $eventType3Id = null)
    {
        if (is_null($eventType3Id) || (is_array($eventType3Id) && empty($eventType3Id))) {
            unset($this->EventType3Id);
        } else {
            $this->EventType3Id = $eventType3Id;
        }
        return $this;
    }
    /**
     * Get EventType4Id value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfguid|null
     */
    public function getEventType4Id()
    {
        return isset($this->EventType4Id) ? $this->EventType4Id : null;
    }
    /**
     * Set EventType4Id value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $eventType4Id
     * @return \patest\StructType\EventAndTicketCommonCriteria
     */
    public function setEventType4Id(\patest\StructType\SinglePropertyCriteriaOfguid $eventType4Id = null)
    {
        if (is_null($eventType4Id) || (is_array($eventType4Id) && empty($eventType4Id))) {
            unset($this->EventType4Id);
        } else {
            $this->EventType4Id = $eventType4Id;
        }
        return $this;
    }
    /**
     * Get EventType5Id value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfguid|null
     */
    public function getEventType5Id()
    {
        return isset($this->EventType5Id) ? $this->EventType5Id : null;
    }
    /**
     * Set EventType5Id value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $eventType5Id
     * @return \patest\StructType\EventAndTicketCommonCriteria
     */
    public function setEventType5Id(\patest\StructType\SinglePropertyCriteriaOfguid $eventType5Id = null)
    {
        if (is_null($eventType5Id) || (is_array($eventType5Id) && empty($eventType5Id))) {
            unset($this->EventType5Id);
        } else {
            $this->EventType5Id = $eventType5Id;
        }
        return $this;
    }
    /**
     * Get EventTypeId value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfguid|null
     */
    public function getEventTypeId()
    {
        return isset($this->EventTypeId) ? $this->EventTypeId : null;
    }
    /**
     * Set EventTypeId value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $eventTypeId
     * @return \patest\StructType\EventAndTicketCommonCriteria
     */
    public function setEventTypeId(\patest\StructType\SinglePropertyCriteriaOfguid $eventTypeId = null)
    {
        if (is_null($eventTypeId) || (is_array($eventTypeId) && empty($eventTypeId))) {
            unset($this->EventTypeId);
        } else {
            $this->EventTypeId = $eventTypeId;
        }
        return $this;
    }
    /**
     * Get FromActualDateTime value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfdateTime|null
     */
    public function getFromActualDateTime()
    {
        return isset($this->FromActualDateTime) ? $this->FromActualDateTime : null;
    }
    /**
     * Set FromActualDateTime value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfdateTime $fromActualDateTime
     * @return \patest\StructType\EventAndTicketCommonCriteria
     */
    public function setFromActualDateTime(\patest\StructType\SinglePropertyCriteriaOfdateTime $fromActualDateTime = null)
    {
        if (is_null($fromActualDateTime) || (is_array($fromActualDateTime) && empty($fromActualDateTime))) {
            unset($this->FromActualDateTime);
        } else {
            $this->FromActualDateTime = $fromActualDateTime;
        }
        return $this;
    }
    /**
     * Get FromDate value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfdateTime|null
     */
    public function getFromDate()
    {
        return isset($this->FromDate) ? $this->FromDate : null;
    }
    /**
     * Set FromDate value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfdateTime $fromDate
     * @return \patest\StructType\EventAndTicketCommonCriteria
     */
    public function setFromDate(\patest\StructType\SinglePropertyCriteriaOfdateTime $fromDate = null)
    {
        if (is_null($fromDate) || (is_array($fromDate) && empty($fromDate))) {
            unset($this->FromDate);
        } else {
            $this->FromDate = $fromDate;
        }
        return $this;
    }
    /**
     * Get Hall value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfstring|null
     */
    public function getHall()
    {
        return isset($this->Hall) ? $this->Hall : null;
    }
    /**
     * Set Hall value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfstring $hall
     * @return \patest\StructType\EventAndTicketCommonCriteria
     */
    public function setHall(\patest\StructType\SinglePropertyCriteriaOfstring $hall = null)
    {
        if (is_null($hall) || (is_array($hall) && empty($hall))) {
            unset($this->Hall);
        } else {
            $this->Hall = $hall;
        }
        return $this;
    }
    /**
     * Get HallId value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfguid|null
     */
    public function getHallId()
    {
        return isset($this->HallId) ? $this->HallId : null;
    }
    /**
     * Set HallId value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $hallId
     * @return \patest\StructType\EventAndTicketCommonCriteria
     */
    public function setHallId(\patest\StructType\SinglePropertyCriteriaOfguid $hallId = null)
    {
        if (is_null($hallId) || (is_array($hallId) && empty($hallId))) {
            unset($this->HallId);
        } else {
            $this->HallId = $hallId;
        }
        return $this;
    }
    /**
     * Get ShowId value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfguid|null
     */
    public function getShowId()
    {
        return isset($this->ShowId) ? $this->ShowId : null;
    }
    /**
     * Set ShowId value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $showId
     * @return \patest\StructType\EventAndTicketCommonCriteria
     */
    public function setShowId(\patest\StructType\SinglePropertyCriteriaOfguid $showId = null)
    {
        if (is_null($showId) || (is_array($showId) && empty($showId))) {
            unset($this->ShowId);
        } else {
            $this->ShowId = $showId;
        }
        return $this;
    }
    /**
     * Get ShowName value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfstring|null
     */
    public function getShowName()
    {
        return isset($this->ShowName) ? $this->ShowName : null;
    }
    /**
     * Set ShowName value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfstring $showName
     * @return \patest\StructType\EventAndTicketCommonCriteria
     */
    public function setShowName(\patest\StructType\SinglePropertyCriteriaOfstring $showName = null)
    {
        if (is_null($showName) || (is_array($showName) && empty($showName))) {
            unset($this->ShowName);
        } else {
            $this->ShowName = $showName;
        }
        return $this;
    }
    /**
     * Get UntilActualDateTime value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfdateTime|null
     */
    public function getUntilActualDateTime()
    {
        return isset($this->UntilActualDateTime) ? $this->UntilActualDateTime : null;
    }
    /**
     * Set UntilActualDateTime value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfdateTime $untilActualDateTime
     * @return \patest\StructType\EventAndTicketCommonCriteria
     */
    public function setUntilActualDateTime(\patest\StructType\SinglePropertyCriteriaOfdateTime $untilActualDateTime = null)
    {
        if (is_null($untilActualDateTime) || (is_array($untilActualDateTime) && empty($untilActualDateTime))) {
            unset($this->UntilActualDateTime);
        } else {
            $this->UntilActualDateTime = $untilActualDateTime;
        }
        return $this;
    }
    /**
     * Get UntilDate value
     * An additional test has been added (isset) before returning the property value as
     * this property may have been unset before, due to the fact that this property is
     * removable from the request (nillable=true+minOccurs=0)
     * @return \patest\StructType\SinglePropertyCriteriaOfdateTime|null
     */
    public function getUntilDate()
    {
        return isset($this->UntilDate) ? $this->UntilDate : null;
    }
    /**
     * Set UntilDate value
     * This property is removable from request (nillable=true+minOccurs=0), therefore
     * if the value assigned to this property is null, it is removed from this object
     * @param \patest\StructType\SinglePropertyCriteriaOfdateTime $untilDate
     * @return \patest\StructType\EventAndTicketCommonCriteria
     */
    public function setUntilDate(\patest\StructType\SinglePropertyCriteriaOfdateTime $untilDate = null)
    {
        if (is_null($untilDate) || (is_array($untilDate) && empty($untilDate))) {
            unset($this->UntilDate);
        } else {
            $this->UntilDate = $untilDate;
        }
        return $this;
    }
}
