<?php

namespace Proxies\__CG__\App\Entity;

/**
 * DO NOT EDIT THIS FILE - IT WAS CREATED BY DOCTRINE'S PROXY GENERATOR
 */
class TInventoryList extends \App\Entity\TInventoryList implements \Doctrine\ORM\Proxy\Proxy
{
    /**
     * @var \Closure the callback responsible for loading properties in the proxy object. This callback is called with
     *      three parameters, being respectively the proxy object to be initialized, the method that triggered the
     *      initialization process and an array of ordered parameters that were passed to that method.
     *
     * @see \Doctrine\Common\Proxy\Proxy::__setInitializer
     */
    public $__initializer__;

    /**
     * @var \Closure the callback responsible of loading properties that need to be copied in the cloned object
     *
     * @see \Doctrine\Common\Proxy\Proxy::__setCloner
     */
    public $__cloner__;

    /**
     * @var boolean flag indicating if this object was already initialized
     *
     * @see \Doctrine\Persistence\Proxy::__isInitialized
     */
    public $__isInitialized__ = false;

    /**
     * @var array<string, null> properties to be lazy loaded, indexed by property name
     */
    public static $lazyPropertiesNames = array (
);

    /**
     * @var array<string, mixed> default values of properties to be lazy loaded, with keys being the property names
     *
     * @see \Doctrine\Common\Proxy\Proxy::__getLazyProperties
     */
    public static $lazyPropertiesDefaults = array (
);



    public function __construct(?\Closure $initializer = null, ?\Closure $cloner = null)
    {

        $this->__initializer__ = $initializer;
        $this->__cloner__      = $cloner;
    }







    /**
     * 
     * @return array
     */
    public function __sleep()
    {
        if ($this->__isInitialized__) {
            return ['__isInitialized__', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'id', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'itemDescription', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'itemType', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'status', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'location', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'reOrderLevel', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'lastSupId', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'lastClientId', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'lastModifiedBy', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'lastModifiedOn', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'lockPurchasesPrices', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'category', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'tempDetails', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'details', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'quantity', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'lastPurchaseDate', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'lastSaleDate', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'itemMoveCount', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'prices', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'note', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'cost', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'price', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'serialNumber', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'barcode', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'wholesalePrice'];
        }

        return ['__isInitialized__', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'id', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'itemDescription', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'itemType', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'status', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'location', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'reOrderLevel', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'lastSupId', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'lastClientId', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'lastModifiedBy', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'lastModifiedOn', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'lockPurchasesPrices', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'category', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'tempDetails', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'details', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'quantity', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'lastPurchaseDate', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'lastSaleDate', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'itemMoveCount', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'prices', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'note', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'cost', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'price', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'serialNumber', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'barcode', '' . "\0" . 'App\\Entity\\TInventoryList' . "\0" . 'wholesalePrice'];
    }

    /**
     * 
     */
    public function __wakeup()
    {
        if ( ! $this->__isInitialized__) {
            $this->__initializer__ = function (TInventoryList $proxy) {
                $proxy->__setInitializer(null);
                $proxy->__setCloner(null);

                $existingProperties = get_object_vars($proxy);

                foreach ($proxy::$lazyPropertiesDefaults as $property => $defaultValue) {
                    if ( ! array_key_exists($property, $existingProperties)) {
                        $proxy->$property = $defaultValue;
                    }
                }
            };

        }
    }

    /**
     * 
     */
    public function __clone()
    {
        $this->__cloner__ && $this->__cloner__->__invoke($this, '__clone', []);
    }

    /**
     * Forces initialization of the proxy
     */
    public function __load()
    {
        $this->__initializer__ && $this->__initializer__->__invoke($this, '__load', []);
    }

    /**
     * {@inheritDoc}
     * @internal generated method: use only when explicitly handling proxy specific loading logic
     */
    public function __isInitialized()
    {
        return $this->__isInitialized__;
    }

    /**
     * {@inheritDoc}
     * @internal generated method: use only when explicitly handling proxy specific loading logic
     */
    public function __setInitialized($initialized)
    {
        $this->__isInitialized__ = $initialized;
    }

    /**
     * {@inheritDoc}
     * @internal generated method: use only when explicitly handling proxy specific loading logic
     */
    public function __setInitializer(\Closure $initializer = null)
    {
        $this->__initializer__ = $initializer;
    }

    /**
     * {@inheritDoc}
     * @internal generated method: use only when explicitly handling proxy specific loading logic
     */
    public function __getInitializer()
    {
        return $this->__initializer__;
    }

    /**
     * {@inheritDoc}
     * @internal generated method: use only when explicitly handling proxy specific loading logic
     */
    public function __setCloner(\Closure $cloner = null)
    {
        $this->__cloner__ = $cloner;
    }

    /**
     * {@inheritDoc}
     * @internal generated method: use only when explicitly handling proxy specific cloning logic
     */
    public function __getCloner()
    {
        return $this->__cloner__;
    }

    /**
     * {@inheritDoc}
     * @internal generated method: use only when explicitly handling proxy specific loading logic
     * @deprecated no longer in use - generated code now relies on internal components rather than generated public API
     * @static
     */
    public function __getLazyProperties()
    {
        return self::$lazyPropertiesDefaults;
    }

    
    /**
     * {@inheritDoc}
     */
    public function getId(): ?int
    {
        if ($this->__isInitialized__ === false) {
            return (int)  parent::getId();
        }


        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getId', []);

        return parent::getId();
    }

    /**
     * {@inheritDoc}
     */
    public function getItemDescription(): ?string
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getItemDescription', []);

        return parent::getItemDescription();
    }

    /**
     * {@inheritDoc}
     */
    public function setItemDescription(?string $itemDescription): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setItemDescription', [$itemDescription]);

        return parent::setItemDescription($itemDescription);
    }

    /**
     * {@inheritDoc}
     */
    public function getItemType(): ?string
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getItemType', []);

        return parent::getItemType();
    }

    /**
     * {@inheritDoc}
     */
    public function setItemType(?string $itemType): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setItemType', [$itemType]);

        return parent::setItemType($itemType);
    }

    /**
     * {@inheritDoc}
     */
    public function getStatus(): ?string
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getStatus', []);

        return parent::getStatus();
    }

    /**
     * {@inheritDoc}
     */
    public function setStatus(?string $status): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setStatus', [$status]);

        return parent::setStatus($status);
    }

    /**
     * {@inheritDoc}
     */
    public function getLocation(): ?string
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getLocation', []);

        return parent::getLocation();
    }

    /**
     * {@inheritDoc}
     */
    public function setLocation(?string $location): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setLocation', [$location]);

        return parent::setLocation($location);
    }

    /**
     * {@inheritDoc}
     */
    public function getReOrderLevel(): ?int
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getReOrderLevel', []);

        return parent::getReOrderLevel();
    }

    /**
     * {@inheritDoc}
     */
    public function setReOrderLevel(?int $reOrderLevel): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setReOrderLevel', [$reOrderLevel]);

        return parent::setReOrderLevel($reOrderLevel);
    }

    /**
     * {@inheritDoc}
     */
    public function getLastSupId(): ?int
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getLastSupId', []);

        return parent::getLastSupId();
    }

    /**
     * {@inheritDoc}
     */
    public function setLastSupId(?int $lastSupId): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setLastSupId', [$lastSupId]);

        return parent::setLastSupId($lastSupId);
    }

    /**
     * {@inheritDoc}
     */
    public function getLastClientId(): ?int
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getLastClientId', []);

        return parent::getLastClientId();
    }

    /**
     * {@inheritDoc}
     */
    public function setLastClientId(?int $lastClientId): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setLastClientId', [$lastClientId]);

        return parent::setLastClientId($lastClientId);
    }

    /**
     * {@inheritDoc}
     */
    public function getLastModifiedBy(): ?int
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getLastModifiedBy', []);

        return parent::getLastModifiedBy();
    }

    /**
     * {@inheritDoc}
     */
    public function setLastModifiedBy(?int $lastModifiedBy): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setLastModifiedBy', [$lastModifiedBy]);

        return parent::setLastModifiedBy($lastModifiedBy);
    }

    /**
     * {@inheritDoc}
     */
    public function getLastModifiedOn(): ?\DateTimeInterface
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getLastModifiedOn', []);

        return parent::getLastModifiedOn();
    }

    /**
     * {@inheritDoc}
     */
    public function setLastModifiedOn(?\DateTimeInterface $lastModifiedOn): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setLastModifiedOn', [$lastModifiedOn]);

        return parent::setLastModifiedOn($lastModifiedOn);
    }

    /**
     * {@inheritDoc}
     */
    public function getLockPurchasesPrices(): ?string
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getLockPurchasesPrices', []);

        return parent::getLockPurchasesPrices();
    }

    /**
     * {@inheritDoc}
     */
    public function setLockPurchasesPrices(?string $lockPurchasesPrices): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setLockPurchasesPrices', [$lockPurchasesPrices]);

        return parent::setLockPurchasesPrices($lockPurchasesPrices);
    }

    /**
     * {@inheritDoc}
     */
    public function getDetails(): \Doctrine\Common\Collections\Collection
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getDetails', []);

        return parent::getDetails();
    }

    /**
     * {@inheritDoc}
     */
    public function addDetail(\App\Entity\TTransactionsDetails $detail): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'addDetail', [$detail]);

        return parent::addDetail($detail);
    }

    /**
     * {@inheritDoc}
     */
    public function removeDetail(\App\Entity\TTransactionsDetails $detail): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'removeDetail', [$detail]);

        return parent::removeDetail($detail);
    }

    /**
     * {@inheritDoc}
     */
    public function getTotalQuantity()
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getTotalQuantity', []);

        return parent::getTotalQuantity();
    }

    /**
     * {@inheritDoc}
     */
    public function getCategory(): ?\App\Entity\TInventoryCategory
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getCategory', []);

        return parent::getCategory();
    }

    /**
     * {@inheritDoc}
     */
    public function setCategory(?\App\Entity\TInventoryCategory $category): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setCategory', [$category]);

        return parent::setCategory($category);
    }

    /**
     * {@inheritDoc}
     */
    public function getTempDetails(): \Doctrine\Common\Collections\Collection
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getTempDetails', []);

        return parent::getTempDetails();
    }

    /**
     * {@inheritDoc}
     */
    public function addTempdetail(\App\Entity\TTransactionsTempsDetails $tempDetail): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'addTempdetail', [$tempDetail]);

        return parent::addTempdetail($tempDetail);
    }

    /**
     * {@inheritDoc}
     */
    public function removeTempdetail(\App\Entity\TTransactionsTempsDetails $tempDetail): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'removeTempdetail', [$tempDetail]);

        return parent::removeTempdetail($tempDetail);
    }

    /**
     * {@inheritDoc}
     */
    public function getQuantity(): ?int
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getQuantity', []);

        return parent::getQuantity();
    }

    /**
     * {@inheritDoc}
     */
    public function setQuantity(?int $quantity): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setQuantity', [$quantity]);

        return parent::setQuantity($quantity);
    }

    /**
     * {@inheritDoc}
     */
    public function getLastPurchaseDate(): ?\DateTimeInterface
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getLastPurchaseDate', []);

        return parent::getLastPurchaseDate();
    }

    /**
     * {@inheritDoc}
     */
    public function setLastPurchaseDate(?\DateTimeInterface $lastPurchaseDate): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setLastPurchaseDate', [$lastPurchaseDate]);

        return parent::setLastPurchaseDate($lastPurchaseDate);
    }

    /**
     * {@inheritDoc}
     */
    public function getLastSaleDate(): ?\DateTimeInterface
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getLastSaleDate', []);

        return parent::getLastSaleDate();
    }

    /**
     * {@inheritDoc}
     */
    public function setLastSaleDate(?\DateTimeInterface $lastSaleDate): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setLastSaleDate', [$lastSaleDate]);

        return parent::setLastSaleDate($lastSaleDate);
    }

    /**
     * {@inheritDoc}
     */
    public function getItemMoveCount(): ?int
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getItemMoveCount', []);

        return parent::getItemMoveCount();
    }

    /**
     * {@inheritDoc}
     */
    public function setItemMoveCount(?int $itemMoveCount): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setItemMoveCount', [$itemMoveCount]);

        return parent::setItemMoveCount($itemMoveCount);
    }

    /**
     * {@inheritDoc}
     */
    public function getPrices(): \Doctrine\Common\Collections\Collection
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getPrices', []);

        return parent::getPrices();
    }

    /**
     * {@inheritDoc}
     */
    public function addPrice(\App\Entity\InventoryPrices $price): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'addPrice', [$price]);

        return parent::addPrice($price);
    }

    /**
     * {@inheritDoc}
     */
    public function removePrice(\App\Entity\InventoryPrices $price): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'removePrice', [$price]);

        return parent::removePrice($price);
    }

    /**
     * {@inheritDoc}
     */
    public function getNote(): ?string
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getNote', []);

        return parent::getNote();
    }

    /**
     * {@inheritDoc}
     */
    public function setNote(?string $note): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setNote', [$note]);

        return parent::setNote($note);
    }

    /**
     * {@inheritDoc}
     */
    public function getCost(): ?string
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getCost', []);

        return parent::getCost();
    }

    /**
     * {@inheritDoc}
     */
    public function setCost(?string $cost): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setCost', [$cost]);

        return parent::setCost($cost);
    }

    /**
     * {@inheritDoc}
     */
    public function getPrice(): ?string
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getPrice', []);

        return parent::getPrice();
    }

    /**
     * {@inheritDoc}
     */
    public function setPrice(?string $price): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setPrice', [$price]);

        return parent::setPrice($price);
    }

    /**
     * {@inheritDoc}
     */
    public function getAuthor(): ?string
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getAuthor', []);

        return parent::getAuthor();
    }

    /**
     * {@inheritDoc}
     */
    public function setAuthor(?string $author): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setAuthor', [$author]);

        return parent::setAuthor($author);
    }

    /**
     * {@inheritDoc}
     */
    public function getSerialNumber(): ?string
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getSerialNumber', []);

        return parent::getSerialNumber();
    }

    /**
     * {@inheritDoc}
     */
    public function setSerialNumber(?string $serialNumber): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setSerialNumber', [$serialNumber]);

        return parent::setSerialNumber($serialNumber);
    }

    /**
     * {@inheritDoc}
     */
    public function getBarcode(): ?string
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getBarcode', []);

        return parent::getBarcode();
    }

    /**
     * {@inheritDoc}
     */
    public function setBarcode(?string $barcode): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setBarcode', [$barcode]);

        return parent::setBarcode($barcode);
    }

    /**
     * {@inheritDoc}
     */
    public function getWholesalePrice(): ?string
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getWholesalePrice', []);

        return parent::getWholesalePrice();
    }

    /**
     * {@inheritDoc}
     */
    public function setWholesalePrice(?string $wholesalePrice): \App\Entity\TInventoryList
    {

        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setWholesalePrice', [$wholesalePrice]);

        return parent::setWholesalePrice($wholesalePrice);
    }

}
