Pack Coupon
Modèle représentant un pack de coupons. Un Contact peut posséder plusieurs packs de coupons.
MCD
classDiagram
class PackCoupon {
+text message_mail
}
PackCoupon "1" <--> "0..n" Contact
PackCoupon "1" <--> "0..n" TemplatePackCoupon
PackCoupon "0..n" <--> "0..1" Article
PackCoupon "1" <--> "1..n" AttributionPackCoupon
Associations
contact(Contact) : Contacts possédant le pack de coupons.template_pack_coupon(TemplatePackCoupon) : Template du pack de coupons. Délègue toutes les informations au template.articles(Article) : Articles utilisant un coupon du pack de coupons.attribution_pack_coupon(AttributionPackCoupon) : Classe génératrice des packs AttributionPackCoupon.
Attributs
message_mail: Texte du mail envoyé au contact.
Fonctionnement
Une fois généré par une attribution_pack_coupon, le pack de coupon est automatiquement ajouté à la liste des packs de coupons du contact si le template est actif, sinon on attends le changement d'état.
+ Pour les coupons de type 'au match', le pack devient inutilisable une fois que taille coupons ont été utilisés.
+ Pour les coupons de type 'récurrent', le pack devient inutilisable pour un match donné une fois que taille coupons ont été utilisés pour ce match.
Les coupons de type_produit privés permettent d'accéder à des interfaces supplémentaires afin d'ajouter au panier les produit privés.
Ces derniers n'apparaissent pas dans la liste des articles de la homepage.
Le coupon est automatiquement appliqué.
À la création d'un pack (attribution à un contact), un email (personnalisé) est envoyé à l'adresse du contact pour l'en notifier.
Méthodes
matchs: renvoi les matchs auxquels le pack de coupons s'applique.date_expiration: renvoi la date d'expiration du pack de coupons.articles_vendu_count: renvoi le nombre d'articles vendus par le pack de coupons. Possibilité de scope par match.articles_vendu: renvoi les articles vendus par le pack de coupons. Possibilité de scope par match.appliquer: applique le pack de coupons à un article si possible.retirer: retire le pack de coupons d'un article.send_email_to_contact: Envoie un mail au contact pour le notifier de l'attribution du pack.