<?phpnamespace App\Entity;use App\Entity\Part;use App\Repository\LibraryRepository;use Doctrine\Common\Collections\ArrayCollection;use Doctrine\Common\Collections\Collection;use Doctrine\ORM\Mapping as ORM;use Symfony\Component\Validator\Constraints as Assert;/** * @ORM\Entity(repositoryClass=LibraryRepository::class) */class Library{ /** * @ORM\Id * @ORM\GeneratedValue * @ORM\Column(type="integer") */ private $id; /** * @ORM\Column(type="string", length=100) * @Assert\NotBlank */ private $name; /** * @ORM\Column(type="datetime") */ private $created_at; /** * @ORM\Column(type="datetime") */ private $update_at; /** * @ORM\ManyToOne(targetEntity=Company::class, inversedBy="libraries") * @ORM\JoinColumn(onDelete="CASCADE") * @ORM\JoinColumn(nullable=false) * @Assert\NotBlank */ private $company; /** * @ORM\ManyToMany(targetEntity=Part::class, mappedBy="libraries") * @ORM\JoinColumn(onDelete="CASCADE") * @ORM\OrderBy({"name" = "ASC"}) */ private $parts; /** * @ORM\Column(type="text", nullable=true) */ private $observations; /** * @ORM\Column(type="integer") */ private $parent_id; public function __construct() { $this->created_at = new \DateTime(); $this->markAsUpdated(); $this->parts = new ArrayCollection(); } public function getId(): ?int { return $this->id; } public function getName(): ?string { return $this->name; } public function setName(string $name): self { $this->name = $name; return $this; } public function getCreatedAt(): ?\DateTimeInterface { return $this->created_at; } public function getUpdateAt(): ?\DateTimeInterface { return $this->update_at; } /** * Set the value of updatedAt * * @param \DateTime $updatedAt */ public function markAsUpdated() : void { $this->update_at = new \DateTime(); } public function getCompany(): ?Company { return $this->company; } public function setCompany(?Company $company): self { $this->company = $company; return $this; } /** * @return Collection|Part[] */ public function getParts(): Collection { return $this->parts; } public function addPart(Part $part): self { if (!$this->parts->contains($part)) { $this->parts[] = $part; $part->addLibrary($this); } return $this; } public function removePart(Part $part): self { if ($this->parts->removeElement($part)) { $part->removeLibrary($this); } return $this; } public function getObservations(): ?string { return $this->observations; } public function setObservations(?string $observations): self { $this->observations = $observations; return $this; } public function getParentId(): ?int { return $this->parent_id; } public function setParentId(int $parent_id): self { $this->parent_id = $parent_id; return $this; }}