<?php
namespace App\Entity;
use App\Repository\SavRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass=SavRepository::class)
* @ORM\Table(name="`sav`")
*/
class Sav
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private ?int $id = null;
/**
* @ORM\ManyToOne(targetEntity=User::class, inversedBy="savs")
*/
private ?User $user;
/**
* @ORM\ManyToOne(targetEntity=Order::class, inversedBy="savs")
*/
private ?Order $order;
/**
* @ORM\ManyToOne(targetEntity=Cart::class, inversedBy="savs")
*/
private ?Cart $cart;
/**
* @ORM\ManyToMany(targetEntity=Imei::class, mappedBy="savs", cascade={"persist"})
*/
private $imeis;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $date;
/**
* @ORM\ManyToOne(targetEntity=Status::class, inversedBy="savs")
*/
private $status;
/**
* @ORM\Column(type="text", nullable=false)
*/
private $reason;
/**
* @ORM\Column(type="text", nullable=true)
* @Assert\Expression(
* "true !== this.getReason()",
* message="Veuillez préciser une autre raison ou selectionner une raison proposée"
* )
*/
private $other;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $description;
/**
* @ORM\Column(type="text", nullable=true)
*/
private $comment;
public function __construct()
{
$this->imeis = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getDate(): ?\DateTimeInterface
{
return $this->date;
}
public function setDate(?\DateTimeInterface $date): static
{
$this->date = $date;
return $this;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(?User $user): static
{
$this->user = $user;
return $this;
}
public function getOrder(): ?Order
{
return $this->order;
}
public function setOrder(?Order $order): static
{
$this->order = $order;
return $this;
}
public function getCart(): ?Cart
{
return $this->cart;
}
public function setCart(?Cart $cart): static
{
$this->cart = $cart;
return $this;
}
public function getStatus(): ?Status
{
return $this->status;
}
public function setStatus(?Status $status): static
{
$this->status = $status;
return $this;
}
/**
* @return Collection<int, Imei>
*/
public function getImeis(): Collection
{
return $this->imeis;
}
public function addImei(Imei $imei): static
{
if (!$this->imeis->contains($imei)) {
$this->imeis->add($imei);
}
return $this;
}
public function removeImei(Imei $imei): static
{
$this->imeis->removeElement($imei);
return $this;
}
public function setReason($reason) {
$this->reason = $reason;
}
public function getReason() {
return $this->reason;
}
public function setOther($other) {
$this->other = $other;
}
public function getOther() {
return $this->other;
}
public function getDescription(): ?string
{
return $this->description;
}
public function setDescription(?string $description): static
{
$this->description = $description;
return $this;
}
public function getComment(): ?string
{
return $this->comment;
}
public function setComment(?string $comment): static
{
$this->comment = $comment;
return $this;
}
}