Skip to content

feat(billing): module facturation par crédits pour appels téléphoniques IA

mohamed kaanoun a demandé de fusionner feature/credit-billing vers develop
  • BillingConfig: propriétés configurables via env vars (CREDITS_PER_MINUTE, CALL_CREDITS_LIMIT, etc.)
  • ActiveCallInfo: modèle thread-safe d'un appel actif (AtomicInteger pour crédits/durée)
  • ActiveCallTracker: registre ConcurrentHashMap des appels en cours
  • CreditServiceClient: client WebClient vers microservice crédit (POST /api/credit/wallet/debit)
  • CreditBillingService: orchestration débit périodique, coupure appel si crédits épuisés
  • CreditBillingScheduler: @Scheduled toutes les 60s pour débit périodique
  • VapiWebhookService: intégration onCallStarted (in-progress) et onCallEnded (end-of-call-report)
  • VapiClient: ajout hangupCall (DELETE) et updateCallDuration (PATCH)
  • CreditController: endpoints /deactivate, /reactivate, /update-limits
  • Paths: constantes CREDIT_BASE, CREDIT_DEACTIVATE, CREDIT_REACTIVATE, CREDIT_UPDATE_LIMITS
  • application.yml: section app.billing avec valeurs par défaut

Calcul: 1 min = 14 crédits, débit toutes les 60s, coupure si 402/403

Rapports de requête de fusion