2021-11-12
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_clientuuid | z_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_subscriptionuuid | p_clientuuid | z_subscriptionnumber |
|---|---|---|
| 08601fae-c10f-4118-885f-cbe9bef73c35 | bb0b01df-7695-4a63-8fe0-bc6a2d4a402a | S00073342 |
| bb0b01df-7695-4a63-8fe0-bc6a2d4a4022 | bb0b01df-7695-4a63-8fe0-bc6a2d4a402a | S00067807 |
p_subscriptionuuid unique p_f_clientuuid pas unique z_subscriptionnumber unique
zuora_product
| p_marketingproductid | p_subscriptionuuid | z_chargenumber |
|---|---|---|
| 131247 | 08601fae-c10f-4118-885f-cbe9bef73c35 | C00002561 |
| 131249 | 08601fae-c10f-4118-885f-cbe9bef73c35 | C00379785 |
| 131249 | 08601faz-c10f-4118-885f-abe9bef73c39 | C00379781 |
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
- sur la facturation:
- le Revendeur upgradé sur la facturation et techniquement pourra agir :
- 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
- sur la facturation:
- le Revendeur upgradé sur la facturation pourra agir :
- le Client final (workspace) est upgradé techniquement (stockage) et le Revendeur upgradé sur sa facturation
- 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_clientuuid | z_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_workspace | p_clientuuid |
|---|---|
| toto1 | bb0b01df-7695-4a63-8fe0-bc6a2d4a402a (Client final) |
| toto2 | 110b01df-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_subscriptionuuid | p_workspace | z_subscriptionnumber |
|---|---|---|
| 08601fae-c10f-4118-885f-cbe9bef73c35 | toto1 | S00073342 |
| bb0b01df-7695-4a63-8fe0-bc6a2d4a4022 | toto2 | S00067807 |
| ab0b01df-7695-4a65-8fe0-bc6a2d4a4021 | toto3 | S00067832 |
| ub0b91df-4695-4a65-dfe0-bc6a2daa4026 | toto4 | S0006782323 |
les trois champs contiennent des valeurs uniques 1 workspace = 1 subscription
zuora_product
| p_marketingproductid | p_subscriptionuuid | z_chargenumber |
|---|---|---|
| 131247 | 08601fae-c10f-4118-885f-cbe9bef73c35 | C00002561 |
| 13123 | bb0b01df-7695-4a63-8fe0-bc6a2d4a4022 | C00379785 |
| 131249 | ab0b01df-7695-4a65-8fe0-bc6a2d4a4021 | C00379781 |
| 131249 | ub0b91df-4695-4a65-dfe0-bc6a2daa4026 | C00379782 |
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