Aller au contenu

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 les ModeleArticle descendants).
  • 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é.