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​