feat: auto populate machine structures and seed sample data
This commit is contained in:
45
README.md
45
README.md
@@ -101,48 +101,35 @@ Site → Machine → Composant → Sous-composant → ...
|
||||
- `PATCH /api/machines/:id` - Modifier une machine
|
||||
- `DELETE /api/machines/:id` - Supprimer une machine
|
||||
|
||||
#### Payloads `componentSelections` / `pieceSelections`
|
||||
#### Payloads `componentLinks` / `pieceLinks`
|
||||
|
||||
Lors de la création d'une machine à partir d'un type, il est possible de fournir des sélections de composants et de pièces qui viendront remplir les exigences définies dans le type de machine.
|
||||
Lors de la création ou de la reconfiguration d'une machine, il faut transmettre les liens qui associent la machine aux composants et pièces existants en respectant les exigences du type de machine.
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "Presse HP-2000",
|
||||
"siteId": "<identifiant du site>",
|
||||
"typeMachineId": "<identifiant du type de machine>",
|
||||
"componentSelections": [
|
||||
"componentLinks": [
|
||||
{
|
||||
"requirementId": "<id d'une TypeMachineComponentRequirement>",
|
||||
"typeComposantId": "<optionnel : forcer un type spécifique>",
|
||||
"definition": {
|
||||
"composantId": "<id du composant existant>",
|
||||
"parentLinkId": "<optionnel : id d'un MachineComponentLink parent>",
|
||||
"overrides": {
|
||||
"name": "Bloc moteur série X",
|
||||
"reference": "COMP-001",
|
||||
"prix": "12000.00",
|
||||
"customFields": [
|
||||
{
|
||||
"name": "Puissance nominale",
|
||||
"type": "text",
|
||||
"required": true,
|
||||
"value": "7 kW"
|
||||
}
|
||||
]
|
||||
"prix": "12000.00"
|
||||
}
|
||||
}
|
||||
],
|
||||
"pieceSelections": [
|
||||
"pieceLinks": [
|
||||
{
|
||||
"requirementId": "<id d'une TypeMachinePieceRequirement>",
|
||||
"typePieceId": "<optionnel : forcer un type spécifique>",
|
||||
"definition": {
|
||||
"pieceId": "<id de la pièce existante>",
|
||||
"parentLinkId": "<optionnel : id du MachineComponentLink parent>",
|
||||
"overrides": {
|
||||
"name": "Kit maintenance niveau 1",
|
||||
"reference": "KIT-001",
|
||||
"customFields": [
|
||||
{
|
||||
"name": "Référence fournisseur",
|
||||
"type": "text",
|
||||
"value": "STD-002"
|
||||
}
|
||||
]
|
||||
"reference": "KIT-001"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -152,10 +139,10 @@ Lors de la création d'une machine à partir d'un type, il est possible de fourn
|
||||
Principales règles de validation :
|
||||
|
||||
- `requirementId` doit correspondre à une exigence déclarée dans le type de machine (composant ou pièce).
|
||||
- Le nombre de sélections pour une exigence doit respecter `minCount` et `maxCount` (si défini). Les exigences marquées `required` imposent au moins une sélection.
|
||||
- Si `allowNewModels` vaut `false`, la sélection doit réutiliser un composant ou une pièce existante et respecter strictement le type imposé par le requirement. Les squelettes définis sur les types sont instanciés automatiquement lors de la création.
|
||||
- Les modèles sélectionnés doivent appartenir au type attendu (`typeComposantId` ou `typePieceId`) sous peine d'échec de la création.
|
||||
- Les champs personnalisés du `definition.customFields` permettent de surcharger la valeur par défaut définie au niveau du type; la valeur est automatiquement injectée dans les `customFieldValues` de la machine, du composant ou de la pièce créée.
|
||||
- Le nombre de liens fournis pour une exigence doit respecter `minCount` et `maxCount` (si défini). Les exigences marquées `required` imposent au moins un lien.
|
||||
- Les composants et pièces liés doivent être compatibles avec le type attendu (`typeComposantId` ou `typePieceId`).
|
||||
- `parentLinkId` permet de rattacher un composant ou une pièce à un lien parent déjà créé pour la même machine.
|
||||
- Les `overrides` sont optionnels et permettent de surcharger le nom, la référence ou le prix affichés sur la machine sans modifier l'élément d'origine.
|
||||
|
||||
### Composants
|
||||
- `GET /api/composants` - Liste tous les composants
|
||||
|
||||
Reference in New Issue
Block a user