Aller au contenu

Formule

Template et regroupement de plusieurs ModeleArticle de type abonnement ou pack. Sert à gérer plusieurs formules (attributes, assets, ...).

MCD

classDiagram
    class Formule {
      +bigint id
      +string nom
      +string description
      +text condition_acces_tarif_reduit

      +integer etat

      +integer limite_place
      +integer limite_place_par_personne

      +integer type_formule
      +integer type_placement

      +integer duree_mise_en_vente
      +integer type_cible_mise_en_vente
      +integer position_duree_mise_en_vente
      +integer type_duree_mise_en_vente
      +date date_mise_en_vente
      +bigint match_mise_en_vente_id

      +integer type_format
      +integer type_qr
      +integer type_visuel

      +bigint catalogue_filiere_id
      +bigint club_id
      +bigint template_ticket_id
    }


    Formule "1" <--> "0..n" File : assets
    Formule "0..*" <--> "0..*" PointControl : point_controls
    Formule "1" <--> "0..*" TemplateTicket : visuel_billet
    Formule "1" <--> "0..*" CategoriePublic : categorie_publics
    Formule "0..1" <--> "0..*" ModeleArticle : disponiblites_vente

Explication MCD

Formule

Attributs

  • nom, description, condition_acces_tarif_reduit: informations descriptives de la Formule
  • etat: Enum. Etat actuel de la formule.

    • brouillon: valeur par défaut
    • actif
    • pause
    • archive
    • prive
  • type_formule: enum, Abonnement ou Pack

  • type_placement: enum, Placé ou Non placé

  • limite_place: nb max achetable

  • limite_place_par_personne: nb max achetable pour 1 personne

  • duree_mise_en_vente, type_cible_mise_en_vente, position_duree_mise_en_vente, type_duree_mise_en_vente, date_mise_en_vente, match_mise_en_vente_id: attributs servant à définir la date de disponibilité de la formule à la vente. Optionels.

    • duree_mise_en_vente: integer, quantité de l'unité de temps
    • type_duree_mise_en_vente: enum, Jour, Semaine, Mois ou Annee, définit l'unité de temps utilisée
    • position_duree: enum, Avant ou Après, définit si on compte la durée avant ou après la date cible
    • type_cible_mise_en_vente: enum, Debut Saison, Fin Saison, Match, Date Personalisée, définit par rapport à quel évenement on se place pour la mise en vente
    • date_mise_en_vente: date personalisée (si et seulement si type_cible est Date Personalisée)
    • match_mise_en_vente_id: match cible (si et seulement si type_cible vaut Match)
  • type_format: enum, définit le type de format du billet

  • type_qr: enum, définit le type de qr du billet
  • type_visuel: enum, définit le type de visuel du billet
  • template_ticket_id: référence au TemplateTicket de référence

Assets

Assets nécéssaires à la mise en vente des ModeleArticle enfants, 2 catégories: + Assets pour le site: bannière, miniature, plan du stade (si non placé)... + Assets du billet.

Associations

  • disponibilites_vente: ModeleArticle enfants
  • Pour le reste, cf les specs de ModeleArticle

Fonctionnement

Liens avec ModeleArticle

Dès l'ajout d'une CategoriePublic, on génère un ModeleArticle correspondant, en copiant tous les attributs, relations et assets de la Formule. Chaque modification de la formule doit se répercuter sur les ModeleArticle enfants. En cas de suppression d'une CategoriePublic: soft-delete ou archivage du ModeleArticle.

Formulaires

Les formulaires (création, édition, visuel billet), sont séparés en plusieurs étapes. Chaque étape est gérée par une classe du module Formules.