docs(fer-19) : plan d'implementation health-check pont-bascule

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-21 13:56:22 +02:00
parent 0390f5f1a2
commit d6992aa549
2 changed files with 665 additions and 11 deletions

View File

@@ -88,15 +88,19 @@ Groupe de sérialisation `pont_bascule:health:read`. Champs :
- Champs informatifs (debug / affichage futur) : `ok: bool`, `busy: bool`,
`portConnected: bool`, `portError: ?string`, `hostname: ?string`.
### Ressource API `PontBasculeHealth` (`src/ApiResource/PontBasculeHealth.php`)
### Ressource API `PontBasculeHealthCheck` (`src/ApiResource/PontBasculeHealthCheck.php`)
- Opération `GET /pont_bascule/health`, sans état persistant, `output` = DTO,
`provider` = `PontBasculeHealthProvider`.
- Endpoint au pluriel : `pont_bascule` est déjà invariable, conserver `/pont_bascule/health`.
- Classe carrier fine (vide) hébergeant l'opération `GET /pont_bascule/health`,
sans état persistant, `output` = `PontBasculeHealth::class` (le DTO), `provider` =
`PontBasculeHealthProvider`. Même montage que `/receptions/weigh` (host déclare
l'opération, `output` = DTO, provider renvoie le DTO).
- Nommée `PontBasculeHealthCheck` pour éviter la collision de nom court avec le DTO
`Dto\PontBasculeHealth`.
- Route conservée `/pont_bascule/health` (`pont_bascule` invariable).
### `PontBasculeHealthProvider` (`src/State/`)
### `PontBasculeHealthProvider` (`src/State/PontBasculeHealthProvider.php`)
- Appelle `PontBasculeService::checkHealth()` et renvoie le DTO.
- Appelle `PontBasculeService::checkHealth()` et renvoie le DTO `PontBasculeHealth`.
- Toujours `200`, même pont down (pas de `HttpException`).
## Frontend
@@ -126,13 +130,16 @@ Groupe de sérialisation `pont_bascule:health:read`. Champs :
- Le bouton **« peser »** reçoit `disabled` tant que `pontBasculeStatus !== 'connected'`
(état grisé). Les boutons « Valider la pesée » et « Générer le bon » restent inchangés.
### i18n (`frontend/i18n/locales/fr.json`)
### Textes d'état (codés en dur)
Nouvelles clés :
Convention du projet : les textes d'UI dans les composants/pages sont **codés en dur en
français** (le « Pont-bascule connecté » actuel l'est déjà). `fr.json` n'est consommé que
par `useApi` pour les toasts. On reste cohérent : les trois libellés sont écrits directement
dans `workflow-weight.vue`, **pas** dans `fr.json`.
- `pontBascule.checking` → « Vérification du pont-bascule… »
- `pontBascule.connected` → « Pont-bascule connecté »
- `pontBascule.disconnected` → « Pont-bascule non connecté »
- `checking` → « Vérification du pont-bascule… » (couleur primary)
- `connected` → « Pont-bascule connecté » (vert)
- `disconnected` → « Pont-bascule non connecté » (rouge)
## Error handling