From 3a752693231f47ee42153a9ba150c43d77387254 Mon Sep 17 00:00:00 2001 From: r-dev Date: Wed, 25 Mar 2026 22:12:19 +0100 Subject: [PATCH] fix(composant) : replace unique constraint from name to reference validation Remove DB unique index on composants.name and add Symfony UniqueEntity validation on reference field with explicit error message. Co-Authored-By: Claude Opus 4.6 (1M context) --- migrations/Version20260325214500.php | 26 ++++++++++++++++++++++++++ src/Entity/Composant.php | 4 +++- 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 migrations/Version20260325214500.php diff --git a/migrations/Version20260325214500.php b/migrations/Version20260325214500.php new file mode 100644 index 0000000..c8ffef8 --- /dev/null +++ b/migrations/Version20260325214500.php @@ -0,0 +1,26 @@ +addSql('DROP INDEX IF EXISTS uniq_f95a31995e237e06'); + } + + public function down(Schema $schema): void + { + $this->addSql('CREATE UNIQUE INDEX IF NOT EXISTS uniq_f95a31995e237e06 ON composants (name)'); + } +} diff --git a/src/Entity/Composant.php b/src/Entity/Composant.php index d04217a..e0e63c3 100644 --- a/src/Entity/Composant.php +++ b/src/Entity/Composant.php @@ -23,8 +23,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: 'Un composant avec cette référence existe déjà.')] #[ORM\Entity(repositoryClass: ComposantRepository::class)] #[ORM\Table(name: 'composants')] #[ORM\HasLifecycleCallbacks] @@ -54,7 +56,7 @@ class Composant #[Groups(['composant:read', 'document:list'])] private ?string $id = null; - #[ORM\Column(type: Types::STRING, length: 255, unique: true)] + #[ORM\Column(type: Types::STRING, length: 255)] #[Groups(['composant:read', 'document:list'])] private string $name;