From 9661fd5d91360a1c3f12998fa2710f8290a1096a Mon Sep 17 00:00:00 2001 From: Matthieu Date: Mon, 2 Mar 2026 14:06:19 +0100 Subject: [PATCH] fix(entities) : add unique constraints for constructeur name and piece reference Add UniqueEntity validation on Constructeur.name and Piece.reference. Move unique DB constraint from piece name to piece reference column. Co-Authored-By: Claude Opus 4.6 --- src/Entity/Constructeur.php | 2 ++ src/Entity/Piece.php | 6 ++++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/Entity/Constructeur.php b/src/Entity/Constructeur.php index 16b81c2..2bc9d1f 100644 --- a/src/Entity/Constructeur.php +++ b/src/Entity/Constructeur.php @@ -17,7 +17,9 @@ use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Doctrine\DBAL\Types\Types; use Doctrine\ORM\Mapping as ORM; +use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; +#[UniqueEntity(fields: ['name'], message: 'Un fournisseur avec ce nom existe déjà.')] #[ORM\Entity(repositoryClass: ConstructeurRepository::class)] #[ORM\Table(name: 'constructeurs')] #[ORM\HasLifecycleCallbacks] diff --git a/src/Entity/Piece.php b/src/Entity/Piece.php index adf3b6f..88b5f7f 100644 --- a/src/Entity/Piece.php +++ b/src/Entity/Piece.php @@ -20,8 +20,10 @@ use Doctrine\Common\Collections\ArrayCollection; use Doctrine\Common\Collections\Collection; use Doctrine\DBAL\Types\Types; use Doctrine\ORM\Mapping as ORM; +use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity; use Symfony\Component\Serializer\Attribute\Groups; +#[UniqueEntity(fields: ['reference'], message: 'Une pièce avec cette référence existe déjà.')] #[ORM\Entity(repositoryClass: PieceRepository::class)] #[ORM\Table(name: 'pieces')] #[ORM\HasLifecycleCallbacks] @@ -47,11 +49,11 @@ class Piece #[Groups(['piece:read', 'document:list'])] private ?string $id = null; - #[ORM\Column(type: Types::STRING, length: 255, unique: true)] + #[ORM\Column(type: Types::STRING, length: 255)] #[Groups(['piece:read', 'document:list'])] private string $name; - #[ORM\Column(type: Types::STRING, length: 255, nullable: true)] + #[ORM\Column(type: Types::STRING, length: 255, unique: true, nullable: true)] #[Groups(['piece:read'])] private ?string $reference = null;