name: pro_rata
version: 3
start: preparar

nodes:
  - id: preparar
    action: preparar_pro_rata
    input:
      msisdn: $.input.msisdn
      planos: $.input.planos
      has_plano_controle: $.input.has_plano_controle

  - id: formatar
    action: formatar_pro_rata
    input:
      mensagem_base: $.vars.preparar.mensagem
    pause:
      enabled: true
      when:
        eq: [$.vars.preparar.await_user_input, true]
      return_from: $.output.mensagem
      expected_input:
        key: resposta_usuario
        allowed_values: ["SIM", "NAO", "OUTRO"]
        normalize: upper_strip
      resume_from: decisao_esclarecimento

  - id: decisao_esclarecimento
    action: no_op
    input: {}

  - id: devolver_orquestrador
    action: no_op
    input: {}

  - id: reperguntar_esclarecimento
    action: formatar_pro_rata
    input:
      mensagem_base: $.vars.preparar.mensagem_reperguntar_esclarecimento
    pause:
      enabled: true
      return_from: $.output.mensagem
      expected_input:
        key: resposta_usuario
        allowed_values: ["SIM", "NAO", "OUTRO"]
        normalize: upper_strip
      resume_from: decisao_esclarecimento

  - id: registrar_nao_controle
    action: registrar_atendimento_pro_rata
    input:
      msisdn: $.input.msisdn
      mensagem_base: $.vars.formatar.mensagem
      caminho: nao_controle

  - id: registrar_aceitou
    action: registrar_atendimento_pro_rata
    input:
      msisdn: $.input.msisdn
      mensagem_base: $.vars.preparar.mensagem_pos_aceite
      caminho: aceitou
      ic: VEB.003

edges:
  - from: preparar
    to: formatar

  - from: formatar
    to: decisao_esclarecimento
    priority: 10
    when:
      eq: [$.vars.preparar.await_user_input, true]

  - from: formatar
    to: registrar_nao_controle
    priority: 20

  - from: decisao_esclarecimento
    to: registrar_aceitou
    priority: 10
    when:
      eq: [$.input.resposta_usuario, SIM]

  - from: decisao_esclarecimento
    to: devolver_orquestrador
    priority: 20
    when:
      eq: [$.input.resposta_usuario, NAO]

  - from: decisao_esclarecimento
    to: reperguntar_esclarecimento
    priority: 30

  - from: devolver_orquestrador
    to: END

  - from: reperguntar_esclarecimento
    to: decisao_esclarecimento

  - from: registrar_nao_controle
    to: END

  - from: registrar_aceitou
    to: END
