Commit Graph

2 Commits

Author SHA1 Message Date
Matthieu 9202d2ee6f feat(commercial) : messages de validation FR sur les contraintes back + garde-fou (ERP-107)
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 1m45s
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 1m12s
Audit et complete les messages des contraintes #[Assert\*] des entites metier
(pendant back du mapping d'erreur par champ front ERP-101) :

- Message FR explicite sur toutes les contraintes (Email, NotBlank, Length,
  Bic, Iban, PositiveOrZero, Count...) des entites Client, ClientContact,
  ClientAddress, ClientRib, Category, Role, User.
- Ajout des Assert\Length manquantes calees sur le length de la colonne ORM
  (telephones VARCHAR(20), siren, nTva, accountNumber, username...) : evite
  une erreur Postgres 500 non rattachee au champ au profit d'une 422 propre.
- Locale FR globale (symfony/translation + default_locale: fr) comme filet
  pour les messages natifs non surcharges.
- Garde-fou tests/Architecture/EntityConstraintsHaveFrenchMessageTest : echoue
  si une contrainte n'a pas de message FR explicite ou si Assert\Length.max
  diverge du length ORM (whitelist justifiee pour les formats Bic/Iban/Regex).
- Test fonctionnel du JSON 422 reel (message FR + propertyPath consommable
  par useFormErrors cote front).
- Convention documentee dans .claude/rules/backend.md.

Tests : 469 verts (1793 assertions).
2026-06-04 10:11:33 +02:00
matthieu ddf874a4e1 [ERP-75] Versionner symfony.lock (#36)
Auto Tag Develop / tag (push) Successful in 7s
## Problème

`symfony.lock` (registre des recipes Flex appliquées) n'était ni tracké, ni présent. Conséquence : chaque `composer require` rejouait **toutes** les recipes → pollution répétée de `.env`, `config/bundles.php`, `docker-compose.yml` et recréation de scaffolding parasite (`src/Entity/`, `src/Controller/`, `src/Repository/`...). `composer recipes` listait toutes les recipes en `recipe not installed`.

## Fix

- Génération de `symfony.lock` via `composer recipes:install --force` (20 recipes enregistrées avec leurs refs).
- Aucune pollution embarquée : seuls `symfony.lock` (nouveau) et une ligne de doc dans `CLAUDE.md` (règle n°14) sont committés. `composer.json`/`composer.lock` inchangés.
- Doc : `symfony.lock` est désormais documenté comme versionné (ne jamais le `.gitignore`).

## Validation

- `composer recipes` liste désormais toutes les recipes comme **installées** (plus aucun `not installed`).
- Test témoin : `composer require --dev fakerphp/faker` ne touche QUE `composer.json`/`composer.lock` (+ le paquet), **zéro re-scaffolding global**. Test annulé ensuite (état restauré à l'identique).
- Pre-commit : eslint + 322 tests PHPUnit OK.

> Reviewer souhaité : Tristan · merge en squash.

---------

Co-authored-by: Matthieu <contact@malio.fr>
Reviewed-on: #36
Co-authored-by: THOLOT DECHENE Matthieu <matthieu@yuno.malio.fr>
Co-committed-by: THOLOT DECHENE Matthieu <matthieu@yuno.malio.fr>
2026-06-01 12:47:23 +00:00