Skip to content

Instantly share code, notes, and snippets.

@Shtian
Created March 17, 2023 09:30
Show Gist options
  • Save Shtian/bf8499d47d5329b82212aade040c4b32 to your computer and use it in GitHub Desktop.
Save Shtian/bf8499d47d5329b82212aade040c4b32 to your computer and use it in GitHub Desktop.
mermaid diagrams for checkout state
 classDiagram
    VoiceCheckoutState --|> State
    VoiceCheckoutState : - orderProcessService
    VoiceCheckoutState : - recommendationService
    VoiceCheckoutState : - analyticsService
    VoiceCheckoutState : - orderReminderService
    VoiceCheckoutState : - store
    VoiceCheckoutState : - getIncludedServices()
    VoiceCheckoutState : - getSimBindingInfo()
    VoiceCheckoutState : - isOwnerSubscription()
    VoiceCheckoutState : + Selector getOfferingStates()
    VoiceCheckoutState : + Selector getAllowance()
    VoiceCheckoutState : + Selector getNewFamilyState()
    VoiceCheckoutState : + Selector getCustomerLevelServiceOfferings()
    VoiceCheckoutState : + Selector getSelectedVoiceOfferings()
    VoiceCheckoutState : + Selector getECommerceAnalytics()
    VoiceCheckoutState : + Selector getOrderId()
    VoiceCheckoutState : + Selector getOfferingModelStates()
    VoiceCheckoutState : + Selector getAnalyticsOverview()
    VoiceCheckoutState : + Selector getCustomerServiceOfferingIds()
    VoiceCheckoutState : + Selector getSelectedCustomerServices()
    VoiceCheckoutState : + Selector getOrderReminderVisitor()
    VoiceCheckoutState : + Selector getOrderReminderEventData()
    VoiceCheckoutState : + Selector getRecommendedOffering()
    VoiceCheckoutState : + Selector getAllRecommendedOfferings()
    VoiceCheckoutState : + Action addSubscription()
    VoiceCheckoutState : + Action trackAddSubscription()
    VoiceCheckoutState : + Action removeSubscription()
    VoiceCheckoutState : + Action changeSubscription()
    VoiceCheckoutState : + Action recommendOffering()
    VoiceCheckoutState : + Action useRecommendedOffering()
    VoiceCheckoutState : + Action addCustomerLevelService()
    VoiceCheckoutState : + Action removeCustomerLevelService()
    VoiceCheckoutState : + Action fetchOrderReminderSessionId()
    VoiceCheckoutState : + Action setOrderReminderReturningVisitor()
    VoiceCheckoutState : + Action createOrderReminderEvent()
    VoiceCheckoutState : + Action updateOwnerSubscription()
    VoiceCheckoutState : + Action postOrder()
Loading
graph LR
    A(AddSubscription) -->|calls| B[VoiceCheckoutState.addSubscription]
    C(ChangeSubscription) -->|calls| D[VoiceCheckoutState.changeSubscription]
    E(RemoveSubscription) -->|calls| F[VoiceCheckoutState.removeSubscription]
    G(TrackAddSubscription) -->|calls| H[VoiceCheckoutState.trackAddSubscription]
    I(UseRecommendedOffering) -->|calls| J[VoiceCheckoutState.useRecommendedOffering]
    K(RecommendOffering) -->|calls| L[VoiceCheckoutState.recommendOffering]
    M(AddCustomerLevelService) -->|calls| N[VoiceCheckoutState.addCustomerLevelService]
    O(RemoveCustomerLevelService) -->|calls| P[VoiceCheckoutState.removeCustomerLevelService]
    Q(CreateOrderReminderEvent) -->|calls| R[VoiceCheckoutState.createOrderReminderEvent]
    S(FetchOrderReminderSessionId) -->|calls| T[VoiceCheckoutState.fetchOrderReminderSessionId]
    U(SetOrderReminderVisitor) -->|calls| V[VoiceCheckoutState.setOrderReminderReturningVisitor]
    W(UpdateOwnerSubscription) -->|calls| X[VoiceCheckoutState.updateOwnerSubscription]

    B -->|uses selector| BA[ProductOfferingsState.getVoiceOfferingById]
    B -->|uses selector| BB[ProductOfferingsState.getCustomerLevelServiceOfferings]
    D -->|uses selector| DA[ProductOfferingsState.getVoiceOfferingById]
    J -->|uses selector| JA[ProductOfferingsState.getVoiceOfferingById]
    J -->|uses selector| JB[VoiceCheckoutState.getOfferingStates]
    L -->|uses selector| LA[ProductOfferingsState.getVoiceOfferingById]
    N -->|uses selector| NA[VoiceCheckoutState.getCustomerServiceOfferingIds]
    P -->|uses selector| PA[VoiceCheckoutState.getCustomerServiceOfferingIds]
    R -->|uses selector| RA[VoiceCheckoutState.getOrderReminderEventData]
    V -->|uses selector| VA[VoiceCheckoutState.getOrderReminderEventData]
    X -->|uses selector| XA[VoiceCheckoutState.getSelectedVoiceOfferings]
    X -->|uses selector| XB[VoiceCheckoutState.getOfferingStates]

    B -->|uses service| BA2[orderProcessService.createVoiceSubscription]
    D -->|uses service| DA2[orderProcessService.updateVoiceSubscription]
    H -->|uses service| HA[analyticsService.sendAddSubscriptionEvent]
    J -->|uses service| JA2[analyticsService.sendUseRecommendedOfferingEvent]
    L -->|uses service| LA2[recommendationService.getOfferingRecommendation]
    Q -->|uses service| QA[orderReminderService.createEvent]
Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment