<?php
namespace App\Entity;
use App\Repository\PropositionRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass=PropositionRepository::class)
*/
class Proposition
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="datetime")
*/
private $createdAt;
/**
* @ORM\ManyToOne(targetEntity=User::class, inversedBy="propositions")
* @ORM\JoinColumn(nullable=false)
*/
private $user;
/**
* @ORM\OneToMany(targetEntity=PropositionDetails::class, mappedBy="proposition")
* @ORM\JoinColumn(onDelete="CASCADE")
*/
private $propositionDetails;
/**
* @ORM\ManyToOne(targetEntity=PropositionStatus::class, inversedBy="propositions")
*/
private $statut;
/**
* @ORM\OneToMany(targetEntity=Suggestion::class, mappedBy="proposition")
*/
private $suggestions;
/**
* @ORM\OneToMany(targetEntity=Reclamation::class, mappedBy="proposition")
*/
private $reclamations;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $is_parmois;
public function __construct()
{
$this->createdAt = new \DateTime();
$this->propositionDetails = new ArrayCollection();
$this->suggestions = new ArrayCollection();
$this->reclamations = new ArrayCollection();
}
const TYPES = [
'Moin sur' => 'Moin sur',
'Sur' => 'Sur'
];
public function getPrescriptionType()
{
return self::TYPES[$this->prescription];
}
public function getId(): ?int
{
return $this->id;
}
public function getCreatedAt(): ?\DateTimeInterface
{
return $this->createdAt;
}
public function setCreatedAt(\DateTimeInterface $createdAt): self
{
$this->createdAt = $createdAt;
return $this;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(?User $user): self
{
$this->user = $user;
return $this;
}
/**
* @return Collection<int, PropositionDetails>
*/
public function getPropositionDetails(): Collection
{
return $this->propositionDetails;
}
public function addPropositionDetail(PropositionDetails $propositionDetail): self
{
if (!$this->propositionDetails->contains($propositionDetail)) {
$this->propositionDetails[] = $propositionDetail;
$propositionDetail->setProposition($this);
}
return $this;
}
public function removePropositionDetail(PropositionDetails $propositionDetail): self
{
if ($this->propositionDetails->removeElement($propositionDetail)) {
// set the owning side to null (unless already changed)
if ($propositionDetail->getProposition() === $this) {
$propositionDetail->setProposition(null);
}
}
return $this;
}
public function getStatut(): ?PropositionStatus
{
return $this->statut;
}
public function setStatut(?PropositionStatus $statut): self
{
$this->statut = $statut;
return $this;
}
/**
* @return Collection<int, Suggestion>
*/
public function getSuggestions(): Collection
{
return $this->suggestions;
}
public function addSuggestion(Suggestion $suggestion): self
{
if (!$this->suggestions->contains($suggestion)) {
$this->suggestions[] = $suggestion;
$suggestion->setProposition($this);
}
return $this;
}
public function removeSuggestion(Suggestion $suggestion): self
{
if ($this->suggestions->removeElement($suggestion)) {
// set the owning side to null (unless already changed)
if ($suggestion->getProposition() === $this) {
$suggestion->setProposition(null);
}
}
return $this;
}
/**
* @return Collection<int, Reclamation>
*/
public function getReclamations(): Collection
{
return $this->reclamations;
}
public function addReclamation(Reclamation $reclamation): self
{
if (!$this->reclamations->contains($reclamation)) {
$this->reclamations[] = $reclamation;
$reclamation->setProposition($this);
}
return $this;
}
public function removeReclamation(Reclamation $reclamation): self
{
if ($this->reclamations->removeElement($reclamation)) {
// set the owning side to null (unless already changed)
if ($reclamation->getProposition() === $this) {
$reclamation->setProposition(null);
}
}
return $this;
}
public function isIsParmois(): ?bool
{
return $this->is_parmois;
}
public function setIsParmois(?bool $is_parmois): self
{
$this->is_parmois = $is_parmois;
return $this;
}
}