Ce fichier conserve les décisions de périmètre MVP, V1 et Later. Il s'adresse aux équipes produit, backend, frontend et QA.
Decisions DiddiFood MVP / V1 / Later
Date de validation: 2026-10-13 Source: planning de lancement 19 decembre 2026 + decision utilisateur dans le fil DiddiFood.
Regle de configuration
Les parametres metier sensibles sont fixes par variables d'environnement et necessitent un redeploiement:
- commissions,
- minimum de retrait,
- frais de retrait,
- activation cash / online / retrait sur place / substitution / recharge restaurant.
Ces valeurs ne doivent pas etre modifiables depuis une interface admin V1.
MVP
Le MVP DiddiFood contient:
- catalogue restaurants, cuisines, plats et disponibilites,
- commande client en livraison,
- paiement cash et paiement en ligne via DiddiPay,
- creation de livraison Food vers DiddiSend,
- wallet restaurant accumule,
- demande de retrait restaurant,
- pilotage financier agrege,
- support administratif via Backoffice quand les routes S2S sont presentes.
V1 apres MVP
La V1 apres MVP contient:
- retrait sur place par le client (
pickup_mode=pickup), - substitution / remplacement de plat,
- experience d'avis et analytics avances,
- enrichissements dashboard restaurant.
Later
Hors MVP et hors V1 immediate:
- markets et supermarches,
- recharge wallet restaurant,
- wallet public DiddiPay complet dans DiddiFood,
- logiques de flottes/relais qui appartiennent aux modules transport/livraison.
Decision explicite: recharge restaurant
La recharge wallet restaurant est hors MVP.
Raison: le restaurant gagne d'abord via les commandes livrees et regularise ses retraits. Ajouter une recharge manuelle avant la stabilisation payout / reconciliation augmente le risque financier et le support.
Variables de verrouillage
DIDDIFOOD_CASH_ENABLED=true
DIDDIFOOD_ONLINE_PAYMENT_ENABLED=true
DIDDIFOOD_REQUIRE_ONLINE_PAYMENT_BEFORE_PREPARATION=true
DIDDIFOOD_PICKUP_ENABLED=false
DIDDIFOOD_SUBSTITUTION_ENABLED=false
DIDDIFOOD_RESTAURANT_TOPUP_ENABLED=false
DIDDIFOOD_PICKUP_ENABLED=false et DIDDIFOOD_SUBSTITUTION_ENABLED=false ferment les routes/API concernees avec une erreur explicite tant que la phase V1 n'est pas lancee.
Décisions MVP validées le 27 octobre 2026
- Le paiement online suit DiddiGo : l'e-mail saisi est optionnel; Food utilise le téléphone du payeur authentifié pour produire une adresse technique si nécessaire.
- Une commande online reste
placedjusqu'à la confirmation DiddiPaysucceeded; l'acceptation restaurant et la préparation sont bloquées avant cette confirmation. Le garde est déployé avecDIDDIFOOD_REQUIRE_ONLINE_PAYMENT_BEFORE_PREPARATION=true. respond_byvaut cinq minutes par défaut. Un worker Food annule une commande restéeplacedaprès l'échéance.- DiddiSend reste propriétaire du coursier, de la position, de l'ETA réelle, de la preuve de remise et de la décision finale après un échec. Food expose une projection client en lecture seule.
- Les remboursements, y compris après une commande cash, passent par DiddiPay; Food ne fait pas de règlement manuel.
- Les images de plats dans le catalogue, les lignes de commande et la cuisine passent par DiddiFiles et restent optionnelles.
- La création de plat est idempotente avec
Idempotency-Key; la lecture de note est disponible en GET.
Décisions validées le 30 octobre 2026
Les décisions détaillées sont conservées dans
ADR-2026-10-30-order-payment-delivery.md :
- une commande expirée annule aussi l'intention DiddiPay avec le motif
order_expired, sauf si le paiement est déjàsucceeded; - le devis de retrait est garanti après confirmation ;
- les horaires après minuit sont hors V1 et les disponibilités de plats sont manuelles ;
- le rayon maximal de livraison est de 10 km ;
- l'arrivée du coursier sera signalée par un événement DiddiSend, sans que Food devienne propriétaire du statut de livraison.
Décision validée : recherche et ventilation
- MVP : pagination, filtres de statut existants et recherche simple légère si nécessaire.
- V1 : recherche des restaurants par
latitude,longitudeetradius_km, combinée avec l'ouverture, les horaires et les zones de service. - V1 : ventilation financière détaillée par commande, avec les montants provenant de Food, DiddiSend et DiddiPay clairement séparés.
Le MVP conserve les zones/horaire configurés et les résumés financiers agrégés. Aucun index spatial ni nouveau contrat de rayon n'est ajouté avant la V1.