docs(catalogue): contrat exact des FK a la suppression produit #27
No reviewers
Labels
No labels
auto-merge
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: AcadeNice/corentin_wakdo#27
Loading…
Add table
Reference in a new issue
No description provided.
Delete branch "fix/product-delete-fk-audit"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Finding LOW (audit 2026-06-16)
Le docblock de
ProductRepositoryaffirmait que la suppression dure est bloquee si le produit est reference (4 FK RESTRICT), en omettant queproduct_ingredient.product_idestON DELETE CASCADE. Un produit avec une recette mais sans reference commande/menu se supprime donc (recette cascade-supprimee), contredisant le contrat. Latent aujourd'hui :product_ingredientest vide (domaine recettes/stock non construit).Correctif (contrat, sans changement de comportement)
La cascade est voulue (la recette appartient au produit). On corrige donc le contrat, pas le comportement :
ProductRepository: topologie FK reelle (RESTRICT bloquants -> 422 ; CASCADEproduct_ingredient).ProductController::destroy).Differe (assume, documente)
Tracer dans
audit_logle nombre de lignesproduct_ingredientcascade-supprimees : reporte a la phase stock/recettes (table vide aujourd'hui ; la trace sera concue avec la feature, avec le support de test adequat). TODO inscrit dans le docblock.188 tests verts, PHPStan L6 propre. Pas de label auto-merge.