Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.colismove.com/llms.txt

Use this file to discover all available pages before exploring further.

Les deux happy paths couvrent les sens Yaoundé→Paris (Sc 1) et Paris→Yaoundé (Sc 2). Ils sont identiques en machine à états et en effets de bord, seules les coordonnées GPS et la devise diffèrent.

Sc 1 — Yaoundé → Paris

États traversés

Séquence détaillée

Acteurs et rôles

ActeurRôleIdentification
SenderCrée la réservation, paie, dépose le colisCompte particulier KYC OK
CarrierAnnonce le trajet, transporte le colisCompte verified user + Stripe Connect actif
RecipientReçoit le colis, scanne QR livraisonPas de compte requis (page publique)
BackendOrchestrateur, machine à étatsSpring Boot 3.4 hexagonal
StripeEscrow + payoutStripe Connect platform
PackSentryValidation photos AVANT_DEPOT/DEPOTModule hex colismove-packsentry

Pré-requis carrier

  • ✅ Compte vérifié (ROLE_VERIFIED_USER via Didit V2 ou Stripe Identity selon Pivot Flynanga)
  • ✅ Stripe Connect onboarding complet (charges_enabled = true)
  • ✅ Pays supporté (whitelist colismove-finances)
  • ✅ Trajet annoncé non expiré

Tests E2E

  • BookingFullJourneyIT — couverture intégration full path
  • Module : colismove-app/src/test/java/.../scenarios/

Sc 2 — Paris → Yaoundé (sens inverse)

Identique à Sc 1 en logique métier. Différences :
  • Coordonnées GPS inversées (origine Paris, destination Yaoundé)
  • Devise unique (EUR) — pas de conversion (carrier facture en EUR, sender paie en EUR)
  • Pays expéditeur ≠ pays destinataire ne change rien (pas de logique douanière dans MVP ColisMove)
Le test E2E réutilise BookingFullJourneyIT avec les coordonnées inversées.

Effets de bord à chaque transition

État cibleEffets backendNotifications
RESERVATION_PAYEELock fonds Stripe, log PaymentLog
EN_ATTENTEAuto post-RESERVATION_PAYEEPush carrier “nouvelle résa”
ACCEPTEEGénère QR dépôt (QrCodeService.generateDepot)Push sender “QR prêt”
EN_COURS_DE_LIVRAISONGate photos confirmerDepot (PackSentry), GPS tracking startPush sender “Colis pris en charge”
LIVREEStripe.transfers.create() 85% au carrier, WalletTransaction enregistréePush + email + WhatsApp recipient

Variantes Sc 1

Si l’un des éléments suivants se produit, le scénario bascule :
  • Carrier refuse → Sc 4 (REFUSEE)
  • Sender annule pré-dépôt → Sc 3 (ANNULEE refund)
  • Sender annule post-dépôt → Sc 5 (forcé LITIGE)
  • Stripe refuse 3DS → Sc 9 (ERREUR_PAIEMENT)
  • Recipient absent → Sc 17 (3 tentatives max)
  • Photo AVANT_DEPOT manquante → Sc 21 (HTTP 422)
  • Photo DEPOT manquante au scan QR → Sc 22 (HTTP 422 PHOTO_DEPOT_MANQUANTE)