docs(catalogue): contrat exact des FK a la suppression produit #27

Merged
Corentin merged 1 commit from fix/product-delete-fk-audit into dev 2026-06-16 14:21:28 +02:00

1 commit

Author SHA1 Message Date
Imugiii
4e7a07bfe0 docs(catalogue): contrat exact des FK a la suppression produit (CASCADE product_ingredient)
All checks were successful
CI / php-lint (pull_request) Successful in 23s
CI / php-lint (push) Successful in 20s
CI / static-tests (push) Successful in 38s
CI / auto-merge (pull_request) Successful in 6s
CI / secret-scan (pull_request) Successful in 12s
CI / static-tests (pull_request) Successful in 32s
CI / auto-merge (push) Has been skipped
CI / secret-scan (push) Successful in 9s
Le docblock de ProductRepository pretendait que la suppression dure est bloquee
si le produit est reference (4 FK RESTRICT listees), en omettant que
product_ingredient.product_id est ON DELETE CASCADE : un produit avec une recette
mais sans reference commande/menu se supprime (la recette est cascade-supprimee),
ce qui contredit le contrat affiche.

La cascade est le comportement VOULU (la recette appartient au produit). Correctif
de contrat, sans changement de comportement :
- docblock ProductRepository : topologie FK reelle (RESTRICT bloquants vs CASCADE
  product_ingredient), + TODO trace audit du nb de lignes recette (phase stock).
- commentaire au site de suppression dans ProductController.

Differe (assume) : tracer le compte de lignes product_ingredient cascade dans
audit_log. La table est vide (domaine recettes/stock non construit) ; la trace
sera concue avec cette feature. 188 tests verts, PHPStan L6 propre.
2026-06-16 12:04:50 +00:00