- Migration FK CASCADE/SET NULL pour toutes les FK vers pieces.id (miroir
de la fix Composant) + cleanup des orphelins existants avec audit log
- Helper ensurePieceExists() qui catch EntityNotFoundException dans
MachineStructureController et CustomFieldValueController
- Script SQL standalone scripts/cleanup_orphan_piece_refs.sql pour
nettoyer la prod sans attendre la migration
- Affiche les machines (avec leur site) utilisant la pièce avant la
confirmation de suppression