<?php
namespace Cms\WorkflowsBundle\Entity;
use Cms\TenantBundle\Entity\TenantedEntity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
/**
* Class WorkflowStage
* @package Cms\WorkflowsBundle\Entity
*
* @ORM\Entity(
* repositoryClass = "Cms\WorkflowsBundle\Doctrine\WorkflowStageRepository"
* )
* @ORM\Table(
* name = "cms__workflows_workflow_stage"
* )
*/
class WorkflowStage extends TenantedEntity {
const STAGE_ACTIONS__TRANSLATE = 0;
const STAGE_ACTIONS__SCAN_TEXT = 1;
const STAGE_ACTIONS__SCAN_IMAGE = 2;
const STAGE_ACTIONS__SCAN_VIDEO = 3;
const STAGE_ACTIONS__SCAN_BINARY = 4;
const STAGE_ACTIONS__SCAN_ADA = 5;
const STAGE_ACTIONS__ENFORCEMENT_REVIEW = 6;
public function __construct()
{
$this->reviewers = new ArrayCollection();
}
/**
* @var int
*
* @ORM\Column(
* type = "integer",
* nullable = false
* )
*/
protected $actionType = WorkflowStage::STAGE_ACTIONS__ENFORCEMENT_REVIEW;
/**
* @var string
*
* @ORM\Column(
* type = "string",
* nullable = false
* )
*/
protected $candidateContentType = WorkflowContent::CONTENT_TYPES__ALL;
/**
* @var int
*
* @ORM\Column(
* type = "integer",
* nullable = false
* )
*/
protected $workflowIndex;
/**
* @var string
*
* @ORM\Column(
* type = "string",
* nullable = true
* )
*/
protected $workflowStageName;
/**
* @var string
*
* @ORM\Column(
* type = "string",
* nullable = true
* )
*/
protected $workflowStageDescription;
/**
* @var Workflow
*
* @ORM\ManyToOne(
* targetEntity = "Cms\WorkflowsBundle\Entity\Workflow",
* )
* @ORM\JoinColumn(
* name = "workflow",
* referencedColumnName = "id",
* onDelete = "CASCADE"
* )
*/
protected $workflow;
/**
* @return int
*/
public function getIndex() {
return $this->workflowIndex;
}
/**
* @return Workflow
*/
public function getWorkflow() {
return $this->workflow;
}
/**
* @param WorkflowContent $content
* @return Boolean
*/
public function isRequiredFor($content) {
return WorkflowContent::CONTENT_TYPES__ALL == WorkflowContent::CONTENT_TYPES__ALL || $this->candidateContentType == $content->getContentType();
}
/**
* @param Workflow $workflow
* @return WorkflowStage
*/
public function setWorkflow($workflow, $index)
{
$this->workflow = $workflow;
$this->workflowIndex = $index;
return $this;
}
/**
* @param string $name
* @return WorkflowStage
*/
public function setName($name)
{
$this->name = $name;
return $this;
}
/**
* @param string $description
* @return WorkflowStage
*/
public function setDescription($description)
{
$this->description = $description;
return $this;
}
}