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
  • Fais le lien entre une règle (déclencheur) et des cibles (portée)
  • Génère des PriorityItem quand un Article correspondant à la règle est acheté
  • Peut aussi générer un item si appliquée manuellement
  • Sert aussi à gérer les limites/l'état global (états, dates ...)
classDiagram
    class Priority {
        +bigint club_id
        +bigint saison_id
        +bigint id

        +int status
        +int priority_type

        +int articles_count

        +datetime start_date
        +datetime end_date
    }

    Priority "0..1" <--> "1" PriorityRule : déclencheur
    Priority "1" <--> "1" PriorityRange : portée
    Priority "1" <--> "0..n" PriorityDisponibility

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

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 :

    • manual : Règle manuelle, utilisable directement par un gestionnaire, pas de déclencheur
    • automated : Règle automatique, avec déclencheur

Dates de début et de fin

Pour les règles automatiques, délimite dans le temps l'usage de la règle (une règle, même active, est ignorée si on se trouve en dehors de sa fenêtre d'activation).

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 forcement 1. Sinon articles_count >= 1.

Déclencheurs PriorityRule

Optionnel.

Déclencheurs

Ensemble de filtres permettant de définir les articles qui, à l'achat, peuvent créer une priorité de vente (PriorityItem).

Évolutions possibles : différentes classes de déclencheurs. Prévoir une CTI.

Portées PriorityRange

Obligatoire.

Portées

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

Évolutions possibles : différentes classes de portées. Prévoir une CTI.

Priorités de vente.

Modèle enfant des règles.

Priorités de vente

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.

Autres règles et observations

  • Chaque Club aura un attribut administrable de limite de règles automatiques actives en même temps, afin d'éviter la surcharge de règle à vérifier à chaque achat.
  • Pour le moment, pas d'édition de règle une fois cette dernière activée.