<?php

namespace GlsApi\Struct;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for cParcelShop2 Struct
 * @subpackage Structs
 */
class CParcelShop2 extends AbstractStructBase
{
    /**
     * The id
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $id;
    /**
     * The name1
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $name1;
    /**
     * The name2
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $name2;
    /**
     * The name3
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $name3;
    /**
     * The country
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $country;
    /**
     * The zipcode
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $zipcode;
    /**
     * The city
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $city;
    /**
     * The street
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $street;
    /**
     * The phone
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $phone;
    /**
     * The email
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var string
     */
    public $email;
    /**
     * The gps_lati
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var float
     */
    public $gps_lati;
    /**
     * The gps_long
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var float
     */
    public $gps_long;
    /**
     * The opening
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \GlsApi\Array\CParcelShop2OpeningHoursArray
     */
    public $opening;
    /**
     * The holidays
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \GlsApi\Array\CParcelShop2HolidaysArray
     */
    public $holidays;
    /**
     * The payments
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \GlsApi\Array\CParcelShop2PaymentsArray
     */
    public $payments;
    /**
     * The groups
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \GlsApi\Array\CParcelShop2GroupsArray
     */
    public $groups;
    /**
     * The services
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \GlsApi\Array\CParcelShop2ServicesArray
     */
    public $services;
    /**
     * The validity
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \GlsApi\Array\CParcelShop2ValidsArray
     */
    public $validity;
    /**
     * The desc
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \GlsApi\Array\CParcelShop2DescArray
     */
    public $desc;
    /**
     * The info
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var \GlsApi\Array\CParcelShop2InfoArray
     */
    public $info;
    /**
     * Constructor method for cParcelShop2
     * @uses CParcelShop2::setId()
     * @uses CParcelShop2::setName1()
     * @uses CParcelShop2::setName2()
     * @uses CParcelShop2::setName3()
     * @uses CParcelShop2::setCountry()
     * @uses CParcelShop2::setZipcode()
     * @uses CParcelShop2::setCity()
     * @uses CParcelShop2::setStreet()
     * @uses CParcelShop2::setPhone()
     * @uses CParcelShop2::setEmail()
     * @uses CParcelShop2::setGps_lati()
     * @uses CParcelShop2::setGps_long()
     * @uses CParcelShop2::setOpening()
     * @uses CParcelShop2::setHolidays()
     * @uses CParcelShop2::setPayments()
     * @uses CParcelShop2::setGroups()
     * @uses CParcelShop2::setServices()
     * @uses CParcelShop2::setValidity()
     * @uses CParcelShop2::setDesc()
     * @uses CParcelShop2::setInfo()
     * @param string $id
     * @param string $name1
     * @param string $name2
     * @param string $name3
     * @param string $country
     * @param string $zipcode
     * @param string $city
     * @param string $street
     * @param string $phone
     * @param string $email
     * @param float $gps_lati
     * @param float $gps_long
     * @param \GlsApi\Array\CParcelShop2OpeningHoursArray $opening
     * @param \GlsApi\Array\CParcelShop2HolidaysArray $holidays
     * @param \GlsApi\Array\CParcelShop2PaymentsArray $payments
     * @param \GlsApi\Array\CParcelShop2GroupsArray $groups
     * @param \GlsApi\Array\CParcelShop2ServicesArray $services
     * @param \GlsApi\Array\CParcelShop2ValidsArray $validity
     * @param \GlsApi\Array\CParcelShop2DescArray $desc
     * @param \GlsApi\Array\CParcelShop2InfoArray $info
     */
    public function __construct($id = null, $name1 = null, $name2 = null, $name3 = null, $country = null, $zipcode = null, $city = null, $street = null, $phone = null, $email = null, $gps_lati = null, $gps_long = null, \GlsApi\Array\CParcelShop2OpeningHoursArray $opening = null, \GlsApi\Array\CParcelShop2HolidaysArray $holidays = null, \GlsApi\Array\CParcelShop2PaymentsArray $payments = null, \GlsApi\Array\CParcelShop2GroupsArray $groups = null, \GlsApi\Array\CParcelShop2ServicesArray $services = null, \GlsApi\Array\CParcelShop2ValidsArray $validity = null, \GlsApi\Array\CParcelShop2DescArray $desc = null, \GlsApi\Array\CParcelShop2InfoArray $info = null)
    {
        $this
            ->setId($id)
            ->setName1($name1)
            ->setName2($name2)
            ->setName3($name3)
            ->setCountry($country)
            ->setZipcode($zipcode)
            ->setCity($city)
            ->setStreet($street)
            ->setPhone($phone)
            ->setEmail($email)
            ->setGps_lati($gps_lati)
            ->setGps_long($gps_long)
            ->setOpening($opening)
            ->setHolidays($holidays)
            ->setPayments($payments)
            ->setGroups($groups)
            ->setServices($services)
            ->setValidity($validity)
            ->setDesc($desc)
            ->setInfo($info);
    }
    /**
     * Get id value
     * @return string
     */
    public function getId()
    {
        return $this->id;
    }
    /**
     * Set id value
     * @param string $id
     * @return \GlsApi\Struct\CParcelShop2
     */
    public function setId($id = null)
    {
        // validation for constraint: string
        if (!is_null($id) && !is_string($id)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($id, true), gettype($id)), __LINE__);
        }
        $this->id = $id;
        return $this;
    }
    /**
     * Get name1 value
     * @return string|null
     */
    public function getName1()
    {
        return $this->name1;
    }
    /**
     * Set name1 value
     * @param string $name1
     * @return \GlsApi\Struct\CParcelShop2
     */
    public function setName1($name1 = null)
    {
        // validation for constraint: string
        if (!is_null($name1) && !is_string($name1)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($name1, true), gettype($name1)), __LINE__);
        }
        $this->name1 = $name1;
        return $this;
    }
    /**
     * Get name2 value
     * @return string|null
     */
    public function getName2()
    {
        return $this->name2;
    }
    /**
     * Set name2 value
     * @param string $name2
     * @return \GlsApi\Struct\CParcelShop2
     */
    public function setName2($name2 = null)
    {
        // validation for constraint: string
        if (!is_null($name2) && !is_string($name2)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($name2, true), gettype($name2)), __LINE__);
        }
        $this->name2 = $name2;
        return $this;
    }
    /**
     * Get name3 value
     * @return string|null
     */
    public function getName3()
    {
        return $this->name3;
    }
    /**
     * Set name3 value
     * @param string $name3
     * @return \GlsApi\Struct\CParcelShop2
     */
    public function setName3($name3 = null)
    {
        // validation for constraint: string
        if (!is_null($name3) && !is_string($name3)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($name3, true), gettype($name3)), __LINE__);
        }
        $this->name3 = $name3;
        return $this;
    }
    /**
     * Get country value
     * @return string|null
     */
    public function getCountry()
    {
        return $this->country;
    }
    /**
     * Set country value
     * @param string $country
     * @return \GlsApi\Struct\CParcelShop2
     */
    public function setCountry($country = null)
    {
        // validation for constraint: string
        if (!is_null($country) && !is_string($country)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($country, true), gettype($country)), __LINE__);
        }
        $this->country = $country;
        return $this;
    }
    /**
     * Get zipcode value
     * @return string|null
     */
    public function getZipcode()
    {
        return $this->zipcode;
    }
    /**
     * Set zipcode value
     * @param string $zipcode
     * @return \GlsApi\Struct\CParcelShop2
     */
    public function setZipcode($zipcode = null)
    {
        // validation for constraint: string
        if (!is_null($zipcode) && !is_string($zipcode)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($zipcode, true), gettype($zipcode)), __LINE__);
        }
        $this->zipcode = $zipcode;
        return $this;
    }
    /**
     * Get city value
     * @return string|null
     */
    public function getCity()
    {
        return $this->city;
    }
    /**
     * Set city value
     * @param string $city
     * @return \GlsApi\Struct\CParcelShop2
     */
    public function setCity($city = null)
    {
        // validation for constraint: string
        if (!is_null($city) && !is_string($city)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($city, true), gettype($city)), __LINE__);
        }
        $this->city = $city;
        return $this;
    }
    /**
     * Get street value
     * @return string|null
     */
    public function getStreet()
    {
        return $this->street;
    }
    /**
     * Set street value
     * @param string $street
     * @return \GlsApi\Struct\CParcelShop2
     */
    public function setStreet($street = null)
    {
        // validation for constraint: string
        if (!is_null($street) && !is_string($street)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($street, true), gettype($street)), __LINE__);
        }
        $this->street = $street;
        return $this;
    }
    /**
     * Get phone value
     * @return string|null
     */
    public function getPhone()
    {
        return $this->phone;
    }
    /**
     * Set phone value
     * @param string $phone
     * @return \GlsApi\Struct\CParcelShop2
     */
    public function setPhone($phone = null)
    {
        // validation for constraint: string
        if (!is_null($phone) && !is_string($phone)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($phone, true), gettype($phone)), __LINE__);
        }
        $this->phone = $phone;
        return $this;
    }
    /**
     * Get email value
     * @return string|null
     */
    public function getEmail()
    {
        return $this->email;
    }
    /**
     * Set email value
     * @param string $email
     * @return \GlsApi\Struct\CParcelShop2
     */
    public function setEmail($email = null)
    {
        // validation for constraint: string
        if (!is_null($email) && !is_string($email)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($email, true), gettype($email)), __LINE__);
        }
        $this->email = $email;
        return $this;
    }
    /**
     * Get gps_lati value
     * @return float|null
     */
    public function getGps_lati()
    {
        return $this->gps_lati;
    }
    /**
     * Set gps_lati value
     * @param float $gps_lati
     * @return \GlsApi\Struct\CParcelShop2
     */
    public function setGps_lati($gps_lati = null)
    {
        // validation for constraint: float
        if (!is_null($gps_lati) && !(is_float($gps_lati) || is_numeric($gps_lati))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($gps_lati, true), gettype($gps_lati)), __LINE__);
        }
        $this->gps_lati = $gps_lati;
        return $this;
    }
    /**
     * Get gps_long value
     * @return float|null
     */
    public function getGps_long()
    {
        return $this->gps_long;
    }
    /**
     * Set gps_long value
     * @param float $gps_long
     * @return \GlsApi\Struct\CParcelShop2
     */
    public function setGps_long($gps_long = null)
    {
        // validation for constraint: float
        if (!is_null($gps_long) && !(is_float($gps_long) || is_numeric($gps_long))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($gps_long, true), gettype($gps_long)), __LINE__);
        }
        $this->gps_long = $gps_long;
        return $this;
    }
    /**
     * Get opening value
     * @return \GlsApi\Array\CParcelShop2OpeningHoursArray|null
     */
    public function getOpening()
    {
        return $this->opening;
    }
    /**
     * Set opening value
     * @param \GlsApi\Array\CParcelShop2OpeningHoursArray $opening
     * @return \GlsApi\Struct\CParcelShop2
     */
    public function setOpening(\GlsApi\Array\CParcelShop2OpeningHoursArray $opening = null)
    {
        $this->opening = $opening;
        return $this;
    }
    /**
     * Get holidays value
     * @return \GlsApi\Array\CParcelShop2HolidaysArray|null
     */
    public function getHolidays()
    {
        return $this->holidays;
    }
    /**
     * Set holidays value
     * @param \GlsApi\Array\CParcelShop2HolidaysArray $holidays
     * @return \GlsApi\Struct\CParcelShop2
     */
    public function setHolidays(\GlsApi\Array\CParcelShop2HolidaysArray $holidays = null)
    {
        $this->holidays = $holidays;
        return $this;
    }
    /**
     * Get payments value
     * @return \GlsApi\Array\CParcelShop2PaymentsArray|null
     */
    public function getPayments()
    {
        return $this->payments;
    }
    /**
     * Set payments value
     * @param \GlsApi\Array\CParcelShop2PaymentsArray $payments
     * @return \GlsApi\Struct\CParcelShop2
     */
    public function setPayments(\GlsApi\Array\CParcelShop2PaymentsArray $payments = null)
    {
        $this->payments = $payments;
        return $this;
    }
    /**
     * Get groups value
     * @return \GlsApi\Array\CParcelShop2GroupsArray|null
     */
    public function getGroups()
    {
        return $this->groups;
    }
    /**
     * Set groups value
     * @param \GlsApi\Array\CParcelShop2GroupsArray $groups
     * @return \GlsApi\Struct\CParcelShop2
     */
    public function setGroups(\GlsApi\Array\CParcelShop2GroupsArray $groups = null)
    {
        $this->groups = $groups;
        return $this;
    }
    /**
     * Get services value
     * @return \GlsApi\Array\CParcelShop2ServicesArray|null
     */
    public function getServices()
    {
        return $this->services;
    }
    /**
     * Set services value
     * @param \GlsApi\Array\CParcelShop2ServicesArray $services
     * @return \GlsApi\Struct\CParcelShop2
     */
    public function setServices(\GlsApi\Array\CParcelShop2ServicesArray $services = null)
    {
        $this->services = $services;
        return $this;
    }
    /**
     * Get validity value
     * @return \GlsApi\Array\CParcelShop2ValidsArray|null
     */
    public function getValidity()
    {
        return $this->validity;
    }
    /**
     * Set validity value
     * @param \GlsApi\Array\CParcelShop2ValidsArray $validity
     * @return \GlsApi\Struct\CParcelShop2
     */
    public function setValidity(\GlsApi\Array\CParcelShop2ValidsArray $validity = null)
    {
        $this->validity = $validity;
        return $this;
    }
    /**
     * Get desc value
     * @return \GlsApi\Array\CParcelShop2DescArray|null
     */
    public function getDesc()
    {
        return $this->desc;
    }
    /**
     * Set desc value
     * @param \GlsApi\Array\CParcelShop2DescArray $desc
     * @return \GlsApi\Struct\CParcelShop2
     */
    public function setDesc(\GlsApi\Array\CParcelShop2DescArray $desc = null)
    {
        $this->desc = $desc;
        return $this;
    }
    /**
     * Get info value
     * @return \GlsApi\Array\CParcelShop2InfoArray|null
     */
    public function getInfo()
    {
        return $this->info;
    }
    /**
     * Set info value
     * @param \GlsApi\Array\CParcelShop2InfoArray $info
     * @return \GlsApi\Struct\CParcelShop2
     */
    public function setInfo(\GlsApi\Array\CParcelShop2InfoArray $info = null)
    {
        $this->info = $info;
        return $this;
    }
}
