Files
Ferme/src/Entity/Building.php
tristan f263a11fe8
Some checks failed
Auto Tag Develop / tag (push) Has been cancelled
[#278] Plan du site (!33)
| Numéro du ticket | Titre du ticket |
|------------------|-----------------|
|        #278          |        Plan du site         |

## Description de la PR
[#278] Plan du site

## Modification du .env

## Check list

- [ ] Pas de régression
- [x] TU/TI/TF rédigée
- [x] TU/TI/TF OK
- [ ] CHANGELOG modifié

Co-authored-by: Matteo <matteo@yuno.malio.fr>
Reviewed-on: #33
Co-authored-by: tristan <tristan@yuno.malio.fr>
Co-committed-by: tristan <tristan@yuno.malio.fr>
2026-02-25 14:16:11 +00:00

147 lines
3.4 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Entity;
use ApiPlatform\Metadata\ApiResource;
use ApiPlatform\Metadata\Get;
use ApiPlatform\Metadata\GetCollection;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Serializer\Attribute\Groups;
use Symfony\Component\Serializer\Attribute\SerializedName;
#[ORM\Entity]
#[ORM\Table(name: 'building')]
#[ApiResource(
operations: [
new Get(
requirements: ['id' => '\d+'],
normalizationContext: ['groups' => ['building:read']],
),
new GetCollection(
normalizationContext: ['groups' => ['building:read']],
),
],
security: "is_granted('ROLE_USER')",
)]
class Building
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
#[Groups(['building:read', 'reception:read'])]
private ?int $id = null;
#[ORM\Column(length: 120)]
#[Groups(['building:read', 'reception:read'])]
private string $label = '';
#[ORM\Column(length: 50)]
#[Groups(['building:read', 'reception:read'])]
private string $code = '';
/**
* @var Collection<int, Reception>
*/
#[ORM\ManyToMany(targetEntity: Reception::class, mappedBy: 'buildings')]
private Collection $receptions;
/**
* @var Collection<int, BuildingCase>
*/
#[ORM\OneToMany(targetEntity: BuildingCase::class, mappedBy: 'id_building')]
private Collection $buildingCases;
/**
* @var Collection<int, BuildingLayout>
*/
#[ORM\OneToMany(targetEntity: BuildingLayout::class, mappedBy: 'id_building')]
#[Groups(['building:read'])]
#[SerializedName('layouts')]
private Collection $buildingLayout;
public function __construct()
{
$this->receptions = new ArrayCollection();
$this->buildingCases = new ArrayCollection();
$this->buildingLayout = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getLabel(): string
{
return $this->label;
}
public function setLabel(string $label): self
{
$this->label = $label;
return $this;
}
public function getCode(): string
{
return $this->code;
}
public function setCode(string $code): self
{
$this->code = $code;
return $this;
}
/**
* @return Collection<int, Reception>
*/
public function getReceptions(): Collection
{
return $this->receptions;
}
/**
* @return Collection<int, BuildingCase>
*/
public function getBuildingCases(): Collection
{
return $this->buildingCases;
}
public function addBuildingCase(BuildingCase $buildingCase): static
{
if (!$this->buildingCases->contains($buildingCase)) {
$this->buildingCases->add($buildingCase);
$buildingCase->setIdBuilding($this);
}
return $this;
}
public function removeBuildingCase(BuildingCase $buildingCase): static
{
if ($this->buildingCases->removeElement($buildingCase)) {
if ($buildingCase->getIdBuilding() === $this) {
$buildingCase->setIdBuilding(null);
}
}
return $this;
}
/**
* @return Collection<int, BuildingLayout>
*/
public function getBuildingLayout(): Collection
{
return $this->buildingLayout;
}
}