<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for GetEventTickets-Response StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:GetEventTickets-Response
 * @subpackage Structs
 */
class GetEventTickets_Response extends AbstractStructBase
{
    /**
     * The ClientTypeNamesForQueryingClient
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\ArrayType\ArrayOfstring
     */
    public $ClientTypeNamesForQueryingClient;
    /**
     * The EventLevelImageConfigurations
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\ArrayType\ArrayOfKeyValueOfguidTicketViewEventConfigurationhpjoQDea
     */
    public $EventLevelImageConfigurations;
    /**
     * The EventTicketsAndConfigurations
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\ArrayType\ArrayOfEventTicketAndConfiguration
     */
    public $EventTicketsAndConfigurations;
    /**
     * The TicketBackNotesById
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\ArrayType\ArrayOfKeyValueOfguidArrayOfAdditionalTicketBackNotehpjoQDea
     */
    public $TicketBackNotesById;
    /**
     * Constructor method for GetEventTickets-Response
     * @uses GetEventTickets_Response::setClientTypeNamesForQueryingClient()
     * @uses GetEventTickets_Response::setEventLevelImageConfigurations()
     * @uses GetEventTickets_Response::setEventTicketsAndConfigurations()
     * @uses GetEventTickets_Response::setTicketBackNotesById()
     * @param \patest\ArrayType\ArrayOfstring $clientTypeNamesForQueryingClient
     * @param \patest\ArrayType\ArrayOfKeyValueOfguidTicketViewEventConfigurationhpjoQDea $eventLevelImageConfigurations
     * @param \patest\ArrayType\ArrayOfEventTicketAndConfiguration $eventTicketsAndConfigurations
     * @param \patest\ArrayType\ArrayOfKeyValueOfguidArrayOfAdditionalTicketBackNotehpjoQDea $ticketBackNotesById
     */
    public function __construct(\patest\ArrayType\ArrayOfstring $clientTypeNamesForQueryingClient = null, \patest\ArrayType\ArrayOfKeyValueOfguidTicketViewEventConfigurationhpjoQDea $eventLevelImageConfigurations = null, \patest\ArrayType\ArrayOfEventTicketAndConfiguration $eventTicketsAndConfigurations = null, \patest\ArrayType\ArrayOfKeyValueOfguidArrayOfAdditionalTicketBackNotehpjoQDea $ticketBackNotesById = null)
    {
        $this
            ->setClientTypeNamesForQueryingClient($clientTypeNamesForQueryingClient)
            ->setEventLevelImageConfigurations($eventLevelImageConfigurations)
            ->setEventTicketsAndConfigurations($eventTicketsAndConfigurations)
            ->setTicketBackNotesById($ticketBackNotesById);
    }
    /**
     * Get ClientTypeNamesForQueryingClient 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\ArrayType\ArrayOfstring|null
     */
    public function getClientTypeNamesForQueryingClient()
    {
        return isset($this->ClientTypeNamesForQueryingClient) ? $this->ClientTypeNamesForQueryingClient : null;
    }
    /**
     * Set ClientTypeNamesForQueryingClient 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\ArrayType\ArrayOfstring $clientTypeNamesForQueryingClient
     * @return \patest\StructType\GetEventTickets_Response
     */
    public function setClientTypeNamesForQueryingClient(\patest\ArrayType\ArrayOfstring $clientTypeNamesForQueryingClient = null)
    {
        if (is_null($clientTypeNamesForQueryingClient) || (is_array($clientTypeNamesForQueryingClient) && empty($clientTypeNamesForQueryingClient))) {
            unset($this->ClientTypeNamesForQueryingClient);
        } else {
            $this->ClientTypeNamesForQueryingClient = $clientTypeNamesForQueryingClient;
        }
        return $this;
    }
    /**
     * Get EventLevelImageConfigurations 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\ArrayType\ArrayOfKeyValueOfguidTicketViewEventConfigurationhpjoQDea|null
     */
    public function getEventLevelImageConfigurations()
    {
        return isset($this->EventLevelImageConfigurations) ? $this->EventLevelImageConfigurations : null;
    }
    /**
     * Set EventLevelImageConfigurations 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\ArrayType\ArrayOfKeyValueOfguidTicketViewEventConfigurationhpjoQDea $eventLevelImageConfigurations
     * @return \patest\StructType\GetEventTickets_Response
     */
    public function setEventLevelImageConfigurations(\patest\ArrayType\ArrayOfKeyValueOfguidTicketViewEventConfigurationhpjoQDea $eventLevelImageConfigurations = null)
    {
        if (is_null($eventLevelImageConfigurations) || (is_array($eventLevelImageConfigurations) && empty($eventLevelImageConfigurations))) {
            unset($this->EventLevelImageConfigurations);
        } else {
            $this->EventLevelImageConfigurations = $eventLevelImageConfigurations;
        }
        return $this;
    }
    /**
     * Get EventTicketsAndConfigurations 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\ArrayType\ArrayOfEventTicketAndConfiguration|null
     */
    public function getEventTicketsAndConfigurations()
    {
        return isset($this->EventTicketsAndConfigurations) ? $this->EventTicketsAndConfigurations : null;
    }
    /**
     * Set EventTicketsAndConfigurations 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\ArrayType\ArrayOfEventTicketAndConfiguration $eventTicketsAndConfigurations
     * @return \patest\StructType\GetEventTickets_Response
     */
    public function setEventTicketsAndConfigurations(\patest\ArrayType\ArrayOfEventTicketAndConfiguration $eventTicketsAndConfigurations = null)
    {
        if (is_null($eventTicketsAndConfigurations) || (is_array($eventTicketsAndConfigurations) && empty($eventTicketsAndConfigurations))) {
            unset($this->EventTicketsAndConfigurations);
        } else {
            $this->EventTicketsAndConfigurations = $eventTicketsAndConfigurations;
        }
        return $this;
    }
    /**
     * Get TicketBackNotesById 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\ArrayType\ArrayOfKeyValueOfguidArrayOfAdditionalTicketBackNotehpjoQDea|null
     */
    public function getTicketBackNotesById()
    {
        return isset($this->TicketBackNotesById) ? $this->TicketBackNotesById : null;
    }
    /**
     * Set TicketBackNotesById 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\ArrayType\ArrayOfKeyValueOfguidArrayOfAdditionalTicketBackNotehpjoQDea $ticketBackNotesById
     * @return \patest\StructType\GetEventTickets_Response
     */
    public function setTicketBackNotesById(\patest\ArrayType\ArrayOfKeyValueOfguidArrayOfAdditionalTicketBackNotehpjoQDea $ticketBackNotesById = null)
    {
        if (is_null($ticketBackNotesById) || (is_array($ticketBackNotesById) && empty($ticketBackNotesById))) {
            unset($this->TicketBackNotesById);
        } else {
            $this->TicketBackNotesById = $ticketBackNotesById;
        }
        return $this;
    }
}
