<?php
use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for zamowKuriera StructType
 * @subpackage Structs
 */
class ZamowKuriera extends AbstractStructBase
{
    /**
     * The miejsceOdbioru
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var AdresType
     */
    public $miejsceOdbioru;
    /**
     * The oczekiwanaDataOdbioru
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $oczekiwanaDataOdbioru;
    /**
     * The oczekiwanaGodzinaOdbioru
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $oczekiwanaGodzinaOdbioru;
    /**
     * The szacowanaIloscPrzeslek
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $szacowanaIloscPrzeslek;
    /**
     * The szacowanaLacznaMasaPrzesylek
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 1
     * @var string
     */
    public $szacowanaLacznaMasaPrzesylek;
    /**
     * The nadawca
     * Meta information extracted from the WSDL
     * - maxOccurs: 1
     * - minOccurs: 0
     * @var AdresType
     */
    public $nadawca;
    /**
     * The potwierdzenieZamowieniaEmail
     * Meta information extracted from the WSDL
     * - base: xsd:string
     * - maxLength: 50
     * - maxOccurs: 1
     * - minLength: 6
     * - minOccurs: 0
     * @var string
     */
    public $potwierdzenieZamowieniaEmail;
    /**
     * Constructor method for zamowKuriera
     * @uses ZamowKuriera::setMiejsceOdbioru()
     * @uses ZamowKuriera::setOczekiwanaDataOdbioru()
     * @uses ZamowKuriera::setOczekiwanaGodzinaOdbioru()
     * @uses ZamowKuriera::setSzacowanaIloscPrzeslek()
     * @uses ZamowKuriera::setSzacowanaLacznaMasaPrzesylek()
     * @uses ZamowKuriera::setNadawca()
     * @uses ZamowKuriera::setPotwierdzenieZamowieniaEmail()
     * @param AdresType $miejsceOdbioru
     * @param string $oczekiwanaDataOdbioru
     * @param string $oczekiwanaGodzinaOdbioru
     * @param string $szacowanaIloscPrzeslek
     * @param string $szacowanaLacznaMasaPrzesylek
     * @param AdresType $nadawca
     * @param string $potwierdzenieZamowieniaEmail
     */
    public function __construct(AdresType $miejsceOdbioru = null, $oczekiwanaDataOdbioru = null, $oczekiwanaGodzinaOdbioru = null, $szacowanaIloscPrzeslek = null, $szacowanaLacznaMasaPrzesylek = null, AdresType $nadawca = null, $potwierdzenieZamowieniaEmail = null)
    {
        $this
            ->setMiejsceOdbioru($miejsceOdbioru)
            ->setOczekiwanaDataOdbioru($oczekiwanaDataOdbioru)
            ->setOczekiwanaGodzinaOdbioru($oczekiwanaGodzinaOdbioru)
            ->setSzacowanaIloscPrzeslek($szacowanaIloscPrzeslek)
            ->setSzacowanaLacznaMasaPrzesylek($szacowanaLacznaMasaPrzesylek)
            ->setNadawca($nadawca)
            ->setPotwierdzenieZamowieniaEmail($potwierdzenieZamowieniaEmail);
    }
    /**
     * Get miejsceOdbioru value
     * @return AdresType
     */
    public function getMiejsceOdbioru()
    {
        return $this->miejsceOdbioru;
    }
    /**
     * Set miejsceOdbioru value
     * @param AdresType $miejsceOdbioru
     * @return ZamowKuriera
     */
    public function setMiejsceOdbioru(AdresType $miejsceOdbioru = null)
    {
        $this->miejsceOdbioru = $miejsceOdbioru;
        return $this;
    }
    /**
     * Get oczekiwanaDataOdbioru value
     * @return string
     */
    public function getOczekiwanaDataOdbioru()
    {
        return $this->oczekiwanaDataOdbioru;
    }
    /**
     * Set oczekiwanaDataOdbioru value
     * @param string $oczekiwanaDataOdbioru
     * @return ZamowKuriera
     */
    public function setOczekiwanaDataOdbioru($oczekiwanaDataOdbioru = null)
    {
        // validation for constraint: string
        if (!is_null($oczekiwanaDataOdbioru) && !is_string($oczekiwanaDataOdbioru)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($oczekiwanaDataOdbioru, true), gettype($oczekiwanaDataOdbioru)), __LINE__);
        }
        $this->oczekiwanaDataOdbioru = $oczekiwanaDataOdbioru;
        return $this;
    }
    /**
     * Get oczekiwanaGodzinaOdbioru value
     * @return string
     */
    public function getOczekiwanaGodzinaOdbioru()
    {
        return $this->oczekiwanaGodzinaOdbioru;
    }
    /**
     * Set oczekiwanaGodzinaOdbioru value
     * @param string $oczekiwanaGodzinaOdbioru
     * @return ZamowKuriera
     */
    public function setOczekiwanaGodzinaOdbioru($oczekiwanaGodzinaOdbioru = null)
    {
        // validation for constraint: string
        if (!is_null($oczekiwanaGodzinaOdbioru) && !is_string($oczekiwanaGodzinaOdbioru)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($oczekiwanaGodzinaOdbioru, true), gettype($oczekiwanaGodzinaOdbioru)), __LINE__);
        }
        $this->oczekiwanaGodzinaOdbioru = $oczekiwanaGodzinaOdbioru;
        return $this;
    }
    /**
     * Get szacowanaIloscPrzeslek value
     * @return string
     */
    public function getSzacowanaIloscPrzeslek()
    {
        return $this->szacowanaIloscPrzeslek;
    }
    /**
     * Set szacowanaIloscPrzeslek value
     * @param string $szacowanaIloscPrzeslek
     * @return ZamowKuriera
     */
    public function setSzacowanaIloscPrzeslek($szacowanaIloscPrzeslek = null)
    {
        // validation for constraint: string
        if (!is_null($szacowanaIloscPrzeslek) && !is_string($szacowanaIloscPrzeslek)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($szacowanaIloscPrzeslek, true), gettype($szacowanaIloscPrzeslek)), __LINE__);
        }
        $this->szacowanaIloscPrzeslek = $szacowanaIloscPrzeslek;
        return $this;
    }
    /**
     * Get szacowanaLacznaMasaPrzesylek value
     * @return string
     */
    public function getSzacowanaLacznaMasaPrzesylek()
    {
        return $this->szacowanaLacznaMasaPrzesylek;
    }
    /**
     * Set szacowanaLacznaMasaPrzesylek value
     * @param string $szacowanaLacznaMasaPrzesylek
     * @return ZamowKuriera
     */
    public function setSzacowanaLacznaMasaPrzesylek($szacowanaLacznaMasaPrzesylek = null)
    {
        // validation for constraint: string
        if (!is_null($szacowanaLacznaMasaPrzesylek) && !is_string($szacowanaLacznaMasaPrzesylek)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($szacowanaLacznaMasaPrzesylek, true), gettype($szacowanaLacznaMasaPrzesylek)), __LINE__);
        }
        $this->szacowanaLacznaMasaPrzesylek = $szacowanaLacznaMasaPrzesylek;
        return $this;
    }
    /**
     * Get nadawca value
     * @return AdresType|null
     */
    public function getNadawca()
    {
        return $this->nadawca;
    }
    /**
     * Set nadawca value
     * @param AdresType $nadawca
     * @return ZamowKuriera
     */
    public function setNadawca(AdresType $nadawca = null)
    {
        $this->nadawca = $nadawca;
        return $this;
    }
    /**
     * Get potwierdzenieZamowieniaEmail value
     * @return string|null
     */
    public function getPotwierdzenieZamowieniaEmail()
    {
        return $this->potwierdzenieZamowieniaEmail;
    }
    /**
     * Set potwierdzenieZamowieniaEmail value
     * @param string $potwierdzenieZamowieniaEmail
     * @return ZamowKuriera
     */
    public function setPotwierdzenieZamowieniaEmail($potwierdzenieZamowieniaEmail = null)
    {
        // validation for constraint: string
        if (!is_null($potwierdzenieZamowieniaEmail) && !is_string($potwierdzenieZamowieniaEmail)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($potwierdzenieZamowieniaEmail, true), gettype($potwierdzenieZamowieniaEmail)), __LINE__);
        }
        // validation for constraint: maxLength(50)
        if (!is_null($potwierdzenieZamowieniaEmail) && mb_strlen($potwierdzenieZamowieniaEmail) > 50) {
            throw new \InvalidArgumentException(sprintf('Invalid length of %s, the number of characters/octets contained by the literal must be less than or equal to 50', mb_strlen($potwierdzenieZamowieniaEmail)), __LINE__);
        }
        // validation for constraint: minLength(6)
        if (!is_null($potwierdzenieZamowieniaEmail) && mb_strlen($potwierdzenieZamowieniaEmail) < 6) {
            throw new \InvalidArgumentException(sprintf('Invalid length of %s, the number of characters/octets contained by the literal must be greater than or equal to 6', mb_strlen($potwierdzenieZamowieniaEmail)), __LINE__);
        }
        $this->potwierdzenieZamowieniaEmail = $potwierdzenieZamowieniaEmail;
        return $this;
    }
}
