<?php
namespace App\Entity;
use App\Repository\ClasseurRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use phpDocumentor\Reflection\Types\Integer;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass:ClasseurRepository ::class)]
class Classeur
{
//Déclarations des variables
#[ORM\Id]
#[ORM\Column(name: 'id_classeur',type: 'integer', nullable: false)]
#[ORM\GeneratedValue(strategy:'IDENTITY')]
private ?int $id;
#[ORM\Column(length: 255, nullable: false)]
private ?string $nom = null;
#[ORM\Column(length: 255, nullable: false)]
private ?string $couleur = null;
//Associations
#[ORM\OneToMany(mappedBy:'classeur', targetEntity: Page::class, orphanRemoval: true)]
private ?Collection $pages;
#[ORM\ManyToOne(targetEntity: Armoire::class, cascade: ['persist'], fetch: "EAGER", inversedBy: 'classeurs')]
#[ORM\JoinColumn(referencedColumnName: 'id_armoire', nullable: false)]
private ?Armoire $armoire = null;
#[ORM\ManyToOne(targetEntity: Etagere::class, cascade: ['persist'], fetch: "EAGER", inversedBy: 'classeurs')]
#[ORM\JoinColumn(referencedColumnName: 'id_etagere', nullable: false)]
private ?Etagere $etagere = null;
//Constructeur
public function __construct()
{
$this->pages = new ArrayCollection();
}
//Getters et Setters
//Fonction des collections
/**
* @return Collection<int, Page>
*/
public function getPages(): Collection
{
return $this->pages;
}
public function addPage(Page $page): self
{
if (!$this->pages->contains($page)) {
$this->pages->add($page);
$page->setClasseur($this);
}
return $this;
}
public function removePage(page $page): self
{
if ($this->pages->removeElement($page)) {
// set the owning side to null (unless already changed)
if ($page->getClasseur() === $this) {
$page->setClasseur(null);
}
}
return $this;
}
//Fonctions des variables
/**
* @return int|null
*/
public function getId(): ?int
{
return $this->id;
}
/**
* @return string|null
*/
public function getNom(): ?string
{
return $this->nom;
}
/**
* @param string|null $nom
*/
public function setNom(?string $nom): void
{
$this->nom = $nom;
}
/**
* @return string|null
*/
public function getCouleur(): ?string
{
return $this->couleur;
}
/**
* @param string|null $couleur
*/
public function setCouleur(?string $couleur): void
{
$this->couleur = $couleur;
}
/**
* @return Armoire|null
*/
public function getArmoire(): ?Armoire
{
return $this->armoire;
}
/**
* @param Armoire|null $armoire
*/
public function setArmoire(?Armoire $armoire): void
{
$this->armoire = $armoire;
}
/**
* @return Etagere|null
*/
public function getEtagere(): ?Etagere
{
return $this->etagere;
}
/**
* @param Etagere|null $etagere
*/
public function setEtagere(?Etagere $etagere): void
{
$this->etagere = $etagere;
}
/**
* @return string|null
*/
public function getEtagereNom(): ?string
{
$etagere = $this->etagere;
if ($etagere){
return $etagere->getNom();
}
return null;
}
/**
* @return string|null
*/
public function getArmoireNom(): ?string
{
$armoire = $this->armoire;
if ($armoire){
return $armoire->getNom();
}
return null;
}
public function __toString(): string
{
return $this->nom ?? '';
}
}