<?php
namespace AdminBundle\Entity;
use DateTime;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
/**
* Questionnaire
*/
#[ORM\Table(name: 'questionnaires')]
#[ORM\Entity(repositoryClass: \AdminBundle\Repository\QuestionnaireRepository::class)]
class Questionnaire
{
const TYPE_FIRST_LOGIN = 1;
const TYPE_MONTHLY = 2;
const TYPES = [
self::TYPE_FIRST_LOGIN => 'On First Login',
self::TYPE_MONTHLY => 'Monthly',
];
/**
* @var int
*/
#[ORM\Column(name: 'id', type: 'integer')]
#[ORM\Id]
#[ORM\GeneratedValue(strategy: 'AUTO')]
private $id;
/**
* @var string
*/
#[ORM\Column(name: 'type', type: 'integer')]
private $type;
/**
* @var string
*/
#[ORM\Column(name: 'title', type: 'string', length: 255)]
private $title;
/**
* @var string
*/
#[ORM\Column(name: 'description', type: 'text')]
private $description;
/**
* @var DateTime
*/
#[ORM\Column(name: 'released_at', type: 'datetime', nullable: true)]
private $releasedAt;
/**
* @var DateTime
*/
#[ORM\Column(name: 'created_at', type: 'datetime')]
private $createdAt;
#[ORM\OneToMany(targetEntity: \AdminBundle\Entity\Question::class, mappedBy: 'questionnaire', cascade: ['persist', 'remove'], orphanRemoval: true)]
private $questions;
public function __construct()
{
$this->createdAt = new DateTime();
$this->questions = new ArrayCollection();
}
public function __toString() {
return $this->title. '';
}
/**
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* @return string
*/
public function getTitle()
{
return $this->title;
}
/**
* @param string $title
*
* @return Questionaire
*/
public function setTitle($title)
{
$this->title = $title;
return $this;
}
/**
* @return int
*/
public function getType()
{
return $this->type;
}
/**
* @param int $type
*
* @return Questionaire
*/
public function setType($type)
{
$this->type = $type;
return $this;
}
/**
* @return string
*/
public function getDescription()
{
return $this->description;
}
/**
* @param string $description
*
* @return Questionaire
*/
public function setDescription($description)
{
$this->description = $description;
return $this;
}
/**
* @return DateTime
*/
public function getCreatedAt()
{
return $this->createdAt;
}
/**
* @param DateTime $createdAt
*
* @return Questionaire
*/
public function setCreatedAt(DateTime $createdAt)
{
$this->createdAt = $createdAt;
return $this;
}
/**
* @return DateTime
*/
public function getReleasedAt()
{
return $this->releasedAt;
}
/**
* @param DateTime $releasedAt
*
* @return Questionaire
*/
public function setReleasedAt(DateTime $releasedAt = null)
{
$this->releasedAt = $releasedAt;
return $this;
}
/**
* @param Question $question
*
* @return Questionaire
*/
public function addQuestion(Question $question)
{
$question->setQuestionnaire($this);
$this->questions->add($question);
return $this;
}
/**
* @param Question $question
*
* @return Questionaire
*/
public function removeQuestion(Question $question)
{
if (!$this->questions->contains($question)) {
return;
}
$this->questions->removeElement($question);
$question->setQuestionnaire(null);
return $this;
}
/**
* @return ArrayCollection
*/
public function getQuestions()
{
return $this->questions;
}
}