<?php
namespace Cms\WorkflowsBundle\Entity;
use Cms\ModuleBundle\Entity\Draft;
use Cms\TenantBundle\Entity\TenantedEntity;
use Cms\WorkflowsBundle\Entity\Publication\ScheduledPublication;
use Doctrine\ORM\Mapping as ORM;
/**
* Class WorkflowContent
* @package Cms\WorkflowsBundle\Entity
*
* @ORM\Entity(
* repositoryClass = "Cms\WorkflowsBundle\Doctrine\WorkflowContentRepository"
* )
*
* @ORM\Table(
* name = "cms__workflows_workflow_content"
* )
*
* @ORM\InheritanceType("SINGLE_TABLE")
*
* @ORM\DiscriminatorColumn(
* name = "contentType",
* type = "string"
* )
*
* @ORM\DiscriminatorMap({
* WorkflowContent::CONTENT_TYPES__ALERT = "Cms\WorkflowsBundle\Entity\Content\AlertContent",
* WorkflowContent::CONTENT_TYPES__BLOG = "Cms\WorkflowsBundle\Entity\Content\BlogContent",
* WorkflowContent::CONTENT_TYPES__CALENDAR = "Cms\WorkflowsBundle\Entity\Content\CalendarContent",
* WorkflowContent::CONTENT_TYPES__GALLERY = "Cms\WorkflowsBundle\Entity\Content\GalleryContent",
* WorkflowContent::CONTENT_TYPES__NEWS = "Cms\WorkflowsBundle\Entity\Content\NewsContent",
* WorkflowContent::CONTENT_TYPES__PAGE = "Cms\WorkflowsBundle\Entity\Content\PageContent",
* WorkflowContent::CONTENT_TYPES__PEOPLE = "Cms\WorkflowsBundle\Entity\Content\PeopleContent",
* WorkflowContent::CONTENT_TYPES__QUESTIONS = "Cms\WorkflowsBundle\Entity\Content\QuestionsContent",
* WorkflowContent::CONTENT_TYPES__SNIPPET = "Cms\WorkflowsBundle\Entity\Content\SnippetContent",
* })
*/
abstract class WorkflowContent extends TenantedEntity
{
const CONTENT_TYPES__ALERT = "Alert";
const CONTENT_TYPES__BLOG = "Post";
const CONTENT_TYPES__CALENDAR = "Event";
const CONTENT_TYPES__GALLERY = "Gallery";
const CONTENT_TYPES__NEWS = "Article";
const CONTENT_TYPES__PAGE = "Page";
const CONTENT_TYPES__PEOPLE = "Profile";
const CONTENT_TYPES__QUESTIONS = "Entry";
const CONTENT_TYPES__SNIPPET = "Snippet";
const CONTENT_TYPES__ALL = "*";
/**
* @var ScheduledPublication
*
* @ORM\OneToOne(
* targetEntity = "Cms\WorkflowsBundle\Entity\Publication\ScheduledPublication",
* )
* @ORM\JoinColumn(
* name = "publication",
* referencedColumnName = "id",
* onDelete = "SET NULL"
* )
*/
protected $publication;
/**
* @var WorkflowSubmission
*
* @ORM\OneToOne(
* targetEntity = "Cms\WorkflowsBundle\Entity\WorkflowSubmission",
* )
* @ORM\JoinColumn(
* name = "submission",
* referencedColumnName = "id",
* onDelete = "CASCADE"
* )
*/
protected $submission;
protected $contentType;
/**
* @param Draft $value
* @return $this
*/
abstract public function setDraft(Draft $value);
/**
* @return Draft
*/
abstract public function getDraft();
/**
* @return string
*/
public function getContentType()
{
return $this->contentType;
}
/**
* @return WorkflowSubmission
*/
public function getSubmission()
{
return $this->submission;
}
/**
* @param WorkflowSubmission $submission
*/
public function setSubmission($submission)
{
$this->submission = $submission;
}
/**
* @return ScheduledPublication
*/
public function getPublication()
{
return $this->publication;
}
/**
* @param ScheduledPublication|null $value
* @return $this
*/
public function setPublication(ScheduledPublication $value = null)
{
$this->publication = $value;
return $this;
}
}