Template Pack Coupon
Modèle générateur de pack de coupons. Modèle principal d'administration des packs de coupons.
MCD
classDiagram
class TemplatePackCoupon {
+string nom
+text description
+integer type_coupon
+integer type_produit
+integer type_cible
+integer taille
+integer type_expiration
+date date_expiration
+integer max_par_commande
}
TemplatePackCoupon "0..1" <--> "0..n" Saison : saison_expiration
TemplatePackCoupon "0..1" <--> "0..n" Competition : competition_expiration
TemplatePackCoupon "0..n" <--> "0..n" Match : s'applique à
TemplatePackCoupon "0..1" <--> "0..n" Competition : s'applique à (competition)
TemplatePackCoupon "1" <--> "0..n" TemplateArticleMatch : produit
TemplatePackCoupon "1..n" <--> "0..n" CategoriePlace
TemplatePackCoupon "1" <--> "0..n" CategoriePublic
Attributs
nom: Nom du pack de coupons.description: Description du pack de coupons.type_coupon: Type de coupon. Enum.- 0: Coupon au match.
- 1: Coupon récurrent.
type_produit: Type de produit. Enum.- 0: Publique.
- 1: Privé.
type_cible: Type de cible (s'applique à). Enum.- 0: matchs.
- 1: competitions.
taille: Taille du pack de coupons (nb de coupons pas pack).type_expiration: Type d'expiration du pack de coupons. Enum.- 0: Date personalisée.
- 1: Date de fin de saison.
- 2: Date de fin de compétition.
statut: Statut du pack de coupons. Enum.- 0: brouillon. Modifiable, archivable, les mails ne sont pas envoyés.
- 1: actif. Non modifiable, non archivable, les mails sont envoyés.
- 2: archivé. Non modifiable, les mails ne sont pas envoyés, non utilisable, non listé.
date_expiration: Date de fin du pack de coupons.max_par_commande: Nombre max de coupons par commande.
Associations
saison_expiration(Saison): Saison de l'expiration du pack de coupons (uniquement si type_expiration = 1)..competition_expiration(Competition): Compétition de l'expiration du pack de coupons (uniquement si type_expiration = 2).s'applique à(Matchs) : Liste du ou des matchs sur lesquels le coupon s'applique.s'applique à(competition)(Competition) : Compétition sur laquelle le coupon s'applique.produit(TemplateArticleMatch) : Produit sur lequel le coupon s'applique (tous lesModeleArticledescendants).categorie_place(CategoriePlace) : Catégorie de place sur laquelle le coupon s'applique.categorie_public(CategoriePublic) : Catégorie de public sur laquelle les coupons s'appliquent, si le contact n'est pas de cette catégorie, il y a accès dans le cadre du coupon.
Fonctionnement
Type de cible (type_cible)
Affecte la méthode matchs_cible
Si matchs => matchs_cibles == matchs
Si competitions => match_cibles == competitions.matchs
Type de coupon (type_coupon)
0: Coupon au match.
Le pack de coupon donne accès à taille coupons, utiliables sur l'ensemble des Matchs(s'applique à).
1: Coupon récurrent.
Le pack de coupon donne accès à taille coupons pour chacun des Matchs(s'applique à).
Type de produit (type_produit)
0: Publique.
Valeur par défaut.
1: Privé.
Posséder le pack donne accès à un produit privé supplémentaire. L'accès au produit se fait via des interfaces supplémentaires (Profil > Mes coupons > Sélection du match > Page d'achat du produit)
Expiration
Une fois la date_expiration atteinte, le pack de coupon n'est plus utilisable.
Si une saison_expiration ou competition_expiration est définie, la date_expiration est automatiquement définie à la valeur de leur date de fin (+ automatisme pour màj).
Sélection des matchs
Sélection de un ou plusieurs matchs. Possibilité de sélectionner tous les matchs d'une compétition. (Automatisme?)
Méthodes
contact_count: Retourne le nombre de contacts ayant un pack de coupons générés par ce template.matchs_cible: Renvoi les matchs auxquels le pack de coupon s'applique, selon le type de cible.matchs_cible_count: Retourne le nombre de matchs auxquels le pack de coupon s'applique, selon le type de cible.get_expiration: Retourne la date d'expiration selon le type d'expiration.expired?: Retourne true si le pack de coupon est expiré.send_mails_to_contacts: Envoie les mails notifiants aux contacts qu'un pack leur a été attribué.