src/Entity/Question.php line 14
<?phpnamespace App\Entity;use App\Repository\QuestionRepository;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\DBAL\Types\Types;use Doctrine\ORM\Mapping as ORM;use Gedmo\Mapping\Annotation as Gedmo;use Gedmo\Timestampable\Traits\TimestampableEntity;#[ORM\Entity(QuestionRepository::class)]class Question{use TimestampableEntity;#[ORM\Id]#[ORM\GeneratedValue]#[ORM\Column]private ?int $id;#[ORM\Column]private ?string $name;/*** @Gedmo\Slug(fields={"name"})*/#[ORM\Column(length: 100, unique: true)]private ?string $slug;#[ORM\Column(type: Types::TEXT)]private ?string $question;#[ORM\ManyToOne(inversedBy: 'questions')]#[ORM\JoinColumn(nullable: false)]private User $askedBy;#[ORM\Column]private int $votes = 0;#[ORM\OneToMany('question', Answer::class, orphanRemoval: true)]private Collection $answers;#[ORM\ManyToOne(inversedBy: 'questions')]#[ORM\JoinColumn(nullable: false)]private Topic $topic;#[ORM\Column]private bool $isApproved = false;#[ORM\ManyToOne]private User $updatedBy;public function __construct(){$this->answers = new ArrayCollection();}public function __toString(): string{return $this->name;}public function getId(): ?int{return $this->id;}public function getName(): ?string{return $this->name;}public function setName(string $name): self{$this->name = $name;return $this;}public function getSlug(): ?string{return $this->slug;}public function setSlug(string $slug): self{$this->slug = $slug;return $this;}public function getQuestion(): ?string{return $this->question;}public function setQuestion(string $question): self{$this->question = $question;return $this;}public function getAskedBy(): ?User{return $this->askedBy;}public function setAskedBy(?User $askedBy): self{$this->askedBy = $askedBy;return $this;}public function getVotes(): int{return $this->votes;}public function getVotesString(): string{$prefix = $this->getVotes() >= 0 ? '+' : '-';return sprintf('%s %d', $prefix, abs($this->getVotes()));}public function setVotes(int $votes): self{$this->votes = $votes;return $this;}public function upVote(): self{$this->votes++;return $this;}public function downVote(): self{$this->votes--;return $this;}/*** @return Collection|Answer[]*/public function getAnswers(): Collection{return $this->answers;}public function addAnswer(Answer $answer): self{if (!$this->answers->contains($answer)) {$this->answers[] = $answer;$answer->setQuestion($this);}return $this;}public function removeAnswer(Answer $answer): self{if ($this->answers->removeElement($answer)) {// set the owning side to null (unless already changed)if ($answer->getQuestion() === $this) {$answer->setQuestion(null);}}return $this;}public function getTopic(): ?Topic{return $this->topic;}public function setTopic(?Topic $topic): self{$this->topic = $topic;return $this;}public function getIsApproved(): bool{return $this->isApproved;}public function setIsApproved(bool $isApproved): void{$this->isApproved = $isApproved;}public function getUpdatedBy(): ?User{return $this->updatedBy;}public function setUpdatedBy(User $updatedBy): void{$this->updatedBy = $updatedBy;}}