test: add machine creation e2e flow and CI
This commit is contained in:
57
README.md
57
README.md
@@ -81,6 +81,63 @@ Site → Machine → Composant → Sous-composant → ...
|
||||
- `PATCH /api/machines/:id` - Modifier une machine
|
||||
- `DELETE /api/machines/:id` - Supprimer une machine
|
||||
|
||||
#### Payloads `componentSelections` / `pieceSelections`
|
||||
|
||||
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.
|
||||
|
||||
```json
|
||||
{
|
||||
"name": "Presse HP-2000",
|
||||
"siteId": "<identifiant du site>",
|
||||
"typeMachineId": "<identifiant du type de machine>",
|
||||
"componentSelections": [
|
||||
{
|
||||
"requirementId": "<id d'une TypeMachineComponentRequirement>",
|
||||
"componentModelId": "<optionnel : modèle existant>",
|
||||
"definition": {
|
||||
"name": "Bloc moteur série X",
|
||||
"reference": "COMP-001",
|
||||
"emplacement": "Module A",
|
||||
"prix": "12000.00",
|
||||
"customFields": [
|
||||
{
|
||||
"name": "Puissance nominale",
|
||||
"type": "text",
|
||||
"required": true,
|
||||
"defaultValue": "7 kW"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"pieceSelections": [
|
||||
{
|
||||
"requirementId": "<id d'une TypeMachinePieceRequirement>",
|
||||
"pieceModelId": "<optionnel : modèle existant>",
|
||||
"definition": {
|
||||
"name": "Kit maintenance niveau 1",
|
||||
"reference": "KIT-001",
|
||||
"customFields": [
|
||||
{
|
||||
"name": "Référence fournisseur",
|
||||
"type": "text",
|
||||
"defaultValue": "STD-002"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
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`, il est obligatoire de fournir un `componentModelId`/`pieceModelId` existant. Sinon un `definition` sans modèle peut être utilisé pour créer un nouvel élément.
|
||||
- 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.
|
||||
|
||||
### Composants
|
||||
- `GET /api/composants` - Liste tous les composants
|
||||
- `GET /api/composants/:id` - Détails d'un composant
|
||||
|
||||
Reference in New Issue
Block a user