<?php

namespace SelectSiparis;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for WebSepet StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:WebSepet
 * @subpackage Structs
 */
class WebSepet extends AbstractStructBase
{
    /**
     * The ID
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $ID;
    /**
     * The SepetTarihi
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var string
     */
    public $SepetTarihi;
    /**
     * The Urunler
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var \SelectSiparis\ArrayOfWebSepetUrun
     */
    public $Urunler;
    /**
     * The UyeAdi
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UyeAdi;
    /**
     * The UyeID
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $UyeID;
    /**
     * The UyeMail
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UyeMail;
    /**
     * Constructor method for WebSepet
     * @uses WebSepet::setID()
     * @uses WebSepet::setSepetTarihi()
     * @uses WebSepet::setUrunler()
     * @uses WebSepet::setUyeAdi()
     * @uses WebSepet::setUyeID()
     * @uses WebSepet::setUyeMail()
     * @param int $iD
     * @param string $sepetTarihi
     * @param \SelectSiparis\ArrayOfWebSepetUrun $urunler
     * @param string $uyeAdi
     * @param int $uyeID
     * @param string $uyeMail
     */
    public function __construct($iD = null, $sepetTarihi = null, \SelectSiparis\ArrayOfWebSepetUrun $urunler = null, $uyeAdi = null, $uyeID = null, $uyeMail = null)
    {
        $this
            ->setID($iD)
            ->setSepetTarihi($sepetTarihi)
            ->setUrunler($urunler)
            ->setUyeAdi($uyeAdi)
            ->setUyeID($uyeID)
            ->setUyeMail($uyeMail);
    }
    /**
     * Get ID value
     * @return int|null
     */
    public function getID()
    {
        return $this->ID;
    }
    /**
     * Set ID value
     * @param int $iD
     * @return \SelectSiparis\WebSepet
     */
    public function setID($iD = null)
    {
        // validation for constraint: int
        if (!is_null($iD) && !(is_int($iD) || ctype_digit($iD))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($iD, true), gettype($iD)), __LINE__);
        }
        $this->ID = $iD;
        return $this;
    }
    /**
     * Get SepetTarihi value
     * @return string|null
     */
    public function getSepetTarihi()
    {
        return $this->SepetTarihi;
    }
    /**
     * Set SepetTarihi value
     * @param string $sepetTarihi
     * @return \SelectSiparis\WebSepet
     */
    public function setSepetTarihi($sepetTarihi = null)
    {
        // validation for constraint: string
        if (!is_null($sepetTarihi) && !is_string($sepetTarihi)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($sepetTarihi, true), gettype($sepetTarihi)), __LINE__);
        }
        $this->SepetTarihi = $sepetTarihi;
        return $this;
    }
    /**
     * Get Urunler 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 \SelectSiparis\ArrayOfWebSepetUrun|null
     */
    public function getUrunler()
    {
        return isset($this->Urunler) ? $this->Urunler : null;
    }
    /**
     * Set Urunler 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 \SelectSiparis\ArrayOfWebSepetUrun $urunler
     * @return \SelectSiparis\WebSepet
     */
    public function setUrunler(\SelectSiparis\ArrayOfWebSepetUrun $urunler = null)
    {
        if (is_null($urunler) || (is_array($urunler) && empty($urunler))) {
            unset($this->Urunler);
        } else {
            $this->Urunler = $urunler;
        }
        return $this;
    }
    /**
     * Get UyeAdi 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 string|null
     */
    public function getUyeAdi()
    {
        return isset($this->UyeAdi) ? $this->UyeAdi : null;
    }
    /**
     * Set UyeAdi 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 string $uyeAdi
     * @return \SelectSiparis\WebSepet
     */
    public function setUyeAdi($uyeAdi = null)
    {
        // validation for constraint: string
        if (!is_null($uyeAdi) && !is_string($uyeAdi)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($uyeAdi, true), gettype($uyeAdi)), __LINE__);
        }
        if (is_null($uyeAdi) || (is_array($uyeAdi) && empty($uyeAdi))) {
            unset($this->UyeAdi);
        } else {
            $this->UyeAdi = $uyeAdi;
        }
        return $this;
    }
    /**
     * Get UyeID value
     * @return int|null
     */
    public function getUyeID()
    {
        return $this->UyeID;
    }
    /**
     * Set UyeID value
     * @param int $uyeID
     * @return \SelectSiparis\WebSepet
     */
    public function setUyeID($uyeID = null)
    {
        // validation for constraint: int
        if (!is_null($uyeID) && !(is_int($uyeID) || ctype_digit($uyeID))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($uyeID, true), gettype($uyeID)), __LINE__);
        }
        $this->UyeID = $uyeID;
        return $this;
    }
    /**
     * Get UyeMail 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 string|null
     */
    public function getUyeMail()
    {
        return isset($this->UyeMail) ? $this->UyeMail : null;
    }
    /**
     * Set UyeMail 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 string $uyeMail
     * @return \SelectSiparis\WebSepet
     */
    public function setUyeMail($uyeMail = null)
    {
        // validation for constraint: string
        if (!is_null($uyeMail) && !is_string($uyeMail)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($uyeMail, true), gettype($uyeMail)), __LINE__);
        }
        if (is_null($uyeMail) || (is_array($uyeMail) && empty($uyeMail))) {
            unset($this->UyeMail);
        } else {
            $this->UyeMail = $uyeMail;
        }
        return $this;
    }
}
