BCard - Documentation technique

DefaultProCardService
in package

Applique la règle métier de la carte physique offerte à la première commande d'un abonné Pro.

Le modèle de carte offert est configuré globalement dans l'entité Settings (defaultProCard). Le service détermine si l'utilisateur est encore éligible — abonnement premium actif et aucune carte physique déjà commandée — et, le cas échéant, restreint la sélection du configurateur à cette seule carte. Aucune méthode n'écrit en base.

Table of Contents

Properties

$entityManager  : EntityManagerInterface
$physicalCardRepository  : PhysicalCardRepository
$settingsRepository  : SettingsRepository

Methods

__construct()  : mixed
canSelectCard()  : bool
Vérifie si une carte spécifique peut être sélectionnée par l'utilisateur
getCardForFirstOrder()  : Card|null
Force la sélection de la carte par défaut pour la première commande Pro
getDefaultProCard()  : Card|null
Récupère la carte par défaut configurée pour les utilisateurs Pro
getFirstOrderMessage()  : string
Obtient le message à afficher pour la première commande Pro
isFirstPhysicalCardOrder()  : bool
Vérifie si c'est la première commande de carte physique pour un utilisateur Pro
shouldUseDefaultCard()  : bool
Vérifie si l'utilisateur doit utiliser la carte par défaut (première commande Pro)

Properties

Methods

__construct()

public __construct(SettingsRepository $settingsRepository, PhysicalCardRepository $physicalCardRepository, EntityManagerInterface $entityManager) : mixed
Parameters
$settingsRepository : SettingsRepository

Lecture du paramétrage global portant la carte Pro par défaut.

$physicalCardRepository : PhysicalCardRepository

Détection des cartes physiques déjà possédées par l'utilisateur.

$entityManager : EntityManagerInterface

Dépendance injectée mais non utilisée par les méthodes actuelles.

canSelectCard()

Vérifie si une carte spécifique peut être sélectionnée par l'utilisateur

public canSelectCard(User $user, Card $card, SubscriptionService $subscriptionService) : bool

En situation de première commande Pro, seule la carte par défaut est autorisée : la comparaison porte sur les identifiants. Sinon, toute carte non masquée du catalogue (isHide() à faux) est sélectionnable. Lecture seule.

Parameters
$user : User

Utilisateur passant commande.

$card : Card

Carte que l'utilisateur souhaite sélectionner.

$subscriptionService : SubscriptionService

Service d'abonnement (non typé dans la signature).

Return values
bool —

true si la sélection de cette carte est autorisée.

getCardForFirstOrder()

Force la sélection de la carte par défaut pour la première commande Pro

public getCardForFirstOrder(User $user, SubscriptionService $subscriptionService) : Card|null

Retourne la carte offerte uniquement lorsque DefaultProCardService::shouldUseDefaultCard() est satisfait ; dans le cas contraire, l'appelant doit laisser l'utilisateur choisir librement. Lecture seule.

Parameters
$user : User

Utilisateur passant commande.

$subscriptionService : SubscriptionService

Service d'abonnement (non typé dans la signature).

Return values
Card|null —

Carte à imposer, ou null si l'utilisateur n'est pas dans le cas de la première commande Pro.

getDefaultProCard()

Récupère la carte par défaut configurée pour les utilisateurs Pro

public getDefaultProCard() : Card|null

Charge la première (et unique attendue) ligne de configuration Settings et en extrait la carte par défaut. Lecture seule.

Return values
Card|null —

Carte offerte configurée, ou null si aucune configuration n'existe ou si aucune carte par défaut n'y est renseignée.

getFirstOrderMessage()

Obtient le message à afficher pour la première commande Pro

public getFirstOrderMessage() : string

Retourne un libellé constant, destiné à l'affichage dans le configurateur de commande. Aucune donnée dynamique n'est interpolée.

Return values
string —

Message d'information sur la carte offerte.

isFirstPhysicalCardOrder()

Vérifie si c'est la première commande de carte physique pour un utilisateur Pro

public isFirstPhysicalCardOrder(User $user) : bool

Considère la commande comme étant la première dès lors que l'utilisateur ne possède aucune carte physique enregistrée. Lecture seule.

Parameters
$user : User

Utilisateur évalué.

Return values
bool —

true si aucune carte physique n'est rattachée à l'utilisateur.

shouldUseDefaultCard()

Vérifie si l'utilisateur doit utiliser la carte par défaut (première commande Pro)

public shouldUseDefaultCard(User $user, SubscriptionService $subscriptionService) : bool

Les trois conditions doivent être réunies : aucune carte physique déjà commandée, accès aux fonctionnalités premium confirmé par le service d'abonnement, et existence effective d'une carte par défaut configurée. Lecture seule.

Parameters
$user : User

Utilisateur évalué.

$subscriptionService : SubscriptionService

Service d'abonnement (non typé dans la signature) exposant hasAccessToPremiumFeatures().

Return values
bool —

true si la carte offerte doit être imposée à cet utilisateur.


        
On this page

Search results