Configuration du stade par Match
RD7534 - Intégration de la gestion de l'enceinte au match
État : En production v1.1 tag: 1.1.0
La documentation est en cours de réécriture donc elle peut encore contenir des fautes
Info général
La configuration du stade permet de modifier la disponibilité, le réservoir et la catégorie de place pour les places ou les zones dans une configuration avec un nom et une description. Cette configuration peut-être ensuite utilisé pour un produit ou pour un match.
Une configuration peut-être utilisé comme configuration par défaut, ça aura pour effet que toutes les nouvelles configurations de stade créer seront basées sur celle-ci sauf si on choisi une autre configuration en tant que modèle.
Attention: La disponibilité de la place ne concerne pas la disponibilité de la place en terme de vente. Une fois une place achetée, elle ne sera pas disponible quelque soit l'état de la disponibilité coté configuration. Elle permet uniquement de retirer une place à la vente pour éviter qu'elle soit vendu. Si elle est déjà vendu, la commande ne sera pas annulé automatiquement, il faudra gérer ce cas manuellement.
Diagramme
classDiagram
class ConfigurationStade {
+int id
+int saison_id
+ConfigurationStade generate_from
+int etat_generation
+int type_of_configuration
+bool default
+datetime discarded_at
}
class ConfigurationZone {
+int id
+int zone_logique_id
+string couleur_principale
+int nbre_place
+bool place
}
ConfigurationStade "0..*" <--> "1" ConfigurationZone : configuration_stade
class ConfigurationPlace {
+int id
+int place_logique_id
+int categorie_place_id
+int reservoir_id
+bool disponible
}
ConfigurationZone "0..*" <--> "1" ConfigurationPlace : configuration_zone
Détail ConfigurationStade
generate_from: La configuration à utiliser lors de la génération (Par défaut récupère la configuration du stade par défaut pour la même saison)etat_generation: Enum avec les valeurs (en_attente, en_cours, termine, erreur)On peut connaître l'avancement avec l'aide de la fonction
pourcentage_generationtype_of_configuration: Le type de configuration- template (Peut-être utilisé pour générer une nouvelle configuration de stade)
On peut utiliser n'importe quel Configuration de Stade pour générer une nouvelle configuration de stade mais il est recommandé de plutôt ce basé sur des modèles créer en amont.
- match (Doit-être utilisé uniquement pour un match)
On peut utiliser une Configuration de Stade de type match pour plusieurs produits coté Back mais c'est déconseillé, car un club pourrait par accident changer la configuration d'un autre match ou d'un autre produit sans en être informé.
- formule (Doit-être utilisé uniquement pour des formules)
- template (Peut-être utilisé pour générer une nouvelle configuration de stade)
default: La configuration de stade par défaut (On peut avoir qu'une seule configuration par défaut par saison)discarded_at: Permet de faire un soft-delete
Détail ConfigurationZone
zone_logique_id: La zone logique concerné par la configuration.couleur_principale: La couleur principale affiché sur le stade.Si on choisi qu'une seule catégorie de place pour l'ensemble des places logiques, alors cette valeur sera égale à la couleur de la catégorie de place. Si on en a plusieurs de choisis, alors le dashboard demandera de choisir une couleur parmis les catégorie de place choisi ou bien la couleur "Mixte" défini dans le club avec le champ
couleur_zone_mixe.place: Permet de définir si la zone est placée ou non. (Pour le moment, le champ n'est pas utilisé)nbre_place: Si la zone est en non placé, alors ça permet de choisir le nombre de place maximum autorisé pour un match. (Pour le moment, le champ n'est pas utilisé)
Détail ConfigurationPlace
place_logique_id: La place logique concerné par la configuration.disponible: Si la place est disponible à la vente ou non.reservoir_id: Le réservoir de la place.categorie_place_id: La catégorie de place de la place.
ActiveModel ConfigurationStadeAction
L'ActiveModel est utilisé pour mettre à jour la configuration d'un stade depuis le dashboard.
Diagramme
classDiagram
class ConfigurationStadeAction {
+int configuration_stade_id
+string couleur_principale
+int[] modele_article_ids
+bool disponible
+int reservoir_id
+int categorie_place_id
+int[] zone_logique_ids
+int[] place_logique_ids
+available_matchs() Match[]
+process() void
+prepare_to_view(with_configuration_place: false, with_configuration_zone: true) Array
+self.permit_params() Hash
}
Filtres disponibles
-
configuration_stade_id: La configuration à modifier -
zone_logique_ids: Liste des zones logiques concernées par la configuration -
place_logique_ids: Liste des places logiques concernées par la configuration
Configurations disponibles
-
en_vente: Si les places sont disponibles à la vente ou non -
reservoir_id: Le réservoir pour les places de la sélection -
categorie_place_id: La catégorie de place pour les places de la sélection -
modele_article_ids: Permet d'associer une liste de modèle article à la configuration
Méthodes disponibles
-
available_matchs: Retourne les matchs qui peuvent être configurésFiltre sur tout les matchs ou la billetterie n'a pas encore été cloturé
-
prepare_to_view: Renvoie les données avec les données.Example : configuration_places, configuration_zones = prepare_to_view
Pour les configurations de zone et les configurations de place, il renvoie aussi:
- disponibles : boolean[]
- reservoir_ids : int[]
- categorie_place_ids : int[]
-
process: Permet de traité les changements
ActiveModel ConfigurationStadeBuilder
L'ActiveModel est utilisé pour générer les configurations de zone et de place. Il est utilisé généralement par le job ConfigurationStadeBuilderJob.
Il permet de gérer l'ancien format de configuration (la configuration était directement dans les zones/places logiques).
Il gère aussi le nouveau format (ConfigurationStade) avec la récupération de la configuration du stade à utilisé pour la génération avec l'aide de la méthode generate_from.
Diagramme
classDiagram
class ConfigurationStadeBuilder {
+int configuration_stade
+process() void
}
Filtres disponibles
configuration_stade: La configuration à générer (int ou directement la configuration de stade)
Méthodes disponibles
process: Permet de traité les changements
API
ActiveModel PlaceDisponibilite
L'ActiveModel est utilisé pour récupérer l'état de disponibilité des places depuis un modèle article. On peut également activer le mode debug qui va afficher plein d'informations supplémentaires dans la console pour aider à comprendre pourquoi une place est disponible ou non.
Diagramme
classDiagram
class ConfigurationStadeBuilder {
+initialize(modele_article, debug: false) void
+disponible?(place_logique_id) bool
+take! PlaceLogique
+place_logiques_view PlaceLogique[]
+zone_logiques_view ZoneLogique[]
+categorie_places_view CategoriePlace[]
}
Méthodes disponibles
disponible?: Permet de savoir si une place est disponible pour le modèle articletake!: Permet de récupérer une place disponibleplace_logiques_view: Renvoie l'état de disponibilité des places avec leurs configurations (Utilisé coté MiniSite pour afficher les détails d'une zone logique)zone_logiques_view: Renvoie l'état de disponibilité des zones avec leurs configurations (Utilisé coté MiniSite pour afficher le stade)categorie_places_view: Renvoie les catégories de place avec leurs disponibilités sur le stade