<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for TicketCriteria StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:TicketCriteria
 * @subpackage Structs
 */
class TicketCriteria extends EventAndTicketCommonCriteria
{
    /**
     * The AreaId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $AreaId;
    /**
     * The AreaIds
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfstring
     */
    public $AreaIds;
    /**
     * The Barcode
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfstring
     */
    public $Barcode;
    /**
     * The ExternalTicketNumber
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfint
     */
    public $ExternalTicketNumber;
    /**
     * The PriceLevelId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $PriceLevelId;
    /**
     * The PrintStatus
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfPrintStatus8Q8HnG_P7
     */
    public $PrintStatus;
    /**
     * The RowName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfstring
     */
    public $RowName;
    /**
     * The SeatName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfstring
     */
    public $SeatName;
    /**
     * The SectorId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $SectorId;
    /**
     * The TicketNumber
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfint
     */
    public $TicketNumber;
    /**
     * The TicketType
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfClientTicketType8Q8HnG_P7
     */
    public $TicketType;
    /**
     * The UnprintedOnly
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfboolean
     */
    public $UnprintedOnly;
    /**
     * The WasScanned
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfboolean
     */
    public $WasScanned;
    /**
     * Constructor method for TicketCriteria
     * @uses TicketCriteria::setAreaId()
     * @uses TicketCriteria::setAreaIds()
     * @uses TicketCriteria::setBarcode()
     * @uses TicketCriteria::setExternalTicketNumber()
     * @uses TicketCriteria::setPriceLevelId()
     * @uses TicketCriteria::setPrintStatus()
     * @uses TicketCriteria::setRowName()
     * @uses TicketCriteria::setSeatName()
     * @uses TicketCriteria::setSectorId()
     * @uses TicketCriteria::setTicketNumber()
     * @uses TicketCriteria::setTicketType()
     * @uses TicketCriteria::setUnprintedOnly()
     * @uses TicketCriteria::setWasScanned()
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $areaId
     * @param \patest\StructType\SinglePropertyCriteriaOfstring $areaIds
     * @param \patest\StructType\SinglePropertyCriteriaOfstring $barcode
     * @param \patest\StructType\SinglePropertyCriteriaOfint $externalTicketNumber
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $priceLevelId
     * @param \patest\StructType\SinglePropertyCriteriaOfPrintStatus8Q8HnG_P7 $printStatus
     * @param \patest\StructType\SinglePropertyCriteriaOfstring $rowName
     * @param \patest\StructType\SinglePropertyCriteriaOfstring $seatName
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $sectorId
     * @param \patest\StructType\SinglePropertyCriteriaOfint $ticketNumber
     * @param \patest\StructType\SinglePropertyCriteriaOfClientTicketType8Q8HnG_P7 $ticketType
     * @param \patest\StructType\SinglePropertyCriteriaOfboolean $unprintedOnly
     * @param \patest\StructType\SinglePropertyCriteriaOfboolean $wasScanned
     */
    public function __construct(\patest\StructType\SinglePropertyCriteriaOfguid $areaId = null, \patest\StructType\SinglePropertyCriteriaOfstring $areaIds = null, \patest\StructType\SinglePropertyCriteriaOfstring $barcode = null, \patest\StructType\SinglePropertyCriteriaOfint $externalTicketNumber = null, \patest\StructType\SinglePropertyCriteriaOfguid $priceLevelId = null, \patest\StructType\SinglePropertyCriteriaOfPrintStatus8Q8HnG_P7 $printStatus = null, \patest\StructType\SinglePropertyCriteriaOfstring $rowName = null, \patest\StructType\SinglePropertyCriteriaOfstring $seatName = null, \patest\StructType\SinglePropertyCriteriaOfguid $sectorId = null, \patest\StructType\SinglePropertyCriteriaOfint $ticketNumber = null, \patest\StructType\SinglePropertyCriteriaOfClientTicketType8Q8HnG_P7 $ticketType = null, \patest\StructType\SinglePropertyCriteriaOfboolean $unprintedOnly = null, \patest\StructType\SinglePropertyCriteriaOfboolean $wasScanned = null)
    {
        $this
            ->setAreaId($areaId)
            ->setAreaIds($areaIds)
            ->setBarcode($barcode)
            ->setExternalTicketNumber($externalTicketNumber)
            ->setPriceLevelId($priceLevelId)
            ->setPrintStatus($printStatus)
            ->setRowName($rowName)
            ->setSeatName($seatName)
            ->setSectorId($sectorId)
            ->setTicketNumber($ticketNumber)
            ->setTicketType($ticketType)
            ->setUnprintedOnly($unprintedOnly)
            ->setWasScanned($wasScanned);
    }
    /**
     * Get AreaId 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 getAreaId()
    {
        return isset($this->AreaId) ? $this->AreaId : null;
    }
    /**
     * Set AreaId 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 $areaId
     * @return \patest\StructType\TicketCriteria
     */
    public function setAreaId(\patest\StructType\SinglePropertyCriteriaOfguid $areaId = null)
    {
        if (is_null($areaId) || (is_array($areaId) && empty($areaId))) {
            unset($this->AreaId);
        } else {
            $this->AreaId = $areaId;
        }
        return $this;
    }
    /**
     * Get AreaIds 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 getAreaIds()
    {
        return isset($this->AreaIds) ? $this->AreaIds : null;
    }
    /**
     * Set AreaIds 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 $areaIds
     * @return \patest\StructType\TicketCriteria
     */
    public function setAreaIds(\patest\StructType\SinglePropertyCriteriaOfstring $areaIds = null)
    {
        if (is_null($areaIds) || (is_array($areaIds) && empty($areaIds))) {
            unset($this->AreaIds);
        } else {
            $this->AreaIds = $areaIds;
        }
        return $this;
    }
    /**
     * Get Barcode 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 getBarcode()
    {
        return isset($this->Barcode) ? $this->Barcode : null;
    }
    /**
     * Set Barcode 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 $barcode
     * @return \patest\StructType\TicketCriteria
     */
    public function setBarcode(\patest\StructType\SinglePropertyCriteriaOfstring $barcode = null)
    {
        if (is_null($barcode) || (is_array($barcode) && empty($barcode))) {
            unset($this->Barcode);
        } else {
            $this->Barcode = $barcode;
        }
        return $this;
    }
    /**
     * Get ExternalTicketNumber 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\SinglePropertyCriteriaOfint|null
     */
    public function getExternalTicketNumber()
    {
        return isset($this->ExternalTicketNumber) ? $this->ExternalTicketNumber : null;
    }
    /**
     * Set ExternalTicketNumber 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\SinglePropertyCriteriaOfint $externalTicketNumber
     * @return \patest\StructType\TicketCriteria
     */
    public function setExternalTicketNumber(\patest\StructType\SinglePropertyCriteriaOfint $externalTicketNumber = null)
    {
        if (is_null($externalTicketNumber) || (is_array($externalTicketNumber) && empty($externalTicketNumber))) {
            unset($this->ExternalTicketNumber);
        } else {
            $this->ExternalTicketNumber = $externalTicketNumber;
        }
        return $this;
    }
    /**
     * Get PriceLevelId 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 getPriceLevelId()
    {
        return isset($this->PriceLevelId) ? $this->PriceLevelId : null;
    }
    /**
     * Set PriceLevelId 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 $priceLevelId
     * @return \patest\StructType\TicketCriteria
     */
    public function setPriceLevelId(\patest\StructType\SinglePropertyCriteriaOfguid $priceLevelId = null)
    {
        if (is_null($priceLevelId) || (is_array($priceLevelId) && empty($priceLevelId))) {
            unset($this->PriceLevelId);
        } else {
            $this->PriceLevelId = $priceLevelId;
        }
        return $this;
    }
    /**
     * Get PrintStatus 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\SinglePropertyCriteriaOfPrintStatus8Q8HnG_P7|null
     */
    public function getPrintStatus()
    {
        return isset($this->PrintStatus) ? $this->PrintStatus : null;
    }
    /**
     * Set PrintStatus 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\SinglePropertyCriteriaOfPrintStatus8Q8HnG_P7 $printStatus
     * @return \patest\StructType\TicketCriteria
     */
    public function setPrintStatus(\patest\StructType\SinglePropertyCriteriaOfPrintStatus8Q8HnG_P7 $printStatus = null)
    {
        if (is_null($printStatus) || (is_array($printStatus) && empty($printStatus))) {
            unset($this->PrintStatus);
        } else {
            $this->PrintStatus = $printStatus;
        }
        return $this;
    }
    /**
     * Get RowName 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 getRowName()
    {
        return isset($this->RowName) ? $this->RowName : null;
    }
    /**
     * Set RowName 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 $rowName
     * @return \patest\StructType\TicketCriteria
     */
    public function setRowName(\patest\StructType\SinglePropertyCriteriaOfstring $rowName = null)
    {
        if (is_null($rowName) || (is_array($rowName) && empty($rowName))) {
            unset($this->RowName);
        } else {
            $this->RowName = $rowName;
        }
        return $this;
    }
    /**
     * Get SeatName 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 getSeatName()
    {
        return isset($this->SeatName) ? $this->SeatName : null;
    }
    /**
     * Set SeatName 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 $seatName
     * @return \patest\StructType\TicketCriteria
     */
    public function setSeatName(\patest\StructType\SinglePropertyCriteriaOfstring $seatName = null)
    {
        if (is_null($seatName) || (is_array($seatName) && empty($seatName))) {
            unset($this->SeatName);
        } else {
            $this->SeatName = $seatName;
        }
        return $this;
    }
    /**
     * Get SectorId 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 getSectorId()
    {
        return isset($this->SectorId) ? $this->SectorId : null;
    }
    /**
     * Set SectorId 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 $sectorId
     * @return \patest\StructType\TicketCriteria
     */
    public function setSectorId(\patest\StructType\SinglePropertyCriteriaOfguid $sectorId = null)
    {
        if (is_null($sectorId) || (is_array($sectorId) && empty($sectorId))) {
            unset($this->SectorId);
        } else {
            $this->SectorId = $sectorId;
        }
        return $this;
    }
    /**
     * Get TicketNumber 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\SinglePropertyCriteriaOfint|null
     */
    public function getTicketNumber()
    {
        return isset($this->TicketNumber) ? $this->TicketNumber : null;
    }
    /**
     * Set TicketNumber 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\SinglePropertyCriteriaOfint $ticketNumber
     * @return \patest\StructType\TicketCriteria
     */
    public function setTicketNumber(\patest\StructType\SinglePropertyCriteriaOfint $ticketNumber = null)
    {
        if (is_null($ticketNumber) || (is_array($ticketNumber) && empty($ticketNumber))) {
            unset($this->TicketNumber);
        } else {
            $this->TicketNumber = $ticketNumber;
        }
        return $this;
    }
    /**
     * Get TicketType 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\SinglePropertyCriteriaOfClientTicketType8Q8HnG_P7|null
     */
    public function getTicketType()
    {
        return isset($this->TicketType) ? $this->TicketType : null;
    }
    /**
     * Set TicketType 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\SinglePropertyCriteriaOfClientTicketType8Q8HnG_P7 $ticketType
     * @return \patest\StructType\TicketCriteria
     */
    public function setTicketType(\patest\StructType\SinglePropertyCriteriaOfClientTicketType8Q8HnG_P7 $ticketType = null)
    {
        if (is_null($ticketType) || (is_array($ticketType) && empty($ticketType))) {
            unset($this->TicketType);
        } else {
            $this->TicketType = $ticketType;
        }
        return $this;
    }
    /**
     * Get UnprintedOnly 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\SinglePropertyCriteriaOfboolean|null
     */
    public function getUnprintedOnly()
    {
        return isset($this->UnprintedOnly) ? $this->UnprintedOnly : null;
    }
    /**
     * Set UnprintedOnly 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\SinglePropertyCriteriaOfboolean $unprintedOnly
     * @return \patest\StructType\TicketCriteria
     */
    public function setUnprintedOnly(\patest\StructType\SinglePropertyCriteriaOfboolean $unprintedOnly = null)
    {
        if (is_null($unprintedOnly) || (is_array($unprintedOnly) && empty($unprintedOnly))) {
            unset($this->UnprintedOnly);
        } else {
            $this->UnprintedOnly = $unprintedOnly;
        }
        return $this;
    }
    /**
     * Get WasScanned 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\SinglePropertyCriteriaOfboolean|null
     */
    public function getWasScanned()
    {
        return isset($this->WasScanned) ? $this->WasScanned : null;
    }
    /**
     * Set WasScanned 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\SinglePropertyCriteriaOfboolean $wasScanned
     * @return \patest\StructType\TicketCriteria
     */
    public function setWasScanned(\patest\StructType\SinglePropertyCriteriaOfboolean $wasScanned = null)
    {
        if (is_null($wasScanned) || (is_array($wasScanned) && empty($wasScanned))) {
            unset($this->WasScanned);
        } else {
            $this->WasScanned = $wasScanned;
        }
        return $this;
    }
}
