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