[
  {
    "trigger": "scan_data",
    "source": "guard_pin",
    "dest": "guardian_list_pin_authorization",
    "conditions": "cic_ussd.state_machine.logic.menu.menu_one_selected"
  },
  {
    "trigger": "scan_data",
    "source": "guardian_list_pin_authorization",
    "dest": "guardian_list",
    "conditions": "cic_ussd.state_machine.logic.pin.is_authorized_pin"
  },
  {
    "trigger": "scan_data",
    "source": "guardian_list_pin_authorization",
    "dest": "exit_pin_blocked",
    "conditions": "cic_ussd.state_machine.logic.pin.is_blocked_pin"
  },
  {
    "trigger": "scan_data",
    "source": "guard_pin",
    "dest": "add_guardian",
    "conditions": "cic_ussd.state_machine.logic.menu.menu_two_selected"
  },
  {
    "trigger": "scan_data",
    "source": "add_guardian",
    "dest": "add_guardian_pin_authorization",
    "after": [
      "cic_ussd.state_machine.logic.pin_guard.save_guardian_to_session_data",
      "cic_ussd.state_machine.logic.pin_guard.retrieve_person_metadata"
    ],
    "conditions": "cic_ussd.state_machine.logic.pin_guard.is_valid_guardian_addition"
  },
  {
    "trigger": "scan_data",
    "source": "add_guardian",
    "dest": "exit_invalid_guardian_addition",
    "unless": "cic_ussd.state_machine.logic.pin_guard.is_valid_guardian_addition"
  },
  {
    "trigger": "scan_data",
    "source": "add_guardian_pin_authorization",
    "dest": "exit_guardian_addition_success",
    "after": "cic_ussd.state_machine.logic.pin_guard.add_pin_guardian",
    "conditions": "cic_ussd.state_machine.logic.pin.is_authorized_pin"
  },
  {
    "trigger": "scan_data",
    "source": "add_guardian_pin_authorization",
    "dest": "exit_pin_blocked",
    "conditions": "cic_ussd.state_machine.logic.pin.is_locked_account"
  },
  {
    "trigger": "scan_data",
    "source": "guard_pin",
    "dest": "remove_guardian",
    "conditions": "cic_ussd.state_machine.logic.menu.menu_three_selected"
  },
  {
    "trigger": "scan_data",
    "source": "remove_guardian",
    "dest": "remove_guardian_pin_authorization",
    "after": [
      "cic_ussd.state_machine.logic.pin_guard.save_guardian_to_session_data",
      "cic_ussd.state_machine.logic.pin_guard.retrieve_person_metadata"
    ],
    "conditions": "cic_ussd.state_machine.logic.pin_guard.is_dialers_pin_guardian"
  },
  {
    "trigger": "scan_data",
    "source": "remove_guardian",
    "dest": "exit_invalid_guardian_removal",
    "unless": "cic_ussd.state_machine.logic.pin_guard.is_dialers_pin_guardian"
  },
  {
    "trigger": "scan_data",
    "source": "remove_guardian_pin_authorization",
    "dest": "exit_guardian_removal_success",
    "after": "cic_ussd.state_machine.logic.pin_guard.remove_pin_guardian",
    "conditions": "cic_ussd.state_machine.logic.pin.is_authorized_pin"
  },
  {
    "trigger": "scan_data",
    "source": "remove_guardian_pin_authorization",
    "dest": "exit_pin_blocked",
    "conditions": "cic_ussd.state_machine.logic.pin.is_locked_account"
  },
  {
    "trigger": "scan_data",
    "source": "exit_guardian_removal_success",
    "dest": "exit",
    "conditions": "cic_ussd.state_machine.logic.menu.menu_nine_selected"
  },
  {
    "trigger": "scan_data",
    "source": "exit_invalid_guardian_addition",
    "dest": "exit",
    "conditions": "cic_ussd.state_machine.logic.menu.menu_nine_selected"
  },
  {
    "trigger": "scan_data",
    "source": "exit_invalid_guardian_removal",
    "dest": "exit",
    "conditions": "cic_ussd.state_machine.logic.menu.menu_nine_selected"
  },
  {
    "trigger": "scan_data",
    "source": "guardian_list",
    "dest": "exit",
    "conditions": "cic_ussd.state_machine.logic.menu.menu_nine_selected"
  },
  {
    "trigger": "scan_data",
    "source": "guard_pin",
    "dest": "exit_invalid_menu_option"
  }
]