<?php

namespace Proxies\__CG__\App\Entity;

/**
 * DO NOT EDIT THIS FILE - IT WAS CREATED BY DOCTRINE'S PROXY GENERATOR
 */
class Content extends \App\Entity\Content 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\\Content' . "\0" . 'id', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'title', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'campaign', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'user', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'dueDate', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'status', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'versions', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'negotiations', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'links', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'comments', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'eventLogs', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'desiredWordCount', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'anchorHref', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'anchorText', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'files', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'wordCount', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'priority', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'type', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'metaDescription', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'metaTitle', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'placement', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'copyscapeReport', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'brief', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'createdAt', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'updatedAt'];
        }

        return ['__isInitialized__', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'id', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'title', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'campaign', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'user', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'dueDate', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'status', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'versions', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'negotiations', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'links', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'comments', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'eventLogs', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'desiredWordCount', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'anchorHref', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'anchorText', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'files', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'wordCount', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'priority', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'type', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'metaDescription', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'metaTitle', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'placement', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'copyscapeReport', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'brief', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'createdAt', '' . "\0" . 'App\\Entity\\Content' . "\0" . 'updatedAt'];
    }

    /**
     * 
     */
    public function __wakeup()
    {
        if ( ! $this->__isInitialized__) {
            $this->__initializer__ = function (Content $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 getTitle(): ?string
    {

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

        return parent::getTitle();
    }

    /**
     * {@inheritDoc}
     */
    public function setTitle(string $title): \App\Entity\Content
    {

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

        return parent::setTitle($title);
    }

    /**
     * {@inheritDoc}
     */
    public function getCampaign(): ?\App\Entity\Campaign
    {

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

        return parent::getCampaign();
    }

    /**
     * {@inheritDoc}
     */
    public function setCampaign(?\App\Entity\Campaign $campaign): \App\Entity\Content
    {

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

        return parent::setCampaign($campaign);
    }

    /**
     * {@inheritDoc}
     */
    public function getUser(): ?\App\Entity\User
    {

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

        return parent::getUser();
    }

    /**
     * {@inheritDoc}
     */
    public function setUser(?\App\Entity\User $user): \App\Entity\Content
    {

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

        return parent::setUser($user);
    }

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

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

        return parent::getDueDate();
    }

    /**
     * {@inheritDoc}
     */
    public function setDueDate(?string $dueDate): \App\Entity\Content
    {

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

        return parent::setDueDate($dueDate);
    }

    /**
     * {@inheritDoc}
     */
    public function getStatus(): ?\App\Entity\Content\Status
    {

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

        return parent::getStatus();
    }

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

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

        return parent::setStatus($status);
    }

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

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

        return parent::getVersions();
    }

    /**
     * {@inheritDoc}
     */
    public function addVersion(\App\Entity\ContentVersion $version): \App\Entity\Content
    {

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

        return parent::addVersion($version);
    }

    /**
     * {@inheritDoc}
     */
    public function removeVersion(\App\Entity\ContentVersion $version): \App\Entity\Content
    {

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

        return parent::removeVersion($version);
    }

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

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

        return parent::getNegotiations();
    }

    /**
     * {@inheritDoc}
     */
    public function addNegotiation(\App\Entity\Negotiation $negotiation): \App\Entity\Content
    {

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

        return parent::addNegotiation($negotiation);
    }

    /**
     * {@inheritDoc}
     */
    public function removeNegotiation(\App\Entity\Negotiation $negotiation): \App\Entity\Content
    {

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

        return parent::removeNegotiation($negotiation);
    }

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

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

        return parent::getDesiredWordCount();
    }

    /**
     * {@inheritDoc}
     */
    public function setDesiredWordCount(?int $desiredWordCount): \App\Entity\Content
    {

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

        return parent::setDesiredWordCount($desiredWordCount);
    }

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

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

        return parent::getAnchorHref();
    }

    /**
     * {@inheritDoc}
     */
    public function setAnchorHref(?string $anchorHref): \App\Entity\Content
    {

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

        return parent::setAnchorHref($anchorHref);
    }

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

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

        return parent::getAnchorText();
    }

    /**
     * {@inheritDoc}
     */
    public function setAnchorText(?string $anchorText): \App\Entity\Content
    {

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

        return parent::setAnchorText($anchorText);
    }

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

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

        return parent::getFiles();
    }

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

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

        return parent::getDataType();
    }

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

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

        return parent::getWordCount();
    }

    /**
     * {@inheritDoc}
     */
    public function setWordCount(int $wordCount): \App\Entity\Content
    {

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

        return parent::setWordCount($wordCount);
    }

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

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

        return parent::getPriority();
    }

    /**
     * {@inheritDoc}
     */
    public function setPriority(int $priority): \App\Entity\Content
    {

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

        return parent::setPriority($priority);
    }

    /**
     * {@inheritDoc}
     */
    public function getType(): ?\App\Entity\Content\Type
    {

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

        return parent::getType();
    }

    /**
     * {@inheritDoc}
     */
    public function setType(?\App\Entity\Content\Type $type): \App\Entity\Content
    {

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

        return parent::setType($type);
    }

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

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

        return parent::getMetaDescription();
    }

    /**
     * {@inheritDoc}
     */
    public function setMetaDescription(?string $metaDescription): \App\Entity\Content
    {

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

        return parent::setMetaDescription($metaDescription);
    }

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

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

        return parent::getMetaTitle();
    }

    /**
     * {@inheritDoc}
     */
    public function setMetaTitle(?string $metaTitle): \App\Entity\Content
    {

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

        return parent::setMetaTitle($metaTitle);
    }

    /**
     * {@inheritDoc}
     */
    public function getPlacement(): ?\App\Entity\Content\Placement
    {

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

        return parent::getPlacement();
    }

    /**
     * {@inheritDoc}
     */
    public function setPlacement(?\App\Entity\Content\Placement $placement): \App\Entity\Content
    {

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

        return parent::setPlacement($placement);
    }

    /**
     * {@inheritDoc}
     */
    public function getCopyscapeResult(): ?bool
    {

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

        return parent::getCopyscapeResult();
    }

    /**
     * {@inheritDoc}
     */
    public function getCopyscapeReport(): ?\App\Entity\CopyscapeReport
    {

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

        return parent::getCopyscapeReport();
    }

    /**
     * {@inheritDoc}
     */
    public function setCopyscapeReport(\App\Entity\CopyscapeReport $copyscapeReport): \App\Entity\Content
    {

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

        return parent::setCopyscapeReport($copyscapeReport);
    }

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

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

        return parent::getBrief();
    }

    /**
     * {@inheritDoc}
     */
    public function setBrief(string $brief): void
    {

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

        parent::setBrief($brief);
    }

    /**
     * {@inheritDoc}
     */
    public function getCreatedAt(): ?\DateTime
    {

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

        return parent::getCreatedAt();
    }

    /**
     * {@inheritDoc}
     */
    public function getUpdatedAt(): ?\DateTime
    {

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

        return parent::getUpdatedAt();
    }

}
