Ce fichier décrit l'envoi des notifications push par Firebase Cloud Messaging (FCM). Il s'adresse aux équipes backend et mobile qui enregistrent les appareils.

DiddiFood enregistre un token avec POST /food/v1/devices/register, puis utilise FCM pour notifier les changements de commande. L'envoi est une conséquence non bloquante : une panne FCM est journalisée et ne doit pas annuler l'action métier déjà validée. Les variables FCM_PROJECT_ID et FCM_SERVICE_ACCOUNT_JSON sont nécessaires pour un envoi réel.

Le frontend doit enregistrer le token Food après authentification et le retirer avec POST /food/v1/devices/unregister à la déconnexion ou au changement de compte. Un même appareil peut aussi être enregistré auprès d'un autre backend : Food ne partage pas son enregistrement local avec DiddiGo.

Événements Food

data.type event Destinataire Action recommandée
order_confirmed order.accepted Client Relire la commande et afficher la préparation.
order_ready order.ready Client Relire la commande et la livraison.
order_delivered order.delivered Client Afficher la livraison terminée et permettre la notation.
order_cancelled order.rejected ou order.cancelled Client Relire la commande et afficher le motif.
order_substitution_proposed order.substitution_proposed Client Relire la commande et répondre si la substitution est activée.

Les notifications peuvent être absentes. Le WebSocket et la lecture HTTP restent les sources de récupération d'état.