Aller au contenu

Règles de priorité

Conception du modèle Priority

Une règle de priorité :

  • Est le modèle parent du module, il sert à configurer les priorités de vente
  • Génère des PriorityItem quand elle est attribuée à un contact.
  • Sert aussi à gérer les limites/l'état global (états, ouverture ...)
classDiagram
    class Priority {
        +bigint club_id
        +bigint saison_id
        +bigint id

        +int status
        +int priority_type
        +int target_type

        +int articles_count
    }

    Priority "0..n" <--> "0..n" FiliereVente
    Priority "0..n" <--> "0..n" CategoriePublic
    Priority "1" <--> "0..n" PriorityDisponibility

    Priority "0..n" <--> "0..n" TemplateArticleEvent
    Priority "0..n" <--> "0..n" Event

    Priority "0..n" <--> "0..n" Formule

    Priority "0..n" <--> "1" PriorityItem   

Statut et type

  • Statut status :

    • draft : état brouillon, ignoré dans les jobs
    • active : état actif, utilisé dans les jobs, limité par club si automatique
    • inactive : état archivé, équivalent à un soft delete mais toujours visible dans les listes
  • Type priority_type :

    • with_place : Verrouille une place
    • without_place : Ne verrouille pas de place
  • Type de portée target_type:

    • events : Cible un ou plusieurs TemplateArticleEvent et un ou plusieurs Event => On démultiplie les disponibilités pour chaque events.
    • formules : Cible une ou plusieurs Formules => une seule disponibilité globale
    • bundles : Cible les pass, à déterminer.

Nombre d'articles

articles_count : Défini le nombre d'articles auxquels pes PriorityItems donnent droit. Si la règle bloque des places, alors articles_count est forcément 1. Sinon articles_count >= 1.

Disponibilités PriorityDisponibility

Modèle servant à la gestion des ouvertures des priorités à la vente. Pour chaque règle, on a une disponibilité par couple [FiliereVente, CategoriePublic].

Pour le fonctionnement général, cf ArticleDisponibilite.

Portée

Ensemble de filtres déterminant les produits rendus accessibles par les priorités de vente (PriorityItem) générés.

Priorités de vente.

Modèle enfant des règles.

Priorités de vente

Attribution

  • Selon la valeur de priority_type, deux modes d'attribution :
  • Si with_place : attribution manuelle => choix d'un contact et de sa place.
  • Si without_place: attribution en bulk, sous le même format que les packs de coupons.

Pour le cas without_place, on peut soit choisir une liste de contacts à la main, soit une ListeContact.

Question : On garde le système semi-automatique des TemplatePackcoupon? Cela risque d'entrer en concurrence avec le futur module d'automatisation. Suggestion : lors d'une attribution, permettre ou non les doublons afin de pouvoir réutiliser des listes + Ajouter dès le début la gestion par contact des PriorityItem.

Autres règles et observations

  • Pour le moment, pas d'édition de règle une fois cette dernière activée.
  • Évolution des tarifs : possibilité de définir, pour un groupe de tarif, s'il est disponible, ou non, pour les ventes en priorité ?