chore: build
Backend - Build & Lint / build (push) Successful in 32m22s

This commit is contained in:
Xor290
2026-09-27 12:30:20 +02:00
parent d8ad16b40e
commit f371cd0874
2 changed files with 126 additions and 1 deletions
+19 -1
View File
@@ -290,11 +290,16 @@ func RespondToAddressProposal(c *gin.Context) {
// La colonne proposed_address est vidée par RespondToAddressProposal dès
// qu'elle est traitée : on la lit avant l'appel pour pouvoir regéocoder la
// nouvelle adresse en cas d'acceptation.
// nouvelle adresse en cas d'acceptation. On récupère aussi le livreur
// assigné : ProposeAddressChange autorise un changement d'adresse même en
// "en_route" (voir commands.go ~L236-240), donc un livreur peut déjà être
// en train de rouler vers l'ancienne adresse au moment de l'acceptation.
var proposedAddress string
var livreurAssign string
if req.Accepted {
if command, err := database.GetCommandByID(commandID); err == nil {
proposedAddress, _ = command["proposed_address"].(string)
livreurAssign, _ = command["livreur_assign"].(string)
}
}
@@ -305,6 +310,19 @@ func RespondToAddressProposal(c *gin.Context) {
if req.Accepted && proposedAddress != "" {
updateCommandDestinationCoords(database, geoService, commandID, proposedAddress)
// L'ETA en cache correspond au trajet vers l'ancienne destination —
// on l'invalide pour forcer un recalcul sur les nouvelles coordonnées.
db.Redis.Del(db.RedisCtx, fmt.Sprintf("command:eta:%d", commandID))
// Sans cette notification, le livreur déjà en route continuerait à
// naviguer vers l'ancienne adresse sans savoir que la destination a
// changé en base.
if livreurAssign != "" {
clientOrderID := database.GetClientOrderID(commandID)
livreurMsg := fmt.Sprintf("⚠️ Le client a changé l'adresse de livraison de la commande #%d : %s. Merci de mettre à jour votre itinéraire.", clientOrderID, proposedAddress)
database.NotifyLivreur(livreurAssign, commandID, "address_changed", livreurMsg)
}
}
action := "refusée"