<?php

namespace patest\StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for SubscriptionCriteria StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:SubscriptionCriteria
 * @subpackage Structs
 */
class SubscriptionCriteria extends AbstractCriteria
{
    /**
     * 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 ClientId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $ClientId;
    /**
     * The HallId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $HallId;
    /**
     * The PrepaidOnly
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfboolean
     */
    public $PrepaidOnly;
    /**
     * 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 RenewedOnly
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfboolean
     */
    public $RenewedOnly;
    /**
     * The RowName
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfstring
     */
    public $RowName;
    /**
     * The SeasonId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $SeasonId;
    /**
     * 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 SeriesId
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfguid
     */
    public $SeriesId;
    /**
     * The SubscriptionNumber
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfstring
     */
    public $SubscriptionNumber;
    /**
     * The UnprintedOnly
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \patest\StructType\SinglePropertyCriteriaOfboolean
     */
    public $UnprintedOnly;
    /**
     * Constructor method for SubscriptionCriteria
     * @uses SubscriptionCriteria::setAreaId()
     * @uses SubscriptionCriteria::setAreaIds()
     * @uses SubscriptionCriteria::setClientId()
     * @uses SubscriptionCriteria::setHallId()
     * @uses SubscriptionCriteria::setPrepaidOnly()
     * @uses SubscriptionCriteria::setPriceLevelId()
     * @uses SubscriptionCriteria::setPrintStatus()
     * @uses SubscriptionCriteria::setRenewedOnly()
     * @uses SubscriptionCriteria::setRowName()
     * @uses SubscriptionCriteria::setSeasonId()
     * @uses SubscriptionCriteria::setSeatName()
     * @uses SubscriptionCriteria::setSectorId()
     * @uses SubscriptionCriteria::setSeriesId()
     * @uses SubscriptionCriteria::setSubscriptionNumber()
     * @uses SubscriptionCriteria::setUnprintedOnly()
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $areaId
     * @param \patest\StructType\SinglePropertyCriteriaOfstring $areaIds
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $clientId
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $hallId
     * @param \patest\StructType\SinglePropertyCriteriaOfboolean $prepaidOnly
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $priceLevelId
     * @param \patest\StructType\SinglePropertyCriteriaOfPrintStatus8Q8HnG_P7 $printStatus
     * @param \patest\StructType\SinglePropertyCriteriaOfboolean $renewedOnly
     * @param \patest\StructType\SinglePropertyCriteriaOfstring $rowName
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $seasonId
     * @param \patest\StructType\SinglePropertyCriteriaOfstring $seatName
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $sectorId
     * @param \patest\StructType\SinglePropertyCriteriaOfguid $seriesId
     * @param \patest\StructType\SinglePropertyCriteriaOfstring $subscriptionNumber
     * @param \patest\StructType\SinglePropertyCriteriaOfboolean $unprintedOnly
     */
    public function __construct(\patest\StructType\SinglePropertyCriteriaOfguid $areaId = null, \patest\StructType\SinglePropertyCriteriaOfstring $areaIds = null, \patest\StructType\SinglePropertyCriteriaOfguid $clientId = null, \patest\StructType\SinglePropertyCriteriaOfguid $hallId = null, \patest\StructType\SinglePropertyCriteriaOfboolean $prepaidOnly = null, \patest\StructType\SinglePropertyCriteriaOfguid $priceLevelId = null, \patest\StructType\SinglePropertyCriteriaOfPrintStatus8Q8HnG_P7 $printStatus = null, \patest\StructType\SinglePropertyCriteriaOfboolean $renewedOnly = null, \patest\StructType\SinglePropertyCriteriaOfstring $rowName = null, \patest\StructType\SinglePropertyCriteriaOfguid $seasonId = null, \patest\StructType\SinglePropertyCriteriaOfstring $seatName = null, \patest\StructType\SinglePropertyCriteriaOfguid $sectorId = null, \patest\StructType\SinglePropertyCriteriaOfguid $seriesId = null, \patest\StructType\SinglePropertyCriteriaOfstring $subscriptionNumber = null, \patest\StructType\SinglePropertyCriteriaOfboolean $unprintedOnly = null)
    {
        $this
            ->setAreaId($areaId)
            ->setAreaIds($areaIds)
            ->setClientId($clientId)
            ->setHallId($hallId)
            ->setPrepaidOnly($prepaidOnly)
            ->setPriceLevelId($priceLevelId)
            ->setPrintStatus($printStatus)
            ->setRenewedOnly($renewedOnly)
            ->setRowName($rowName)
            ->setSeasonId($seasonId)
            ->setSeatName($seatName)
            ->setSectorId($sectorId)
            ->setSeriesId($seriesId)
            ->setSubscriptionNumber($subscriptionNumber)
            ->setUnprintedOnly($unprintedOnly);
    }
    /**
     * 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\SubscriptionCriteria
     */
    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\SubscriptionCriteria
     */
    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 ClientId 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 getClientId()
    {
        return isset($this->ClientId) ? $this->ClientId : null;
    }
    /**
     * Set ClientId 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 $clientId
     * @return \patest\StructType\SubscriptionCriteria
     */
    public function setClientId(\patest\StructType\SinglePropertyCriteriaOfguid $clientId = null)
    {
        if (is_null($clientId) || (is_array($clientId) && empty($clientId))) {
            unset($this->ClientId);
        } else {
            $this->ClientId = $clientId;
        }
        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\SubscriptionCriteria
     */
    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 PrepaidOnly 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 getPrepaidOnly()
    {
        return isset($this->PrepaidOnly) ? $this->PrepaidOnly : null;
    }
    /**
     * Set PrepaidOnly 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 $prepaidOnly
     * @return \patest\StructType\SubscriptionCriteria
     */
    public function setPrepaidOnly(\patest\StructType\SinglePropertyCriteriaOfboolean $prepaidOnly = null)
    {
        if (is_null($prepaidOnly) || (is_array($prepaidOnly) && empty($prepaidOnly))) {
            unset($this->PrepaidOnly);
        } else {
            $this->PrepaidOnly = $prepaidOnly;
        }
        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\SubscriptionCriteria
     */
    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\SubscriptionCriteria
     */
    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 RenewedOnly 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 getRenewedOnly()
    {
        return isset($this->RenewedOnly) ? $this->RenewedOnly : null;
    }
    /**
     * Set RenewedOnly 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 $renewedOnly
     * @return \patest\StructType\SubscriptionCriteria
     */
    public function setRenewedOnly(\patest\StructType\SinglePropertyCriteriaOfboolean $renewedOnly = null)
    {
        if (is_null($renewedOnly) || (is_array($renewedOnly) && empty($renewedOnly))) {
            unset($this->RenewedOnly);
        } else {
            $this->RenewedOnly = $renewedOnly;
        }
        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\SubscriptionCriteria
     */
    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 SeasonId 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 getSeasonId()
    {
        return isset($this->SeasonId) ? $this->SeasonId : null;
    }
    /**
     * Set SeasonId 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 $seasonId
     * @return \patest\StructType\SubscriptionCriteria
     */
    public function setSeasonId(\patest\StructType\SinglePropertyCriteriaOfguid $seasonId = null)
    {
        if (is_null($seasonId) || (is_array($seasonId) && empty($seasonId))) {
            unset($this->SeasonId);
        } else {
            $this->SeasonId = $seasonId;
        }
        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\SubscriptionCriteria
     */
    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\SubscriptionCriteria
     */
    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 SeriesId 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 getSeriesId()
    {
        return isset($this->SeriesId) ? $this->SeriesId : null;
    }
    /**
     * Set SeriesId 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 $seriesId
     * @return \patest\StructType\SubscriptionCriteria
     */
    public function setSeriesId(\patest\StructType\SinglePropertyCriteriaOfguid $seriesId = null)
    {
        if (is_null($seriesId) || (is_array($seriesId) && empty($seriesId))) {
            unset($this->SeriesId);
        } else {
            $this->SeriesId = $seriesId;
        }
        return $this;
    }
    /**
     * Get SubscriptionNumber 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 getSubscriptionNumber()
    {
        return isset($this->SubscriptionNumber) ? $this->SubscriptionNumber : null;
    }
    /**
     * Set SubscriptionNumber 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 $subscriptionNumber
     * @return \patest\StructType\SubscriptionCriteria
     */
    public function setSubscriptionNumber(\patest\StructType\SinglePropertyCriteriaOfstring $subscriptionNumber = null)
    {
        if (is_null($subscriptionNumber) || (is_array($subscriptionNumber) && empty($subscriptionNumber))) {
            unset($this->SubscriptionNumber);
        } else {
            $this->SubscriptionNumber = $subscriptionNumber;
        }
        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\SubscriptionCriteria
     */
    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;
    }
}
