Centre d’aide/Opérations Core/Parent-child assets: quand une docking station appartient au laptop
15Opérations Core3 min de lecture

Parent-child assets: quand une docking station appartient au laptop

Le modèle relationnel, le cycle-guard, et comment vendre le parent resout les children - pour le jour où la docking station part avec le laptop.

Une docking station a été shipped avec le laptop. Deux SFP transceivers sont arrivés avec le switch. Huit modules RAM sont sortis d'un serveur. Aucun de ces éléments n'est vraiment un asset indépendant — ils appartiennent à un parent, et les traiter comme des rows autonomes fait perdre la relation dès que quelqu'un vend le parent sans se souvenir des children.

La relation

Chaque asset peut avoir un parent_asset_id pointant vers un autre asset. La relation est asset-to-asset (pas asset-to-product ni asset-to-pallet). Un laptop avec un dock a le laptop comme parent et le dock comme child. Un switch avec deux SFPs a le switch comme parent et chaque SFP comme child.

Le cycle-guard

La plateforme refuse de créer une parent-child relation qui formerait un cycle. Le picker parcourt les relations existantes et rejette tout choix qui fermerait une boucle (A→B, B→C, C→A est rejeté). Le parcours est borné : une relation chain au-delà de la profondeur configurée est aussi rejetée, parce qu'au-delà de quelques liens, la "relationship" ne porte plus de sens.

Ce qui se passe à la vente

Vendre le parent, et la plateforme demande : inclure les children ou les séparer ? Les inclure les déplace vers le buyer lors du sale event du parent, avec leurs propres line items dans le settlement. Les séparer marque le parent comme sold et laisse les children unattached — utile lorsque le dock est gardé pour refurbishment et que le laptop part chez un buyer.

L'historique marche dans les deux sens

La page détail asset montre le family tree depuis l'asset consulté. Depuis un child, vous pouvez naviguer vers le parent et les siblings. Depuis un parent, vous pouvez lister tous les children et leurs statuses. L'historique des grade changes, location moves et sale events montre tout l'arbre, pas seulement la row ouverte.

Pourquoi le modéliser explicitement

Parce que l'alternative consiste à encoder la relation dans un champ notes, et un champ notes ne survit pas à un tri, un filtre ou un export. Modéliser la relation explicitement signifie qu'elle survit — et le dock voyage avec le laptop comme asset suivi à part entière, au lieu de se cacher dans une description.