Aller au contenu principal

Parrainage

Vue d'ensemble

Le système de parrainage lie un parrain (agent commercial ou utilisateur avec referralCode) à un filleul inscrit via ce code. Il alimente les statistiques agents, le tracking des démos et les commissions.

Modèles de données

Referral.js

ChampDescription
referrerIdUtilisateur parrain (souvent agentCommercial)
referredIdUtilisateur filleul
referralCodeCode utilisé à l'inscription
statuspending ou completed
rewardAmountMontant de récompense enregistré
completedAtDate de finalisation

:::info Comportement actuel À la création, le statut est directement completed dès que le filleul est enregistré (le lien est actif pour stats et commissions). :::

ReferralTariff.js

Tarifs personnalisés assignables par agent (User.assignedReferralTariff).

ChampDescription
amountMontant récompense
isActiveTarif actif ou non

ReferralSettings.js

Configuration globale (singleton) :

ChampDescription
rewardAmountMontant par défaut si pas de tarif assigné
actifParrainage activé ou non

Flux d'inscription avec code

  1. Le parrain partage son referralCode (champ User.referralCode)
  2. Le filleul saisit le code à l'inscription (mobile ou web)
  3. POST /api/referrals/create crée le document Referral
  4. Si le parrain est un agent : crédit AgentEarning type referral_signup
  5. Les actions du filleul sont rattachées à l'agent pour les KPIs et démos

Contraintes

  • Un filleul ne peut être parrainé qu'une seule fois
  • Auto-parrainage interdit
  • Code invalide → erreur 400

Endpoints API

Préfixe : /api/referrals

Utilisateur connecté

MéthodeRouteDescription
GET/statsStatistiques de parrainage de l'utilisateur
GET/my-referralsListe des filleuls
GET/monthly-statsStats mensuelles (?month=YYYY-MM)
POST/createCrée un parrainage (code + utilisateur courant)
PUT/complete/:referralIdFinalise un parrainage en attente

Admin

MéthodeRouteDescription
GET/allTous les parrainages
GET/settingsConfiguration globale
PUT/settingsMet à jour la configuration

Rôles admin requis : admin, superAdmin, principal, moderateur, gestionnaire.

Tarifs parrainage (admin)

Préfixe : /api/referral-tariffs

Gestion des grilles tarifaires assignables aux agents via User.assignedReferralTariff.

Lien avec les agents commerciaux

MécanismeDescription
Filleuls vendeursSource des KPIs abonnementsVendus, campagnesLancees
Résolution démoDemoEvent.agent dérivé de Referral.referrerId
Commissionscommission_subscription, commission_publicite sur paiements filleuls
Dashboard admin/api/agents/:id/referral-stats, /api/agents/:id/referrals

Voir Agents commerciaux.

Génération des codes

Les codes sont générés automatiquement :

crypto.randomBytes(4).toString('hex').toUpperCase();
// Exemple : A1B2C3D4

Stockés sur User.referralCode (unique par utilisateur éligible).

Fichiers source

FichierRôle
src/controllers/referralController.jsCRUD parrainages
src/routes/referral.jsRoutes /api/referrals
src/routes/referralTariff.jsTarifs admin
src/models/Referral.jsSchéma parrainage
src/models/ReferralTariff.jsSchéma tarifs
src/models/ReferralSettings.jsConfiguration globale

OpenAPI : paths/09-tricycles-referrals-agents.js. Voir API Swagger.

Voir aussi