src/Cms/WorkflowsBundle/Entity/WorkflowContent.php line 41

Open in your IDE?
  1. <?php
  2. namespace Cms\WorkflowsBundle\Entity;
  3. use Cms\ModuleBundle\Entity\Draft;
  4. use Cms\TenantBundle\Entity\TenantedEntity;
  5. use Cms\WorkflowsBundle\Entity\Publication\ScheduledPublication;
  6. use Doctrine\ORM\Mapping as ORM;
  7. /**
  8.  * Class WorkflowContent
  9.  * @package Cms\WorkflowsBundle\Entity
  10.  *
  11.  * @ORM\Entity(
  12.  *     repositoryClass = "Cms\WorkflowsBundle\Doctrine\WorkflowContentRepository"
  13.  * )
  14.  *
  15.  * @ORM\Table(
  16.  *     name = "cms__workflows_workflow_content"
  17.  * )
  18.  *
  19.  * @ORM\InheritanceType("SINGLE_TABLE")
  20.  *
  21.  * @ORM\DiscriminatorColumn(
  22.  *     name = "contentType",
  23.  *     type = "string"
  24.  * )
  25.  *
  26.  * @ORM\DiscriminatorMap({
  27.  *     WorkflowContent::CONTENT_TYPES__ALERT = "Cms\WorkflowsBundle\Entity\Content\AlertContent",
  28.  *     WorkflowContent::CONTENT_TYPES__BLOG = "Cms\WorkflowsBundle\Entity\Content\BlogContent",
  29.  *     WorkflowContent::CONTENT_TYPES__CALENDAR = "Cms\WorkflowsBundle\Entity\Content\CalendarContent",
  30.  *     WorkflowContent::CONTENT_TYPES__GALLERY = "Cms\WorkflowsBundle\Entity\Content\GalleryContent",
  31.  *     WorkflowContent::CONTENT_TYPES__NEWS = "Cms\WorkflowsBundle\Entity\Content\NewsContent",
  32.  *     WorkflowContent::CONTENT_TYPES__PAGE = "Cms\WorkflowsBundle\Entity\Content\PageContent",
  33.  *     WorkflowContent::CONTENT_TYPES__PEOPLE = "Cms\WorkflowsBundle\Entity\Content\PeopleContent",
  34.  *     WorkflowContent::CONTENT_TYPES__QUESTIONS = "Cms\WorkflowsBundle\Entity\Content\QuestionsContent",
  35.  *     WorkflowContent::CONTENT_TYPES__SNIPPET = "Cms\WorkflowsBundle\Entity\Content\SnippetContent",
  36.  * })
  37.  */
  38. abstract class WorkflowContent extends TenantedEntity
  39. {
  40.     const CONTENT_TYPES__ALERT "Alert";
  41.     const CONTENT_TYPES__BLOG "Post";
  42.     const CONTENT_TYPES__CALENDAR "Event";
  43.     const CONTENT_TYPES__GALLERY "Gallery";
  44.     const CONTENT_TYPES__NEWS "Article";
  45.     const CONTENT_TYPES__PAGE "Page";
  46.     const CONTENT_TYPES__PEOPLE "Profile";
  47.     const CONTENT_TYPES__QUESTIONS "Entry";
  48.     const CONTENT_TYPES__SNIPPET "Snippet";
  49.     const CONTENT_TYPES__ALL "*";
  50.     /**
  51.      * @var ScheduledPublication
  52.      *
  53.      * @ORM\OneToOne(
  54.      *     targetEntity = "Cms\WorkflowsBundle\Entity\Publication\ScheduledPublication",
  55.      * )
  56.      * @ORM\JoinColumn(
  57.      *     name = "publication",
  58.      *     referencedColumnName = "id",
  59.      *     onDelete = "SET NULL"
  60.      * )
  61.      */
  62.     protected $publication;
  63.     /**
  64.      * @var WorkflowSubmission
  65.      *
  66.      * @ORM\OneToOne(
  67.      *     targetEntity = "Cms\WorkflowsBundle\Entity\WorkflowSubmission",
  68.      * )
  69.      * @ORM\JoinColumn(
  70.      *     name = "submission",
  71.      *     referencedColumnName = "id",
  72.      *     onDelete = "CASCADE"
  73.      * )
  74.      */
  75.     protected $submission;
  76.     protected $contentType;
  77.     /**
  78.      * @param Draft $value
  79.      * @return $this
  80.      */
  81.     abstract public function setDraft(Draft $value);
  82.     /**
  83.      * @return Draft
  84.      */
  85.     abstract public function getDraft();
  86.     /**
  87.      * @return string
  88.      */
  89.     public function getContentType()
  90.     {
  91.         return $this->contentType;
  92.     }
  93.     /**
  94.      * @return WorkflowSubmission
  95.      */
  96.     public function getSubmission()
  97.     {
  98.         return $this->submission;
  99.     }
  100.     /**
  101.      * @param WorkflowSubmission $submission
  102.      */
  103.     public function setSubmission($submission)
  104.     {
  105.         $this->submission $submission;
  106.     }
  107.     /**
  108.      * @return ScheduledPublication
  109.      */
  110.     public function getPublication()
  111.     {
  112.         return $this->publication;
  113.     }
  114.     /**
  115.      * @param ScheduledPublication|null $value
  116.      * @return $this
  117.      */
  118.     public function setPublication(ScheduledPublication $value null)
  119.     {
  120.         $this->publication $value;
  121.         return $this;
  122.     }
  123. }