Skip to content

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

  1. DEMA1N crée un suivi (ex. jour 5) → envoie SUIVI_CREATED → Inspire stocke dans MvlsSuivi
  2. DEMA1N envoie un email Brevo au jeune avec l'URL : https://inspire-orientation.org/mentorat/suivi/{token}/jeune/{suiviId}
  3. Le jeune remplit le formulaire sur Inspire → Inspire sauvegarde la réponse en base
  4. Inspire envoie SUIVI_UPDATE_FROM_INSPIRE vers DEMA1N
  5. DEMA1N traite la réponse → envoie SUIVI_UPDATED → Inspire met à jour MvlsSuivi