<?php
namespace CoreBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Table("peer_feedback")
* @ORM\Entity(repositoryClass="CoreBundle\Entity\PeerFeedbackRepository")
*/
class PeerFeedback
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var PeerUnit
*
* @ORM\ManyToOne(targetEntity="CoreBundle\Entity\PeerUnit", inversedBy="peerFeedbacks")
* @ORM\JoinColumn(name="peer_unit", referencedColumnName="id", onDelete="CASCADE")
*/
private $peerUnit;
/**
* @var PeerSolution
*
* @ORM\ManyToOne(targetEntity="CoreBundle\Entity\PeerSolution", inversedBy="peerFeedbacks")
* @ORM\JoinColumn(name="peer_solution", referencedColumnName="id", onDelete="CASCADE")
*/
private $peerSolution;
/**
* @ORM\OneToOne(targetEntity="PeerFeedback2nd", mappedBy="peerFeedback", cascade={"persist","remove"})
*/
private ?PeerFeedback2nd $peerFeedback2nd;
/**
* @ORM\Column(name="feedback_text", type="text", nullable=true)
*/
private ?string $feedbackText;
/**
* @ORM\Column(name="updated_at", type="datetime", nullable=true)
*
* @var \DateTime
*/
private $updatedAt;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private ?int $rating = null;
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @return PeerUnit
*/
public function getPeerUnit(): PeerUnit
{
return $this->peerUnit;
}
/**
* @param PeerUnit $peerUnit
*/
public function setPeerUnit(PeerUnit $peerUnit)
{
$this->peerUnit = $peerUnit;
}
/**
* @return PeerSolution
*/
public function getPeerSolution(): PeerSolution
{
return $this->peerSolution;
}
/**
* @param PeerSolution $peerSolution
*/
public function setPeerSolution(PeerSolution $peerSolution)
{
$this->peerSolution = $peerSolution;
}
public function getFeedbackText(): ?string
{
return $this->feedbackText;
}
/**
* @param string $feedbackText
* @throws \Exception
*/
public function setFeedbackText(string $feedbackText)
{
$this->feedbackText = $feedbackText;
$this->updatedAt = new \DateTimeImmutable('now', new \DateTimeZone('Europe/Copenhagen'));
}
public function getRating(): ?int
{
return $this->rating;
}
/**
* @throws \Exception
*/
public function setRating(int $rating)
{
$this->rating = $rating;
$this->updatedAt = new \DateTimeImmutable('now', new \DateTimeZone('Europe/Copenhagen'));
}
public function getPeerFeedback2nd(): ?PeerFeedback2nd
{
return $this->peerFeedback2nd;
}
public function setPeerFeedback2nd(PeerFeedback2nd $peerFeedback2nd)
{
$this->peerFeedback2nd = $peerFeedback2nd;
}
public function getUpdatedAt(): ?\DateTimeInterface
{
return $this->updatedAt;
}
}