Aller au contenu

Cashback (campagnes promotionnelles)

Extrait du domain map API, qui était chargé dans chaque session agent. La rule garde l'index module → contexte ; le détail vit ici, à côté du code.

Endpoint leger (GET /app-config, JWT required) appele une fois au demarrage de l'app. Retourne la config temps-dependante :

Cashback : campagnes promotionnelles appliquees sur les achats primaires pendant une periode. - Source de verite : businessRules.cashback dans @bricks-common/api-communication - Convention : une seule campagne active a un instant T - getActiveCampaignAt(date) : retourne la premiere campagne dont date est dans [startDate, endDate] (inclusif, timezone Europe/Paris) - Reponse : { activeCashback?: { operationName, percentage, startDate, endDate } }

Application backend : lors d'un achat primaire, primary-purchase.service evalue getActiveCampaignAt(purchaseDate). Si actif, le cashback est attache au contexte de la WT : amount = round(purchaseValue * percentage / 100) en centimes + percentage + operationName

Integration front : - Mobile : AppConfigProvider gate (bloque le rendu si pending), prefetch au boot via runMandatoryLoader. CashbackBadge sur les cartes projet, CashbackBanner sur l'ecran d'achat - Web : RTK Query lazy + Redux slice appConfig. Badge sur les cartes projet, banner dans le modal d'achat