<?php
namespace App\Entity;
use App\Repository\TableauMesureRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\File;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
/**
* @Vich\Uploadable
*/
#[ORM\Entity(repositoryClass: TableauMesureRepository::class)]
class TableauMesure
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(type: 'integer')]
private $id;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private $reference;
#[ORM\ManyToOne(targetEntity: Bonnet::class, inversedBy: 'tableauMesures')]
private $bonnet;
#[ORM\ManyToMany(targetEntity: Taille::class, inversedBy: 'tableauMesures')]
private $tailles;
#[ORM\Column(type: 'datetime', nullable: true)]
private $date_creation;
#[ORM\Column(type: 'text', nullable: true)]
private $commentaire;
#[ORM\OneToMany(targetEntity: TableauMesureTermine::class, mappedBy: 'tableauMesure', cascade: ['persist', 'remove'])]
private $mesures_termine;
#[ORM\OneToMany(targetEntity: TableauMesureEnCours::class, mappedBy: 'tableauMesure', cascade: ['persist', 'remove'])]
private $mesures_en_cours;
#[ORM\Column(type: 'datetime', nullable: true)]
private $date_update;
/**
* @Vich\UploadableField(mapping="tableauMesure", fileNameProperty="image1")
*/
private ?\Symfony\Component\HttpFoundation\File\File $fichier1 = null;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private $image1;
/**
* @Vich\UploadableField(mapping="tableauMesure", fileNameProperty="image2")
*/
private ?\Symfony\Component\HttpFoundation\File\File $fichier2 = null;
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private $image2;
public function __clone()
{
if ($this->id) {
$this->id = null;
$mesuresTermineCollection = new ArrayCollection();
foreach ($this->mesures_termine as $termine) {
$termineClone = clone $termine;
$termineClone->setTableauMesure($this);
$mesuresTermineCollection->add($termineClone);
}
$this->mesures_termine = $mesuresTermineCollection;
$mesuresEnCoursCollection = new ArrayCollection();
foreach ($this->mesures_en_cours as $mesure) {
$mesureClone = clone $mesure;
$mesureClone->setTableauMesure($this);
$mesuresEnCoursCollection->add($mesureClone);
}
$this->mesures_en_cours = $mesuresEnCoursCollection;
return $this;
}
}
public function __construct()
{
$this->tailles = new ArrayCollection();
$this->date_creation = new \DateTime;
$this->mesures_termine = new ArrayCollection();
$this->mesures_en_cours = new ArrayCollection();
}
public function setFichier2(File $file = null)
{
$this->fichier2 = $file;
if ($file) {
$this->date_update = new \DateTime;
}
}
public function getFichier2()
{
return $this->fichier2;
}
public function setFichier1(File $file = null)
{
$this->fichier1 = $file;
if ($file) {
$this->date_update = new \DateTime;
}
}
public function getFichier1()
{
return $this->fichier1;
}
public function getId(): ?int
{
return $this->id;
}
public function getReference(): ?string
{
return $this->reference;
}
public function setReference(?string $reference): self
{
$this->reference = $reference;
return $this;
}
public function getBonnet(): ?Bonnet
{
return $this->bonnet;
}
public function setBonnet(?Bonnet $bonnet): self
{
$this->bonnet = $bonnet;
return $this;
}
/**
* @return Collection|Taille[]
*/
public function getTailles(): Collection
{
return $this->tailles;
}
public function addTaille(Taille $taille): self
{
if (!$this->tailles->contains($taille)) {
$this->tailles[] = $taille;
}
return $this;
}
public function removeTaille(Taille $taille): self
{
$this->tailles->removeElement($taille);
return $this;
}
public function getDateCreation(): ?\DateTimeInterface
{
return $this->date_creation;
}
public function setDateCreation(?\DateTimeInterface $date_creation): self
{
$this->date_creation = $date_creation;
return $this;
}
public function getCommentaire(): ?string
{
return $this->commentaire;
}
public function setCommentaire(?string $commentaire): self
{
$this->commentaire = $commentaire;
return $this;
}
/**
* @return Collection|TableauMesureTermine[]
*/
public function getMesuresTermine(): Collection
{
return $this->mesures_termine;
}
public function addMesureTermine(TableauMesureTermine $mesure): self
{
if (!$this->mesures_termine->contains($mesure)) {
$this->mesures_termine[] = $mesure;
$mesure->setTableauMesure($this);
}
return $this;
}
public function removeMesureTermine(TableauMesureTermine $mesure): self
{
if ($this->mesures_termine->removeElement($mesure)) {
// set the owning side to null (unless already changed)
if ($mesure->getTableauMesure() === $this) {
$mesure->setTableauMesure(null);
}
}
return $this;
}
public function getDateUpdate(): ?\DateTimeInterface
{
return $this->date_update;
}
public function setDateUpdate(?\DateTimeInterface $date_update): self
{
$this->date_update = $date_update;
return $this;
}
/**
* @return Collection|TableauMesureEnCours[]
*/
public function getMesuresEnCours(): Collection
{
return $this->mesures_en_cours;
}
public function addMesureEnCours(TableauMesureEnCours $mesure): self
{
if (!$this->mesures_en_cours->contains($mesure)) {
$this->mesures_en_cours[] = $mesure;
$mesure->setTableauMesure($this);
}
return $this;
}
public function removeMesureEnCours(TableauMesureEnCours $mesure): self
{
if ($this->mesures_en_cours->removeElement($mesure)) {
// set the owning side to null (unless already changed)
if ($mesure->getTableauMesure() === $this) {
$mesure->setTableauMesure(null);
}
}
return $this;
}
public function getImage1(): ?string
{
return $this->image1;
}
public function setImage1(?string $image1): self
{
$this->image1 = $image1;
return $this;
}
public function getImage2(): ?string
{
return $this->image2;
}
public function setImage2(?string $image2): self
{
$this->image2 = $image2;
return $this;
}
}