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 laFormule-
etat: Enum. Etat actuel de la formule.brouillon: valeur par défautactifpausearchiveprive
-
type_formule: enum,AbonnementouPack -
type_placement: enum,PlacéouNon 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 tempstype_duree_mise_en_vente: enum,Jour,Semaine,MoisouAnnee, définit l'unité de temps utiliséeposition_duree: enum,AvantouAprès, définit si on compte la durée avant ou après la date cibletype_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 ventedate_mise_en_vente: date personalisée (si et seulement si type_cible estDate Personalisée)match_mise_en_vente_id: match cible (si et seulement si type_cible vautMatch)
-
type_format: enum, définit le type de format du billet type_qr: enum, définit le type de qr du billettype_visuel: enum, définit le type de visuel du billettemplate_ticket_id: référence auTemplateTicketde 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:ModeleArticleenfants- 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.