feature/VSN-2887 - propagate email change to all linked passengers
Problème
Lors du changement d'e-mail d'un représentant lié à plusieurs usagers,
seule la ligne correspondant au représentant trouvé par findByUuid
était mise à jour. Les autres lignes (même personne, passenger_id
différent) conservaient l'ancien e-mail, entraînant une incohérence
des données en base.
Cause racine
Le modèle Representative est dénormalisé : une même personne réelle
est stockée en N lignes distinctes, une par usager lié. Il n'existe pas
d'entité représentant partagée — les données (email, nom, prénom) sont
dupliquées sur chaque ligne. Un simple save(rep) ne touche qu'une
seule ligne.
Comportement après correctif
- Un représentant lié à N usagers → les N lignes sont mises à jour
en une seule requête
UPDATE - Le log trace le nombre de lignes impactées
- Le flux Keycloak et la confirmation par e-mail restent inchangés