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