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()
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]