| 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>
This commit was merged in pull request #33.
This commit is contained in:
121
src/Entity/Bovine.php
Normal file
121
src/Entity/Bovine.php
Normal file
@@ -0,0 +1,121 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
use ApiPlatform\Metadata\ApiResource;
|
||||
use ApiPlatform\Metadata\Get;
|
||||
use ApiPlatform\Metadata\GetCollection;
|
||||
use ApiPlatform\Metadata\Patch;
|
||||
use ApiPlatform\Metadata\Post;
|
||||
use DateTimeImmutable;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Component\Serializer\Attribute\Context;
|
||||
use Symfony\Component\Serializer\Attribute\Groups;
|
||||
use Symfony\Component\Serializer\Normalizer\DateTimeNormalizer;
|
||||
|
||||
#[ORM\Entity]
|
||||
#[ORM\Table(name: 'bovine')]
|
||||
#[ORM\UniqueConstraint(name: 'uniq_bovine_national_number', columns: ['national_number'])]
|
||||
#[ApiResource(
|
||||
operations: [
|
||||
new Get(
|
||||
requirements: ['id' => '\d+'],
|
||||
normalizationContext: ['groups' => ['bovine:read']],
|
||||
),
|
||||
new GetCollection(
|
||||
normalizationContext: ['groups' => ['bovine:read']],
|
||||
),
|
||||
new Post(
|
||||
normalizationContext: ['groups' => ['bovine:read']],
|
||||
denormalizationContext: ['groups' => ['bovine:write']],
|
||||
security: "is_granted('ROLE_ADMIN')",
|
||||
),
|
||||
new Patch(
|
||||
requirements: ['id' => '\d+'],
|
||||
normalizationContext: ['groups' => ['bovine:read']],
|
||||
denormalizationContext: ['groups' => ['bovine:write']],
|
||||
security: "is_granted('ROLE_ADMIN')",
|
||||
),
|
||||
],
|
||||
security: "is_granted('ROLE_USER')",
|
||||
)]
|
||||
class Bovine
|
||||
{
|
||||
#[ORM\Id]
|
||||
#[ORM\GeneratedValue]
|
||||
#[ORM\Column]
|
||||
#[Groups(['bovine:read'])]
|
||||
private ?int $id = null;
|
||||
|
||||
#[ORM\Column(length: 50)]
|
||||
#[Groups(['bovine:read', 'bovine:write'])]
|
||||
private string $nationalNumber = '';
|
||||
|
||||
#[ORM\Column(nullable: true)]
|
||||
#[Groups(['bovine:read', 'bovine:write'])]
|
||||
private ?int $receivedWeight = null;
|
||||
|
||||
#[ORM\Column(type: 'date_immutable', nullable: true)]
|
||||
#[Groups(['bovine:read', 'bovine:write'])]
|
||||
#[Context([DateTimeNormalizer::FORMAT_KEY => 'Y-m-d'])]
|
||||
private ?DateTimeImmutable $arrivalDate = null;
|
||||
|
||||
#[ORM\ManyToOne(inversedBy: 'bovines')]
|
||||
#[Groups(['bovine:read', 'bovine:write'])]
|
||||
private ?BuildingCase $buildingCase = null;
|
||||
|
||||
public function getId(): ?int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function getNationalNumber(): string
|
||||
{
|
||||
return $this->nationalNumber;
|
||||
}
|
||||
|
||||
public function setNationalNumber(string $nationalNumber): static
|
||||
{
|
||||
$this->nationalNumber = $nationalNumber;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getReceivedWeight(): ?int
|
||||
{
|
||||
return $this->receivedWeight;
|
||||
}
|
||||
|
||||
public function setReceivedWeight(?int $receivedWeight): static
|
||||
{
|
||||
$this->receivedWeight = $receivedWeight;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getArrivalDate(): ?DateTimeImmutable
|
||||
{
|
||||
return $this->arrivalDate;
|
||||
}
|
||||
|
||||
public function setArrivalDate(?DateTimeImmutable $arrivalDate): static
|
||||
{
|
||||
$this->arrivalDate = $arrivalDate;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getBuildingCase(): ?BuildingCase
|
||||
{
|
||||
return $this->buildingCase;
|
||||
}
|
||||
|
||||
public function setBuildingCase(?BuildingCase $buildingCase): static
|
||||
{
|
||||
$this->buildingCase = $buildingCase;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
@@ -11,6 +11,7 @@ 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')]
|
||||
@@ -48,9 +49,25 @@ class Building
|
||||
#[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->receptions = new ArrayCollection();
|
||||
$this->buildingCases = new ArrayCollection();
|
||||
$this->buildingLayout = new ArrayCollection();
|
||||
}
|
||||
|
||||
public function getId(): ?int
|
||||
@@ -89,4 +106,41 @@ class Building
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
210
src/Entity/BuildingCase.php
Normal file
210
src/Entity/BuildingCase.php
Normal file
@@ -0,0 +1,210 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
use ApiPlatform\Metadata\ApiResource;
|
||||
use ApiPlatform\Metadata\Get;
|
||||
use ApiPlatform\OpenApi\Model\Operation as OpenApiOperation;
|
||||
use App\Repository\BuildingCaseRepository;
|
||||
use App\State\BuildingCaseWeightsReportProvider;
|
||||
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(repositoryClass: BuildingCaseRepository::class)]
|
||||
#[ApiResource(
|
||||
operations: [
|
||||
new Get(
|
||||
uriTemplate: '/building_cases/{id}/weights-report',
|
||||
requirements: ['id' => '\d+'],
|
||||
openapi: new OpenApiOperation(
|
||||
summary: 'Render case weights report',
|
||||
description: 'Returns a PDF report of bovines stored in the selected case.',
|
||||
),
|
||||
output: false,
|
||||
provider: BuildingCaseWeightsReportProvider::class,
|
||||
),
|
||||
],
|
||||
security: "is_granted('ROLE_USER')",
|
||||
)]
|
||||
class BuildingCase
|
||||
{
|
||||
#[ORM\Id]
|
||||
#[ORM\GeneratedValue]
|
||||
#[ORM\Column]
|
||||
#[Groups(['building:read'])]
|
||||
private ?int $id = null;
|
||||
|
||||
#[ORM\Column]
|
||||
#[Groups(['building:read'])]
|
||||
#[SerializedName('caseNumber')]
|
||||
private ?int $case_number = null;
|
||||
|
||||
#[ORM\Column(length: 255)]
|
||||
#[Groups(['building:read'])]
|
||||
private ?string $code = null;
|
||||
|
||||
#[ORM\Column]
|
||||
#[Groups(['building:read'])]
|
||||
private ?int $capacity = null;
|
||||
|
||||
/**
|
||||
* @var Collection<int, BuildingCasePosition>
|
||||
*/
|
||||
#[ORM\OneToMany(targetEntity: BuildingCasePosition::class, mappedBy: 'buildingCase')]
|
||||
private Collection $id_case_position;
|
||||
|
||||
#[ORM\ManyToOne(inversedBy: 'buildingCases')]
|
||||
private ?Building $id_building = null;
|
||||
|
||||
#[ORM\ManyToOne(inversedBy: 'id_case')]
|
||||
#[Groups(['building:read'])]
|
||||
private ?Statut $statut = null;
|
||||
|
||||
/**
|
||||
* @var Collection<int, Bovine>
|
||||
*/
|
||||
#[ORM\OneToMany(targetEntity: Bovine::class, mappedBy: 'buildingCase')]
|
||||
private Collection $bovines;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->id_case_position = new ArrayCollection();
|
||||
$this->bovines = new ArrayCollection();
|
||||
}
|
||||
|
||||
public function getId(): ?int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function setId(int $id): static
|
||||
{
|
||||
$this->id = $id;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCaseNumber(): ?int
|
||||
{
|
||||
return $this->case_number;
|
||||
}
|
||||
|
||||
public function setCaseNumber(int $case_number): static
|
||||
{
|
||||
$this->case_number = $case_number;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCode(): ?string
|
||||
{
|
||||
return $this->code;
|
||||
}
|
||||
|
||||
public function setCode(string $code): static
|
||||
{
|
||||
$this->code = $code;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCapacity(): ?int
|
||||
{
|
||||
return $this->capacity;
|
||||
}
|
||||
|
||||
public function setCapacity(int $capacity): static
|
||||
{
|
||||
$this->capacity = $capacity;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection<int, BuildingCasePosition>
|
||||
*/
|
||||
public function getIdCasePosition(): Collection
|
||||
{
|
||||
return $this->id_case_position;
|
||||
}
|
||||
|
||||
public function addIdCasePosition(BuildingCasePosition $idCasePosition): static
|
||||
{
|
||||
if (!$this->id_case_position->contains($idCasePosition)) {
|
||||
$this->id_case_position->add($idCasePosition);
|
||||
$idCasePosition->setBuildingCase($this);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function removeIdCasePosition(BuildingCasePosition $idCasePosition): static
|
||||
{
|
||||
if ($this->id_case_position->removeElement($idCasePosition)) {
|
||||
// set the owning side to null (unless already changed)
|
||||
if ($idCasePosition->getBuildingCase() === $this) {
|
||||
$idCasePosition->setBuildingCase(null);
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getIdBuilding(): ?Building
|
||||
{
|
||||
return $this->id_building;
|
||||
}
|
||||
|
||||
public function setIdBuilding(?Building $id_building): static
|
||||
{
|
||||
$this->id_building = $id_building;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getStatut(): ?Statut
|
||||
{
|
||||
return $this->statut;
|
||||
}
|
||||
|
||||
public function setStatut(?Statut $statut): static
|
||||
{
|
||||
$this->statut = $statut;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection<int, Bovine>
|
||||
*/
|
||||
public function getBovines(): Collection
|
||||
{
|
||||
return $this->bovines;
|
||||
}
|
||||
|
||||
public function addBovine(Bovine $bovine): static
|
||||
{
|
||||
if (!$this->bovines->contains($bovine)) {
|
||||
$this->bovines->add($bovine);
|
||||
$bovine->setBuildingCase($this);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function removeBovine(Bovine $bovine): static
|
||||
{
|
||||
if ($this->bovines->removeElement($bovine)) {
|
||||
if ($bovine->getBuildingCase() === $this) {
|
||||
$bovine->setBuildingCase(null);
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
146
src/Entity/BuildingCasePosition.php
Normal file
146
src/Entity/BuildingCasePosition.php
Normal file
@@ -0,0 +1,146 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
use App\Repository\BuildingCasePositionRepository;
|
||||
use Doctrine\ORM\Mapping as ORM;
|
||||
use Symfony\Component\Serializer\Attribute\Groups;
|
||||
use Symfony\Component\Serializer\Attribute\SerializedName;
|
||||
|
||||
#[ORM\Entity(repositoryClass: BuildingCasePositionRepository::class)]
|
||||
class BuildingCasePosition
|
||||
{
|
||||
#[ORM\Id]
|
||||
#[ORM\GeneratedValue]
|
||||
#[ORM\Column]
|
||||
#[Groups(['building:read'])]
|
||||
private ?int $id = null;
|
||||
|
||||
#[ORM\Column]
|
||||
#[Groups(['building:read'])]
|
||||
private ?int $x = null;
|
||||
|
||||
#[ORM\Column]
|
||||
#[Groups(['building:read'])]
|
||||
private ?int $y = null;
|
||||
|
||||
#[ORM\Column]
|
||||
#[Groups(['building:read'])]
|
||||
private ?int $w = null;
|
||||
|
||||
#[ORM\Column]
|
||||
#[Groups(['building:read'])]
|
||||
private ?int $h = null;
|
||||
|
||||
#[ORM\Column(length: 255)]
|
||||
#[Groups(['building:read'])]
|
||||
#[SerializedName('renderOrder')]
|
||||
private ?string $render_order = null;
|
||||
|
||||
#[ORM\ManyToOne(inversedBy: 'id_case_position')]
|
||||
#[ORM\JoinColumn(nullable: false)]
|
||||
private ?BuildingLayout $buildingLayout = null;
|
||||
|
||||
#[ORM\ManyToOne(inversedBy: 'id_case_position')]
|
||||
#[ORM\JoinColumn(nullable: false)]
|
||||
#[Groups(['building:read'])]
|
||||
private ?BuildingCase $buildingCase = null;
|
||||
|
||||
public function getId(): ?int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function setId(int $id): static
|
||||
{
|
||||
$this->id = $id;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getX(): ?int
|
||||
{
|
||||
return $this->x;
|
||||
}
|
||||
|
||||
public function setX(int $x): static
|
||||
{
|
||||
$this->x = $x;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getY(): ?int
|
||||
{
|
||||
return $this->y;
|
||||
}
|
||||
|
||||
public function setY(int $y): static
|
||||
{
|
||||
$this->y = $y;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getW(): ?int
|
||||
{
|
||||
return $this->w;
|
||||
}
|
||||
|
||||
public function setW(int $w): static
|
||||
{
|
||||
$this->w = $w;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getH(): ?int
|
||||
{
|
||||
return $this->h;
|
||||
}
|
||||
|
||||
public function setH(int $h): static
|
||||
{
|
||||
$this->h = $h;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getRenderOrder(): ?string
|
||||
{
|
||||
return $this->render_order;
|
||||
}
|
||||
|
||||
public function setRenderOrder(string $render_order): static
|
||||
{
|
||||
$this->render_order = $render_order;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getBuildingLayout(): ?BuildingLayout
|
||||
{
|
||||
return $this->buildingLayout;
|
||||
}
|
||||
|
||||
public function setBuildingLayout(?BuildingLayout $buildingLayout): static
|
||||
{
|
||||
$this->buildingLayout = $buildingLayout;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getBuildingCase(): ?BuildingCase
|
||||
{
|
||||
return $this->buildingCase;
|
||||
}
|
||||
|
||||
public function setBuildingCase(?BuildingCase $buildingCase): static
|
||||
{
|
||||
$this->buildingCase = $buildingCase;
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
141
src/Entity/BuildingLayout.php
Normal file
141
src/Entity/BuildingLayout.php
Normal file
@@ -0,0 +1,141 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
use App\Repository\BuildingLayoutRepository;
|
||||
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(repositoryClass: BuildingLayoutRepository::class)]
|
||||
class BuildingLayout
|
||||
{
|
||||
#[ORM\Id]
|
||||
#[ORM\GeneratedValue]
|
||||
#[ORM\Column]
|
||||
#[Groups(['building:read'])]
|
||||
private ?int $id = null;
|
||||
|
||||
#[ORM\Column(length: 255)]
|
||||
#[Groups(['building:read'])]
|
||||
private ?string $name = null;
|
||||
|
||||
#[ORM\Column]
|
||||
#[Groups(['building:read'])]
|
||||
private ?int $columns = null;
|
||||
|
||||
#[ORM\Column]
|
||||
#[Groups(['building:read'])]
|
||||
private ?int $rows = null;
|
||||
|
||||
#[ORM\ManyToOne(inversedBy: 'buildingLayout')]
|
||||
#[ORM\JoinColumn(nullable: false)]
|
||||
private ?Building $id_building = null;
|
||||
|
||||
/**
|
||||
* @var Collection<int, BuildingCasePosition>
|
||||
*/
|
||||
#[ORM\OneToMany(targetEntity: BuildingCasePosition::class, mappedBy: 'buildingLayout')]
|
||||
#[Groups(['building:read'])]
|
||||
#[SerializedName('casePositions')]
|
||||
private Collection $id_case_position;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->id_case_position = new ArrayCollection();
|
||||
}
|
||||
|
||||
public function getId(): ?int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function setId(int $id): static
|
||||
{
|
||||
$this->id = $id;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getName(): ?string
|
||||
{
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
public function setName(string $name): static
|
||||
{
|
||||
$this->name = $name;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getColumns(): ?int
|
||||
{
|
||||
return $this->columns;
|
||||
}
|
||||
|
||||
public function setColumns(int $columns): static
|
||||
{
|
||||
$this->columns = $columns;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getRows(): ?int
|
||||
{
|
||||
return $this->rows;
|
||||
}
|
||||
|
||||
public function setRows(int $rows): static
|
||||
{
|
||||
$this->rows = $rows;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getIdBuilding(): ?Building
|
||||
{
|
||||
return $this->id_building;
|
||||
}
|
||||
|
||||
public function setIdBuilding(?Building $id_building): static
|
||||
{
|
||||
$this->id_building = $id_building;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection<int, BuildingCasePosition>
|
||||
*/
|
||||
public function getIdCasePosition(): Collection
|
||||
{
|
||||
return $this->id_case_position;
|
||||
}
|
||||
|
||||
public function addIdCasePosition(BuildingCasePosition $idCasePosition): static
|
||||
{
|
||||
if (!$this->id_case_position->contains($idCasePosition)) {
|
||||
$this->id_case_position->add($idCasePosition);
|
||||
$idCasePosition->setBuildingLayout($this);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function removeIdCasePosition(BuildingCasePosition $idCasePosition): static
|
||||
{
|
||||
if ($this->id_case_position->removeElement($idCasePosition)) {
|
||||
// set the owning side to null (unless already changed)
|
||||
if ($idCasePosition->getBuildingLayout() === $this) {
|
||||
$idCasePosition->setBuildingLayout(null);
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
139
src/Entity/Statut.php
Normal file
139
src/Entity/Statut.php
Normal file
@@ -0,0 +1,139 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Entity;
|
||||
|
||||
use ApiPlatform\Metadata\ApiResource;
|
||||
use ApiPlatform\Metadata\Get;
|
||||
use ApiPlatform\Metadata\GetCollection;
|
||||
use App\Repository\StatutRepository;
|
||||
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(repositoryClass: StatutRepository::class)]
|
||||
#[ApiResource(
|
||||
operations: [
|
||||
new Get(
|
||||
requirements: ['id' => '\d+'],
|
||||
normalizationContext: ['groups' => ['building:read']],
|
||||
),
|
||||
new GetCollection(
|
||||
normalizationContext: ['groups' => ['building:read']],
|
||||
),
|
||||
],
|
||||
security: "is_granted('ROLE_USER')",
|
||||
)]
|
||||
class Statut
|
||||
{
|
||||
#[ORM\Id]
|
||||
#[ORM\GeneratedValue]
|
||||
#[ORM\Column]
|
||||
#[Groups(['building:read'])]
|
||||
private ?int $id = null;
|
||||
|
||||
#[ORM\Column(length: 255)]
|
||||
#[Groups(['building:read'])]
|
||||
private ?string $label = null;
|
||||
|
||||
#[ORM\Column(length: 255)]
|
||||
#[Groups(['building:read'])]
|
||||
private ?string $code = null;
|
||||
|
||||
#[ORM\Column(length: 255)]
|
||||
#[Groups(['building:read'])]
|
||||
#[SerializedName('couleur')]
|
||||
private ?string $color = null;
|
||||
|
||||
/**
|
||||
* @var Collection<int, BuildingCase>
|
||||
*/
|
||||
#[ORM\OneToMany(targetEntity: BuildingCase::class, mappedBy: 'statut')]
|
||||
private Collection $id_case;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
$this->id_case = new ArrayCollection();
|
||||
}
|
||||
|
||||
public function getId(): ?int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
public function setId(int $id): static
|
||||
{
|
||||
$this->id = $id;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getLabel(): ?string
|
||||
{
|
||||
return $this->label;
|
||||
}
|
||||
|
||||
public function setLabel(string $label): static
|
||||
{
|
||||
$this->label = $label;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getCode(): ?string
|
||||
{
|
||||
return $this->code;
|
||||
}
|
||||
|
||||
public function setCode(string $code): static
|
||||
{
|
||||
$this->code = $code;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function getColor(): ?string
|
||||
{
|
||||
return $this->color;
|
||||
}
|
||||
|
||||
public function setColor(string $color): static
|
||||
{
|
||||
$this->color = $color;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Collection<int, BuildingCase>
|
||||
*/
|
||||
public function getIdCase(): Collection
|
||||
{
|
||||
return $this->id_case;
|
||||
}
|
||||
|
||||
public function addIdCase(BuildingCase $idCase): static
|
||||
{
|
||||
if (!$this->id_case->contains($idCase)) {
|
||||
$this->id_case->add($idCase);
|
||||
$idCase->setStatut($this);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
public function removeIdCase(BuildingCase $idCase): static
|
||||
{
|
||||
if ($this->id_case->removeElement($idCase)) {
|
||||
// set the owning side to null (unless already changed)
|
||||
if ($idCase->getStatut() === $this) {
|
||||
$idCase->setStatut(null);
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user