<?php
namespace Cms\Modules\NewsBundle\Entity\Article;
use Cms\CoreBundle\Util\DateTimeUtils;
use Cms\ModuleBundle\Entity\Proxy;
use Cms\ModuleBundle\Model\Interfaces\Shareable\ShareableInterface;
use Cms\ModuleBundle\Model\Interfaces\Shareable\ShareableTrait;
use Cms\Modules\NewsBundle\Model\Article\ArticleData;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Cms\ImportBundle\Model\Interfaces\Importable\ImportableInterface;
use Cms\ImportBundle\Model\Interfaces\Importable\ImportableTrait;
/**
* Class ArticleProxy
* @package Cms\Modules\NewsBundle\Entity\Article
*
* @property ArticleData $data
* @property ArrayCollection|ArticleHistory[] $histories
* @property ArticleHistory $history
* @property ArrayCollection|ArticleDraft[] $drafts
*
* @method ArticleData getData()
* @method ArrayCollection|ArticleHistory[] getHistories()
* @method ArticleHistory getHistory()
* @method ArticleDraft getDraft()
* @method ArrayCollection|ArticleDraft[] getDrafts()
* @method ArticleProxy setData(ArticleData $value)
* @method ArticleProxy setHistory(ArticleHistory $value)
*
* @ORM\Entity
*/
class ArticleProxy extends Proxy implements ShareableInterface, ImportableInterface
{
const TYPE = 'Article';
const LOCKABLE_TYPE = 'news';
use ArticleDataTrait, ShareableTrait, ImportableTrait;
/**
* {@inheritDoc}
*/
public function isJumpable()
{
return (parent::isJumpable() && empty($this->getData()->getExternalLink()) && $this->getData()->getTimestamp() <= DateTimeUtils::now());
}
}