feat(machines) : ajoute le clonage par catégorie (structure seule)

Nouveau mode de clonage de machine via le paramètre `mode` de
POST /api/machines/{id}/clone :
- mode "full" (défaut) : comportement inchangé (clone complet)
- mode "structure" : ne recopie que les catégories des slots
  (modelType), composant/pièce/produit concrets laissés vides
  (slots à compléter), sans overrides ni custom field values

Front : sélecteur de mode dans la page de création de machine,
visible uniquement quand une machine source est choisie.
This commit is contained in:
Matthieu
2026-06-15 11:16:02 +02:00
parent b775718df6
commit 494298f981
5 changed files with 173 additions and 13 deletions
@@ -33,6 +33,9 @@ export function useMachineCreatePage() {
siteId: '',
reference: '',
cloneFromMachineId: '',
// 'full' = clone complet (composants/pièces concrets) ; 'structure' = catégories
// uniquement (slots à compléter).
cloneMode: 'full' as 'full' | 'structure',
})
// ---------------------------------------------------------------------------
@@ -57,6 +60,7 @@ export function useMachineCreatePage() {
result = await cloneMachine(newMachine.cloneFromMachineId, {
name: newMachine.name,
siteId: newMachine.siteId,
mode: newMachine.cloneMode,
...(newMachine.reference ? { reference: newMachine.reference } : {}),
})
} else {