import sys, os, json sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) from kafka import KafkaConsumer from shared.events import BOOTSTRAP_SERVERS, TOPIC_ORDERS, TOPIC_PAYMENTS, TOPIC_NOTIFICATIONS def run(): consumer = KafkaConsumer( TOPIC_PAYMENTS, TOPIC_ORDERS, bootstrap_servers=BOOTSTRAP_SERVERS, group_id="notif_service", auto_offset_reset="latest", value_deserializer=lambda v: json.loads(v.decode("utf-8")) ) print("[NOTIFICATION SERVICE] Service de notification démarré, en attente d'évènements...") for message in consumer: event = message.value event_type = event["type"] payload = event["payload"] order_id = payload["order_id"] if event_type == "payment.confirmed": print(f"[NOTIFICATION SERVICE] 🎉 Paiement confirmé pour la commande {order_id} " f"(client {payload['customer_id']}, montant {payload['amount']}€)") elif event_type == "payment.failed": print(f"[NOTIFICATION SERVICE] ❌ Paiement échoué pour la commande {order_id} " f"(client {payload['customer_id']}, montant {payload['amount']}€)") elif event_type == "order.preparation_started": print(f"[NOTIFICATION SERVICE] 🍳 Préparation commencée pour la commande {order_id} " f"(restaurant {payload['restaurant_id']})") if __name__ == "__main__": run()