Messages RabbitMQ — Suivis MVLS
Gestion des checkpoints de suivi entre DEMA1N et Inspire. Voir configuration commune.
Architecture :
- DEMA1N → Inspire : SUIVI_CREATED, SUIVI_UPDATED
- Inspire → DEMA1N : SUIVI_UPDATE_FROM_INSPIRE
Types d'événements
| Nom | Direction | Description |
|---|---|---|
SUIVI_CREATED |
DEMA1N → Inspire | Nouveau checkpoint créé par DEMA1N |
SUIVI_UPDATED |
DEMA1N → Inspire | Statuts mis à jour après traitement de la réponse |
SUIVI_UPDATE_FROM_INSPIRE |
Inspire → DEMA1N | Réponse d'un jeune ou bénévole au formulaire de suivi |
SUIVI_CREATED / SUIVI_UPDATED (reçus depuis DEMA1N)
{
"header": { "name": "SUIVI_CREATED", "model": "SUIVI", "event": "CREATED", "producer": "dema1n", "..." : "..." },
"body": {
"suivi": {
"suivi_id": "123",
"binome_id": "456",
"step_id": "789",
"day_step": 5,
"status": "EN_ATTENTE",
"status_jeune": "EN_ATTENTE",
"status_benevole": "EN_ATTENTE",
"creation_date": "2025-12-12T10:00:00.000Z",
"status_update_date": "2025-12-12T10:00:00.000Z"
}
}
}
Champs body.suivi
| Champ | Type | Description |
|---|---|---|
suivi_id |
string |
Obligatoire — stocker comme suiviIdDema1n |
binome_id |
string |
Obligatoire — correspond à binome_id_dema1n dans MvlsBinome |
step_id |
string \| null |
ID de l'étape dans DEMA1N |
day_step |
number \| null |
Jour du checkpoint — valeurs possibles dans MvlsSuivi |
status |
string \| null |
Statut global du suivi |
status_jeune |
string \| null |
Statut du jeune (EN_ATTENTE, RAS, INACTIF, etc.) |
status_benevole |
string \| null |
Statut du bénévole |
creation_date |
string \| null |
Date de création (ISO 8601) |
status_update_date |
string \| null |
Date de mise à jour du statut (ISO 8601) |
SUIVI_UPDATED a la même structure — les statuts reflètent l'état après traitement de la réponse.
SUIVI_UPDATE_FROM_INSPIRE (envoyé vers DEMA1N)
{
"header": { "name": "SUIVI_UPDATE_FROM_INSPIRE", "model": "SUIVI", "event": "UPDATED", "producer": "inspire", "..." : "..." },
"body": {
"suivi_update": {
"suivi_id": "123",
"contact_status": "jeune",
"actif": "1",
"comment": "Tout se passe très bien !",
"main_response": "multiple_good",
"problem_detail": null,
"anecdote": "Super expérience !"
}
}
}
Champs body.suivi_update
| Champ | Type | Description |
|---|---|---|
suivi_id |
string |
Obligatoire — ID reçu dans SUIVI_CREATED |
contact_status |
string |
Obligatoire — "jeune" ou "benevole" |
actif |
string |
Obligatoire — valeurs dans MvlsSuivi (actifJeune / actifBenevole) |
comment |
string \| null |
Commentaire libre |
main_response |
string \| null |
Réponse principale (once_waiting, multiple_good, problem, etc.) |
problem_detail |
string \| null |
Détail du problème signalé |
anecdote |
string \| null |
Anecdote partagée |
L'envoi est non-bloquant : une erreur RabbitMQ ne doit pas empêcher la sauvegarde de la réponse en base.
Flux d'exécution
- DEMA1N crée un suivi (ex. jour 5) → envoie
SUIVI_CREATED→ Inspire stocke dansMvlsSuivi - DEMA1N envoie un email Brevo au jeune avec l'URL :
https://inspire-orientation.org/mentorat/suivi/{token}/jeune/{suiviId} - Le jeune remplit le formulaire sur Inspire → Inspire sauvegarde la réponse en base
- Inspire envoie
SUIVI_UPDATE_FROM_INSPIREvers DEMA1N - DEMA1N traite la réponse → envoie
SUIVI_UPDATED→ Inspire met à jourMvlsSuivi