BCard - Documentation technique

SubscriptionService
in package

Read onlyYes

Gère le cycle de vie des abonnements (`Subscription`) : création de l'abonnement gratuit par défaut, activation après paiement, vérification des quotas de cartes, accès aux fonctionnalités premium, et abonnements d'entreprise.

Effets de bord : createFreeSubscriptionForUser() et activateSubscription() persistent et/ou flushent l'EntityManager ; createCompanySubscription() construit une Subscription sans la persister, laissant cette responsabilité à l'appelant. hasAccessToPremiumFeatures() et canUserCreateMoreCards() retiennent les plans nommés Pro et Entreprise comme donnant accès aux fonctionnalités premium ; un cardsIncluded nul ou à 0 est traité comme illimité.

Table of Contents

Properties

$entityManager  : EntityManagerInterface
$logger  : LoggerInterface
$planRepository  : PlanRepository

Methods

__construct()  : mixed
activateSubscription()  : void
Active un abonnement après paiement réussi
canCompanyCreateMoreCards()  : bool
Check if company can create more cards based on subscription
canCreateCard()  : bool
Vérifie si un utilisateur peut créer une nouvelle carte
canUpgrade()  : bool
Vérifie si un utilisateur peut upgrader son abonnement
canUserCreateMoreCards()  : bool
Vérifie si un utilisateur peut créer plus de cartes selon son plan
createCompanySubscription()  : Subscription
Create a company subscription
createFreeSubscriptionForUser()  : Subscription|null
Crée un abonnement gratuit pour un nouvel utilisateur
getActiveCompanySubscription()  : Subscription|null
Get active company subscription
getRemainingCardsForUser()  : int
Récupère le nombre de cartes restantes pour un utilisateur
getUserCardCount()  : int
Récupère le nombre de cartes actuelles de l'utilisateur
getUserPlan()  : Plan|null
Récupère le plan actuel de l'utilisateur
hasAccessToPremiumFeatures()  : bool
Vérifie si un utilisateur a accès aux fonctionnalités premium
upgradeCompanySubscription()  : Subscription|null
Upgrade company subscription
calculateEndDate()  : DateTimeImmutable
Calcule la date de fin d'un abonnement selon le cycle de facturation
calculateNextBillingDate()  : DateTimeImmutable
Calcule la prochaine date de facturation
countCompanyCards()  : int
Count existing cards for a company
getFreePlan()  : Plan|null
Récupère le plan gratuit

Properties

Methods

__construct()

public __construct(EntityManagerInterface $entityManager, PlanRepository $planRepository, LoggerInterface $logger) : mixed
Parameters
$entityManager : EntityManagerInterface

Gestionnaire d'entités Doctrine.

$planRepository : PlanRepository

Accès aux offres d'abonnement.

$logger : LoggerInterface

Journalisation des anomalies de souscription.

canCompanyCreateMoreCards()

Check if company can create more cards based on subscription

public canCompanyCreateMoreCards(Company $company) : bool
Parameters
$company : Company
Return values
bool

canCreateCard()

Vérifie si un utilisateur peut créer une nouvelle carte

public canCreateCard(User $user) : bool
Parameters
$user : User
Return values
bool

canUpgrade()

Vérifie si un utilisateur peut upgrader son abonnement

public canUpgrade(User $user) : bool
Parameters
$user : User
Return values
bool

canUserCreateMoreCards()

Vérifie si un utilisateur peut créer plus de cartes selon son plan

public canUserCreateMoreCards(User $user) : bool
Parameters
$user : User
Return values
bool

createCompanySubscription()

Create a company subscription

public createCompanySubscription(User $user, Company $company, int $planId, string $billingCycle, string $amount) : Subscription
Parameters
$user : User
$company : Company
$planId : int
$billingCycle : string
$amount : string
Return values
Subscription

getRemainingCardsForUser()

Récupère le nombre de cartes restantes pour un utilisateur

public getRemainingCardsForUser(User $user) : int
Parameters
$user : User
Return values
int

getUserCardCount()

Récupère le nombre de cartes actuelles de l'utilisateur

public getUserCardCount(User $user) : int
Parameters
$user : User
Return values
int

hasAccessToPremiumFeatures()

Vérifie si un utilisateur a accès aux fonctionnalités premium

public hasAccessToPremiumFeatures(User $user) : bool
Parameters
$user : User
Return values
bool

calculateEndDate()

Calcule la date de fin d'un abonnement selon le cycle de facturation

private calculateEndDate(string $billingCycle) : DateTimeImmutable
Parameters
$billingCycle : string
Return values
DateTimeImmutable

calculateNextBillingDate()

Calcule la prochaine date de facturation

private calculateNextBillingDate(string $billingCycle) : DateTimeImmutable
Parameters
$billingCycle : string
Return values
DateTimeImmutable

countCompanyCards()

Count existing cards for a company

private countCompanyCards(Company $company) : int
Parameters
$company : Company
Return values
int

        
On this page

Search results