2021-11-12

#oodrive

Point "Vérification gestion des workspace dans BDD composant intermédiaire"

@mamalet.franck @breant.fabien

Rappel

Après la réunion du 2021-11-10, nous avions un doute par rapport au modèle que nous exposion

Point gestion fonctionnelle du Resell dans la plate-forme

#oodrive @mamalet.franck @divol.jeanlouis

Par rapport au schéma du CR-2021-09-30

  • Dans le cas du Resell dans la plate-forme, le revendeur est "vu" comme un P.client qui auraient plusieurs workspaces
  • Chaque WS identifie de façon unique un client
    • il n' y a pas 2 WS différents pour un client d'un revendeur
  • Chaque WS a une famille de produit et reste donc par définition mono-produit
  • Il n'est pas envisagé d'aller vers un modèle de vente ReSell avec du multi-produit

Par conséquence, le composant intermédiaire va créer

  • Un Client correspondant au revendeur avec N WS correspondants aux N clients de ce revendeur
  • Un WS est associé à une Souscription unique

pour rappel notre modèle, qui va dans le sens de nos point fonctionnels et de la recette mené:

zuora_client

p_clientuuidz_accountnumber
bb0b01df-7695-4a63-8fe0-bc6a2d4a402a (Client final)BA00257046 (Client VD)
110b01df-5695-4a63-8450-1c6a2d4a402b (Client final)BA00297148 (Client Cosell)
b10b01da-5695-4a63-8450-2c6a2d4a402Z (Client final)BA00297142 (Revendeur Resell)
e10b01de-5695-4a63-8450-rc6a2d4a402T5 (Client final)BA00297142 (Revendeur Resell)

p_clientuuid unique z_accountnumber pas unique

Les deux premières lignes sont des cas ventes directe ou cosell, indistinctement. Les lignes 3 et 4 correspondent au cas resell. Ici le revendeur est seulement connu de Zuora (partie facturation) quand au client final et son ou ses subscription sont connus pour la facturation par Zuora et pour la partie technique par Plateforme.

C'est une vision bottom-up: les clients et leurs subscriptions définissent le revendeur. On définit un client et on l'attribut à un revendeur, le stockage de ce client est ajouté au stockage du revendeur;

=> l'ugrade auto est évident et en phase avec la vision sales & ADV exprimée (recette, points)

ce qui permettait de faire découler les élements suivants:

zuora_subscription

p_subscriptionuuidp_clientuuidz_subscriptionnumber
08601fae-c10f-4118-885f-cbe9bef73c35bb0b01df-7695-4a63-8fe0-bc6a2d4a402aS00073342
bb0b01df-7695-4a63-8fe0-bc6a2d4a4022bb0b01df-7695-4a63-8fe0-bc6a2d4a402aS00067807

p_subscriptionuuid unique p_f_clientuuid pas unique z_subscriptionnumber unique

zuora_product

p_marketingproductidp_subscriptionuuidz_chargenumber
13124708601fae-c10f-4118-885f-cbe9bef73c35C00002561
13124908601fae-c10f-4118-885f-cbe9bef73c35C00379785
13124908601faz-c10f-4118-885f-abe9bef73c39C00379781

p_marketingproductid unique p_f_subscriptionuuid pas unique z_chargenumber unique

Conclusion de la réunion du 2021-11-10: il nous manque des éléments pour lier depuis Plateforme les clients finaux du revendeur resell avec ce qui est disponible dans Zuora

Le point de ce Jour

Le modèle exposé au dessus n'interesse pas Plateforme, la notion de Revendeur sera donc gardé dans Plateforme sous le terme Client(revendeur ou grossiste), à ne pas confondre avec le Client(client);

  • des modifications profondes du modèles Plateforme ont été réalisé dernièrement
    • le revendeur / grossiste (revendeur resell) n'ont plus d'entités spécifiques et deviennent des clients
    • ces Clients (revendeur / grossiste) vont avoir N workspace correspondant aux N clients finaux Client(client)
    • dans l'état actuel, 1 workspace = 1 Client(client), à voir dans le futur
    • ces N workspace vont avoir 1 seule subscription
    • cette subscription va avoir 1 type de produit

C'est une vision top-down: un Client(revendeur/grossite) avec un type de subscription est défini, il possède un stockage et le redistribue à ces workspace(Client(client)).

A partir d'ici, pour simplifier:
- Client(revendeur/grossite) = Revendeur
- Client(client) = Client final

=> l'upgrade auto n'est pas évident et n'est pas en phase avec la vision sales & ADV exprimée (recette, points):

  • contrôle du stockage du Workspace et upgrade de la facturation/technique du Revendeur (stratégie du magasin "épicerie")?
    • le Revendeur upgradé sur la facturation et techniquement pourra agir :
      • sur la facturation:
        • il upgrade la facturation du Client final
        • il choisit une autre politique
      • techniquement (stockage):
        • il upgrade techniquement le Client final
        • il choisit une autre politique
  • contrôle du stockage du Workspace et upgrade technique du Client final (stratégie du magasin "épicerie") ?
    • le Client final (workspace) est upgradé techniquement (stockage) et le Revendeur upgradé sur sa facturation
      • le Revendeur upgradé sur la facturation pourra agir :
        • sur la facturation:
          • il upgrade la facturation du Client final
          • il choisit une autre politique
  • contrôle du stockage du Revendeur (ensemble de ces stockages) et upgrade de la facturation/technique du Revendeur (stratégie du magasin "tout à 1€") ?
    • similaire premier cas pour la suite mais avec l'obligation d'avoir exactement le même type de produit (stockage et barème de prix) et donc avoir un compte Revendeur par type de produit

Ce qui nous donne la structure en table suivante:

zuora_client

p_clientuuidz_accountnumber
bb0b01df-7695-4a63-8fe0-bc6a2d4a402a (Client final)BA00257046 (Client VD)
110b01df-5695-4a63-8450-1c6a2d4a402b (Client final)BA00297148 (Client Cosell)
b10b01da-5695-4a63-8450-2c6a2d4a402Z (Revendeur Resell)BA00297142 (Revendeur Resell)

les deux champs contiennent des valeurs uniques le champs clientuuid peux contenir soit un Client final soit un Revendeur Resell (le polymorphisme de la table public.Account de plateforme le permet)

zuora_workspace

p_workspacep_clientuuid
toto1bb0b01df-7695-4a63-8fe0-bc6a2d4a402a (Client final)
toto2110b01df-5695-4a63-8450-1c6a2d4a402b (Client final)
toto3 (Client final)b10b01da-5695-4a63-8450-2c6a2d4a402Z (Revendeur Resell)
toto4 (Client final)b10b01da-5695-4a63-8450-2c6a2d4a402Z (Revendeur Resell)

les deux champs contiennent des valeurs uniques 1 workspace = 1 client

zuora_subscription

p_subscriptionuuidp_workspacez_subscriptionnumber
08601fae-c10f-4118-885f-cbe9bef73c35toto1S00073342
bb0b01df-7695-4a63-8fe0-bc6a2d4a4022toto2S00067807
ab0b01df-7695-4a65-8fe0-bc6a2d4a4021toto3S00067832
ub0b91df-4695-4a65-dfe0-bc6a2daa4026toto4S0006782323

les trois champs contiennent des valeurs uniques 1 workspace = 1 subscription

zuora_product

p_marketingproductidp_subscriptionuuidz_chargenumber
13124708601fae-c10f-4118-885f-cbe9bef73c35C00002561
13123bb0b01df-7695-4a63-8fe0-bc6a2d4a4022C00379785
131249ab0b01df-7695-4a65-8fe0-bc6a2d4a4021C00379781
131249ub0b91df-4695-4a65-dfe0-bc6a2daa4026C00379782

le champs p_subscriptionuuid et z_chargenumber contiennent des valeurs uniques tout les produits (p_marketingproductid) des subscriptions d'un Revendeur Resell ont les même valeurs. Ex: les deux dernières lignes

Conclusion

Cette structure de base et les développements effectués ne vont pas dans les sens des modifications de Plateforme.

Le besoin fonctionnel doit être valider.

Des développement doivent être engagé pour modifier le composant intermédiaire