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 placed jusqu'à la confirmation DiddiPay succeeded; l'acceptation restaurant et la préparation sont bloquées avant cette confirmation. Le garde est déployé avec DIDDIFOOD_REQUIRE_ONLINE_PAYMENT_BEFORE_PREPARATION=true.
  • respond_by vaut cinq minutes par défaut. Un worker Food annule une commande restée placed aprè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, longitude et radius_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.