<?php

namespace SelectSiparis;

use \WsdlToPhp\PackageBase\AbstractStructBase;

/**
 * This class stands for WebSepetUrun StructType
 * Meta information extracted from the WSDL
 * - nillable: true
 * - type: tns:WebSepetUrun
 * @subpackage Structs
 */
class WebSepetUrun extends AbstractStructBase
{
    /**
     * The Adet
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $Adet;
    /**
     * The Desi
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $Desi;
    /**
     * The Fiyati
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $Fiyati;
    /**
     * The ID
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $ID;
    /**
     * The KDVOrani
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $KDVOrani;
    /**
     * The KDVTutari
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $KDVTutari;
    /**
     * The KargoUcreti
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $KargoUcreti;
    /**
     * The ParaBirimi
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ParaBirimi;
    /**
     * The ParaBirimiDilKodu
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $ParaBirimiDilKodu;
    /**
     * The SepetID
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $SepetID;
    /**
     * The SpotResim
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $SpotResim;
    /**
     * The StokKodu
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $StokKodu;
    /**
     * The UcretsizKargo
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var bool
     */
    public $UcretsizKargo;
    /**
     * The UrunAdi
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * - nillable: true
     * @var string
     */
    public $UrunAdi;
    /**
     * The UrunID
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $UrunID;
    /**
     * The UrunKartiID
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var int
     */
    public $UrunKartiID;
    /**
     * The UrunSepetFiyati
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $UrunSepetFiyati;
    /**
     * The UrunSepetFiyatiKDV
     * Meta information extracted from the WSDL
     * - minOccurs: 0
     * @var float
     */
    public $UrunSepetFiyatiKDV;
    /**
     * Constructor method for WebSepetUrun
     * @uses WebSepetUrun::setAdet()
     * @uses WebSepetUrun::setDesi()
     * @uses WebSepetUrun::setFiyati()
     * @uses WebSepetUrun::setID()
     * @uses WebSepetUrun::setKDVOrani()
     * @uses WebSepetUrun::setKDVTutari()
     * @uses WebSepetUrun::setKargoUcreti()
     * @uses WebSepetUrun::setParaBirimi()
     * @uses WebSepetUrun::setParaBirimiDilKodu()
     * @uses WebSepetUrun::setSepetID()
     * @uses WebSepetUrun::setSpotResim()
     * @uses WebSepetUrun::setStokKodu()
     * @uses WebSepetUrun::setUcretsizKargo()
     * @uses WebSepetUrun::setUrunAdi()
     * @uses WebSepetUrun::setUrunID()
     * @uses WebSepetUrun::setUrunKartiID()
     * @uses WebSepetUrun::setUrunSepetFiyati()
     * @uses WebSepetUrun::setUrunSepetFiyatiKDV()
     * @param float $adet
     * @param float $desi
     * @param float $fiyati
     * @param int $iD
     * @param int $kDVOrani
     * @param float $kDVTutari
     * @param float $kargoUcreti
     * @param string $paraBirimi
     * @param string $paraBirimiDilKodu
     * @param int $sepetID
     * @param string $spotResim
     * @param string $stokKodu
     * @param bool $ucretsizKargo
     * @param string $urunAdi
     * @param int $urunID
     * @param int $urunKartiID
     * @param float $urunSepetFiyati
     * @param float $urunSepetFiyatiKDV
     */
    public function __construct($adet = null, $desi = null, $fiyati = null, $iD = null, $kDVOrani = null, $kDVTutari = null, $kargoUcreti = null, $paraBirimi = null, $paraBirimiDilKodu = null, $sepetID = null, $spotResim = null, $stokKodu = null, $ucretsizKargo = null, $urunAdi = null, $urunID = null, $urunKartiID = null, $urunSepetFiyati = null, $urunSepetFiyatiKDV = null)
    {
        $this
            ->setAdet($adet)
            ->setDesi($desi)
            ->setFiyati($fiyati)
            ->setID($iD)
            ->setKDVOrani($kDVOrani)
            ->setKDVTutari($kDVTutari)
            ->setKargoUcreti($kargoUcreti)
            ->setParaBirimi($paraBirimi)
            ->setParaBirimiDilKodu($paraBirimiDilKodu)
            ->setSepetID($sepetID)
            ->setSpotResim($spotResim)
            ->setStokKodu($stokKodu)
            ->setUcretsizKargo($ucretsizKargo)
            ->setUrunAdi($urunAdi)
            ->setUrunID($urunID)
            ->setUrunKartiID($urunKartiID)
            ->setUrunSepetFiyati($urunSepetFiyati)
            ->setUrunSepetFiyatiKDV($urunSepetFiyatiKDV);
    }
    /**
     * Get Adet value
     * @return float|null
     */
    public function getAdet()
    {
        return $this->Adet;
    }
    /**
     * Set Adet value
     * @param float $adet
     * @return \SelectSiparis\WebSepetUrun
     */
    public function setAdet($adet = null)
    {
        // validation for constraint: float
        if (!is_null($adet) && !(is_float($adet) || is_numeric($adet))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($adet, true), gettype($adet)), __LINE__);
        }
        $this->Adet = $adet;
        return $this;
    }
    /**
     * Get Desi value
     * @return float|null
     */
    public function getDesi()
    {
        return $this->Desi;
    }
    /**
     * Set Desi value
     * @param float $desi
     * @return \SelectSiparis\WebSepetUrun
     */
    public function setDesi($desi = null)
    {
        // validation for constraint: float
        if (!is_null($desi) && !(is_float($desi) || is_numeric($desi))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($desi, true), gettype($desi)), __LINE__);
        }
        $this->Desi = $desi;
        return $this;
    }
    /**
     * Get Fiyati value
     * @return float|null
     */
    public function getFiyati()
    {
        return $this->Fiyati;
    }
    /**
     * Set Fiyati value
     * @param float $fiyati
     * @return \SelectSiparis\WebSepetUrun
     */
    public function setFiyati($fiyati = null)
    {
        // validation for constraint: float
        if (!is_null($fiyati) && !(is_float($fiyati) || is_numeric($fiyati))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($fiyati, true), gettype($fiyati)), __LINE__);
        }
        $this->Fiyati = $fiyati;
        return $this;
    }
    /**
     * Get ID value
     * @return int|null
     */
    public function getID()
    {
        return $this->ID;
    }
    /**
     * Set ID value
     * @param int $iD
     * @return \SelectSiparis\WebSepetUrun
     */
    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 KDVOrani value
     * @return int|null
     */
    public function getKDVOrani()
    {
        return $this->KDVOrani;
    }
    /**
     * Set KDVOrani value
     * @param int $kDVOrani
     * @return \SelectSiparis\WebSepetUrun
     */
    public function setKDVOrani($kDVOrani = null)
    {
        // validation for constraint: int
        if (!is_null($kDVOrani) && !(is_int($kDVOrani) || ctype_digit($kDVOrani))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($kDVOrani, true), gettype($kDVOrani)), __LINE__);
        }
        $this->KDVOrani = $kDVOrani;
        return $this;
    }
    /**
     * Get KDVTutari value
     * @return float|null
     */
    public function getKDVTutari()
    {
        return $this->KDVTutari;
    }
    /**
     * Set KDVTutari value
     * @param float $kDVTutari
     * @return \SelectSiparis\WebSepetUrun
     */
    public function setKDVTutari($kDVTutari = null)
    {
        // validation for constraint: float
        if (!is_null($kDVTutari) && !(is_float($kDVTutari) || is_numeric($kDVTutari))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($kDVTutari, true), gettype($kDVTutari)), __LINE__);
        }
        $this->KDVTutari = $kDVTutari;
        return $this;
    }
    /**
     * Get KargoUcreti value
     * @return float|null
     */
    public function getKargoUcreti()
    {
        return $this->KargoUcreti;
    }
    /**
     * Set KargoUcreti value
     * @param float $kargoUcreti
     * @return \SelectSiparis\WebSepetUrun
     */
    public function setKargoUcreti($kargoUcreti = null)
    {
        // validation for constraint: float
        if (!is_null($kargoUcreti) && !(is_float($kargoUcreti) || is_numeric($kargoUcreti))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($kargoUcreti, true), gettype($kargoUcreti)), __LINE__);
        }
        $this->KargoUcreti = $kargoUcreti;
        return $this;
    }
    /**
     * Get ParaBirimi 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 getParaBirimi()
    {
        return isset($this->ParaBirimi) ? $this->ParaBirimi : null;
    }
    /**
     * Set ParaBirimi 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 $paraBirimi
     * @return \SelectSiparis\WebSepetUrun
     */
    public function setParaBirimi($paraBirimi = null)
    {
        // validation for constraint: string
        if (!is_null($paraBirimi) && !is_string($paraBirimi)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($paraBirimi, true), gettype($paraBirimi)), __LINE__);
        }
        if (is_null($paraBirimi) || (is_array($paraBirimi) && empty($paraBirimi))) {
            unset($this->ParaBirimi);
        } else {
            $this->ParaBirimi = $paraBirimi;
        }
        return $this;
    }
    /**
     * Get ParaBirimiDilKodu 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 getParaBirimiDilKodu()
    {
        return isset($this->ParaBirimiDilKodu) ? $this->ParaBirimiDilKodu : null;
    }
    /**
     * Set ParaBirimiDilKodu 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 $paraBirimiDilKodu
     * @return \SelectSiparis\WebSepetUrun
     */
    public function setParaBirimiDilKodu($paraBirimiDilKodu = null)
    {
        // validation for constraint: string
        if (!is_null($paraBirimiDilKodu) && !is_string($paraBirimiDilKodu)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($paraBirimiDilKodu, true), gettype($paraBirimiDilKodu)), __LINE__);
        }
        if (is_null($paraBirimiDilKodu) || (is_array($paraBirimiDilKodu) && empty($paraBirimiDilKodu))) {
            unset($this->ParaBirimiDilKodu);
        } else {
            $this->ParaBirimiDilKodu = $paraBirimiDilKodu;
        }
        return $this;
    }
    /**
     * Get SepetID value
     * @return int|null
     */
    public function getSepetID()
    {
        return $this->SepetID;
    }
    /**
     * Set SepetID value
     * @param int $sepetID
     * @return \SelectSiparis\WebSepetUrun
     */
    public function setSepetID($sepetID = null)
    {
        // validation for constraint: int
        if (!is_null($sepetID) && !(is_int($sepetID) || ctype_digit($sepetID))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($sepetID, true), gettype($sepetID)), __LINE__);
        }
        $this->SepetID = $sepetID;
        return $this;
    }
    /**
     * Get SpotResim 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 getSpotResim()
    {
        return isset($this->SpotResim) ? $this->SpotResim : null;
    }
    /**
     * Set SpotResim 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 $spotResim
     * @return \SelectSiparis\WebSepetUrun
     */
    public function setSpotResim($spotResim = null)
    {
        // validation for constraint: string
        if (!is_null($spotResim) && !is_string($spotResim)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($spotResim, true), gettype($spotResim)), __LINE__);
        }
        if (is_null($spotResim) || (is_array($spotResim) && empty($spotResim))) {
            unset($this->SpotResim);
        } else {
            $this->SpotResim = $spotResim;
        }
        return $this;
    }
    /**
     * Get StokKodu 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 getStokKodu()
    {
        return isset($this->StokKodu) ? $this->StokKodu : null;
    }
    /**
     * Set StokKodu 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 $stokKodu
     * @return \SelectSiparis\WebSepetUrun
     */
    public function setStokKodu($stokKodu = null)
    {
        // validation for constraint: string
        if (!is_null($stokKodu) && !is_string($stokKodu)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($stokKodu, true), gettype($stokKodu)), __LINE__);
        }
        if (is_null($stokKodu) || (is_array($stokKodu) && empty($stokKodu))) {
            unset($this->StokKodu);
        } else {
            $this->StokKodu = $stokKodu;
        }
        return $this;
    }
    /**
     * Get UcretsizKargo value
     * @return bool|null
     */
    public function getUcretsizKargo()
    {
        return $this->UcretsizKargo;
    }
    /**
     * Set UcretsizKargo value
     * @param bool $ucretsizKargo
     * @return \SelectSiparis\WebSepetUrun
     */
    public function setUcretsizKargo($ucretsizKargo = null)
    {
        // validation for constraint: boolean
        if (!is_null($ucretsizKargo) && !is_bool($ucretsizKargo)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a bool, %s given', var_export($ucretsizKargo, true), gettype($ucretsizKargo)), __LINE__);
        }
        $this->UcretsizKargo = $ucretsizKargo;
        return $this;
    }
    /**
     * Get UrunAdi 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 getUrunAdi()
    {
        return isset($this->UrunAdi) ? $this->UrunAdi : null;
    }
    /**
     * Set UrunAdi 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 $urunAdi
     * @return \SelectSiparis\WebSepetUrun
     */
    public function setUrunAdi($urunAdi = null)
    {
        // validation for constraint: string
        if (!is_null($urunAdi) && !is_string($urunAdi)) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a string, %s given', var_export($urunAdi, true), gettype($urunAdi)), __LINE__);
        }
        if (is_null($urunAdi) || (is_array($urunAdi) && empty($urunAdi))) {
            unset($this->UrunAdi);
        } else {
            $this->UrunAdi = $urunAdi;
        }
        return $this;
    }
    /**
     * Get UrunID value
     * @return int|null
     */
    public function getUrunID()
    {
        return $this->UrunID;
    }
    /**
     * Set UrunID value
     * @param int $urunID
     * @return \SelectSiparis\WebSepetUrun
     */
    public function setUrunID($urunID = null)
    {
        // validation for constraint: int
        if (!is_null($urunID) && !(is_int($urunID) || ctype_digit($urunID))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($urunID, true), gettype($urunID)), __LINE__);
        }
        $this->UrunID = $urunID;
        return $this;
    }
    /**
     * Get UrunKartiID value
     * @return int|null
     */
    public function getUrunKartiID()
    {
        return $this->UrunKartiID;
    }
    /**
     * Set UrunKartiID value
     * @param int $urunKartiID
     * @return \SelectSiparis\WebSepetUrun
     */
    public function setUrunKartiID($urunKartiID = null)
    {
        // validation for constraint: int
        if (!is_null($urunKartiID) && !(is_int($urunKartiID) || ctype_digit($urunKartiID))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide an integer value, %s given', var_export($urunKartiID, true), gettype($urunKartiID)), __LINE__);
        }
        $this->UrunKartiID = $urunKartiID;
        return $this;
    }
    /**
     * Get UrunSepetFiyati value
     * @return float|null
     */
    public function getUrunSepetFiyati()
    {
        return $this->UrunSepetFiyati;
    }
    /**
     * Set UrunSepetFiyati value
     * @param float $urunSepetFiyati
     * @return \SelectSiparis\WebSepetUrun
     */
    public function setUrunSepetFiyati($urunSepetFiyati = null)
    {
        // validation for constraint: float
        if (!is_null($urunSepetFiyati) && !(is_float($urunSepetFiyati) || is_numeric($urunSepetFiyati))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($urunSepetFiyati, true), gettype($urunSepetFiyati)), __LINE__);
        }
        $this->UrunSepetFiyati = $urunSepetFiyati;
        return $this;
    }
    /**
     * Get UrunSepetFiyatiKDV value
     * @return float|null
     */
    public function getUrunSepetFiyatiKDV()
    {
        return $this->UrunSepetFiyatiKDV;
    }
    /**
     * Set UrunSepetFiyatiKDV value
     * @param float $urunSepetFiyatiKDV
     * @return \SelectSiparis\WebSepetUrun
     */
    public function setUrunSepetFiyatiKDV($urunSepetFiyatiKDV = null)
    {
        // validation for constraint: float
        if (!is_null($urunSepetFiyatiKDV) && !(is_float($urunSepetFiyatiKDV) || is_numeric($urunSepetFiyatiKDV))) {
            throw new \InvalidArgumentException(sprintf('Invalid value %s, please provide a float value, %s given', var_export($urunSepetFiyatiKDV, true), gettype($urunSepetFiyatiKDV)), __LINE__);
        }
        $this->UrunSepetFiyatiKDV = $urunSepetFiyatiKDV;
        return $this;
    }
}
