<?phpnamespace Tionvel\WorkflowBundle\Entity;use App\Entity\User;use Doctrine\ORM\Mapping as ORM;use Symfony\Component\Security\Core\User\UserInterface;/** * Class WorkflowAssignee * @package Tionvel\WorkflowBundle\Entity * @ORM\Entity() * @ORM\Table( * name="workflow_assignee", * indexes={ * @ORM\Index(name="idx_was_state_user", columns={"state_id", "user_id"}), * @ORM\Index(name="idx_was_state_name", columns={"state_id", "name"}) * } * ) */class WorkflowAssignee{ /** * @var int * @ORM\Id @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO") */ private $id; /** * @var User * @ORM\ManyToOne(targetEntity="App\Entity\User") * @ORM\JoinColumn(onDelete="CASCADE") */ private $user; /** * @var string * @ORM\Column(type="string") */ private $name; /** * @var WorkflowState * @ORM\ManyToOne( * targetEntity="Tionvel\WorkflowBundle\Entity\WorkflowState", inversedBy="assignees" * ) * @ORM\JoinColumn( * onDelete="CASCADE" * ) */ private $state; /** * @param User $user * @param $name * @return WorkflowAssignee */ public static function create(User $user, $name) { $self = new self; $self->setUser($user); $self->setName($name); return $self; } /** * @return int */ public function getId() { return $this->id; } /** * @return User */ public function getUser() { return $this->user; } /** * @param User $user */ public function setUser(User $user) { $this->user = $user; } /** * @param User $user * @return bool */ public function isUser(UserInterface $user) { return $this->user === $user; } /** * @return string */ public function getName() { return $this->name; } /** * @param string $name */ public function setName(string $name) { $this->name = $name; } /** * @param $type * @return bool */ public function isType($type) { return $type === $this->name; } /** * @return WorkflowState */ public function getState() { return $this->state; } /** * @param WorkflowState $state */ public function setState(WorkflowState $state) { $this->state = $state; }}