<?php
namespace App\Entity;
use App\Repository\ReclamationRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
/**
* @ORM\Entity(repositoryClass=ReclamationRepository::class)
* @UniqueEntity(
* fields= {"commande"},
* message= "Vous avez déjà fait une reclamation sur cette commande"
* )
* @UniqueEntity(
* fields= {"proposition"},
* message= "Vous avez déjà fait une reclamation sur cette proposition"
* )
*/
class Reclamation
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="datetime")
*/
private $creted_at;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $updated_at;
/**
* @ORM\OneToMany(targetEntity=Discution::class, mappedBy="reclamation")
*/
private $discutions;
/**
* @ORM\ManyToOne(targetEntity=TypeReclamation::class, inversedBy="reclamations")
* @ORM\JoinColumn(nullable=false)
*/
private $typereclamation;
/**
* @ORM\ManyToOne(targetEntity=Proposition::class, inversedBy="reclamations")
*/
private $proposition;
/**
* @ORM\ManyToOne(targetEntity=EtatReclamation::class, inversedBy="reclamations")
* @ORM\JoinColumn(nullable=false)
*/
private $etatreclamation;
/**
* @ORM\OneToOne(targetEntity=Order::class)
*/
private $commande;
/**
* @ORM\ManyToOne(targetEntity=User::class, inversedBy="reclamations")
* @ORM\JoinColumn(nullable=false)
*/
private $user;
public function __construct()
{
$this->discutions = new ArrayCollection();
$this->creted_at = new \DateTime();
}
public function getId(): ?int
{
return $this->id;
}
public function getCretedAt(): ?\DateTimeInterface
{
return $this->creted_at;
}
public function setCretedAt(\DateTimeInterface $creted_at): self
{
$this->creted_at = $creted_at;
return $this;
}
public function getUpdatedAt(): ?\DateTimeInterface
{
return $this->updated_at;
}
public function setUpdatedAt(?\DateTimeInterface $updated_at): self
{
$this->updated_at = $updated_at;
return $this;
}
/**
* @return Collection<int, Discution>
*/
public function getDiscutions(): Collection
{
return $this->discutions;
}
public function addDiscution(Discution $discution): self
{
if (!$this->discutions->contains($discution)) {
$this->discutions[] = $discution;
$discution->setReclamation($this);
}
return $this;
}
public function removeDiscution(Discution $discution): self
{
if ($this->discutions->removeElement($discution)) {
// set the owning side to null (unless already changed)
if ($discution->getReclamation() === $this) {
$discution->setReclamation(null);
}
}
return $this;
}
public function getTypereclamation(): ?TypeReclamation
{
return $this->typereclamation;
}
public function setTypereclamation(?TypeReclamation $typereclamation): self
{
$this->typereclamation = $typereclamation;
return $this;
}
public function getProposition(): ?Proposition
{
return $this->proposition;
}
public function setProposition(?Proposition $proposition): self
{
$this->proposition = $proposition;
return $this;
}
public function getEtatreclamation(): ?EtatReclamation
{
return $this->etatreclamation;
}
public function setEtatreclamation(?EtatReclamation $etatreclamation): self
{
$this->etatreclamation = $etatreclamation;
return $this;
}
public function getCommande(): ?Order
{
return $this->commande;
}
public function setCommande(?Order $commande): self
{
$this->commande = $commande;
return $this;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(?User $user): self
{
$this->user = $user;
return $this;
}
}