[
  {
    "trigger": "scan_data",
    "source": "initial_language_selection",
    "dest": "initial_pin_entry",
    "after": "cic_ussd.state_machine.logic.user.change_preferred_language_to_en",
    "conditions": "cic_ussd.state_machine.logic.menu.menu_one_selected"
  },
  {
    "trigger": "scan_data",
    "source": "initial_language_selection",
    "dest": "initial_pin_entry",
    "after": "cic_ussd.state_machine.logic.user.change_preferred_language_to_sw",
    "conditions": "cic_ussd.state_machine.logic.menu.menu_two_selected"
  },
  {
    "trigger": "scan_data",
    "source": "initial_language_selection",
    "dest": "help",
    "conditions": "cic_ussd.state_machine.logic.menu.menu_three_selected"
  },
  {
    "trigger": "scan_data",
    "source": "initial_language_selection",
    "dest": "exit_invalid_menu_option"
  },
  {
    "trigger": "scan_data",
    "source": "initial_pin_entry",
    "dest": "initial_pin_confirmation",
    "after": "cic_ussd.state_machine.logic.pin.save_initial_pin_to_session_data",
    "conditions": "cic_ussd.state_machine.logic.pin.is_valid_pin"
  },
  {
    "trigger": "scan_data",
    "source": "initial_pin_entry",
    "dest": "exit_invalid_pin"
  },
  {
    "trigger": "scan_data",
    "source": "initial_pin_confirmation",
    "dest": "start",
    "conditions": [
      "cic_ussd.state_machine.logic.pin.pins_match",
      "cic_ussd.state_machine.logic.validator.has_cached_user_metadata"
    ],
    "after": [
      "cic_ussd.state_machine.logic.pin.complete_pin_change",
      "cic_ussd.state_machine.logic.user.get_user_metadata",
      "cic_ussd.state_machine.logic.user.update_account_status_to_active"
    ]
  },
  {
    "trigger": "scan_data",
    "source": "initial_pin_confirmation",
    "unless": "cic_ussd.state_machine.logic.validator.has_cached_user_metadata",
    "conditions": "cic_ussd.state_machine.logic.pin.pins_match",
    "dest": "enter_given_name",
    "after": [
      "cic_ussd.state_machine.logic.pin.complete_pin_change",
      "cic_ussd.state_machine.logic.user.update_account_status_to_active"
    ]
  }
]
