<?php

namespace StructType;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for InsertGeoZoneResult StructType
 * @subpackage Structs
 */
class InsertGeoZoneResult extends AbstractStructBase
{
    /**
     * The GeoZoneTNR
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $GeoZoneTNR;
    /**
     * The GeoZoneSeq
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var int
     */
    public $GeoZoneSeq;
    /**
     * The GeoZoneName
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $GeoZoneName;
    /**
     * Constructor method for InsertGeoZoneResult
     * @uses InsertGeoZoneResult::setGeoZoneTNR()
     * @uses InsertGeoZoneResult::setGeoZoneSeq()
     * @uses InsertGeoZoneResult::setGeoZoneName()
     * @param int $geoZoneTNR
     * @param int $geoZoneSeq
     * @param string $geoZoneName
     */
    public function __construct($geoZoneTNR = null, $geoZoneSeq = null, $geoZoneName = null)
    {
        $this
            ->setGeoZoneTNR($geoZoneTNR)
            ->setGeoZoneSeq($geoZoneSeq)
            ->setGeoZoneName($geoZoneName);
    }
    /**
     * Get GeoZoneTNR value
     * @return int
     */
    public function getGeoZoneTNR()
    {
        return $this->GeoZoneTNR;
    }
    /**
     * Set GeoZoneTNR value
     * @param int $geoZoneTNR
     * @return \StructType\InsertGeoZoneResult
     */
    public function setGeoZoneTNR($geoZoneTNR = null)
    {
        // validation for constraint: int
        if (!is_null($geoZoneTNR) && !(is_int($geoZoneTNR) || ctype_digit($geoZoneTNR))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($geoZoneTNR, true), gettype($geoZoneTNR)), __LINE__);
        }
        $this->GeoZoneTNR = $geoZoneTNR;
        return $this;
    }
    /**
     * Get GeoZoneSeq value
     * @return int
     */
    public function getGeoZoneSeq()
    {
        return $this->GeoZoneSeq;
    }
    /**
     * Set GeoZoneSeq value
     * @param int $geoZoneSeq
     * @return \StructType\InsertGeoZoneResult
     */
    public function setGeoZoneSeq($geoZoneSeq = null)
    {
        // validation for constraint: int
        if (!is_null($geoZoneSeq) && !(is_int($geoZoneSeq) || ctype_digit($geoZoneSeq))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($geoZoneSeq, true), gettype($geoZoneSeq)), __LINE__);
        }
        $this->GeoZoneSeq = $geoZoneSeq;
        return $this;
    }
    /**
     * Get GeoZoneName value
     * @return string|null
     */
    public function getGeoZoneName()
    {
        return $this->GeoZoneName;
    }
    /**
     * Set GeoZoneName value
     * @param string $geoZoneName
     * @return \StructType\InsertGeoZoneResult
     */
    public function setGeoZoneName($geoZoneName = null)
    {
        // validation for constraint: string
        if (!is_null($geoZoneName) && !is_string($geoZoneName)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($geoZoneName, true), gettype($geoZoneName)), __LINE__);
        }
        $this->GeoZoneName = $geoZoneName;
        return $this;
    }
}
