141 lines
3.6 KiB
YAML
141 lines
3.6 KiB
YAML
name: vas_estrategico
|
|
version: 3
|
|
start: preparar
|
|
|
|
nodes:
|
|
- id: preparar
|
|
action: preparar_vas_estrategico
|
|
input:
|
|
items: $.input.items
|
|
linhas: $.input.linhas
|
|
pause:
|
|
enabled: true
|
|
when:
|
|
eq: [$.output.await_user_input, true]
|
|
return_from: $.output.mensagem
|
|
expected_input:
|
|
key: resposta_usuario
|
|
allowed_values: ["SIM", "NAO", "OUTRO"]
|
|
normalize: upper_strip
|
|
resume_from: decisao
|
|
|
|
- id: resposta_bundle
|
|
action: montar_resposta_texto
|
|
input:
|
|
dados:
|
|
texto_usuario: $.vars.preparar.mensagem_bundle_fechamento
|
|
|
|
- id: decisao
|
|
action: no_op
|
|
input: {}
|
|
|
|
- id: resposta_sim
|
|
action: montar_resposta_texto
|
|
input:
|
|
dados:
|
|
texto_usuario: $.vars.preparar.mensagem_pos_aceite
|
|
|
|
- id: explicar_cancelamento
|
|
action: montar_explicacao_cancelamento_vas_estrategico
|
|
input:
|
|
linhas: $.vars.preparar.linhas
|
|
orientacoes_cancelamento: $.input.orientacoes_cancelamento
|
|
|
|
- id: registrar_sim
|
|
action: registrar_atendimento_vas_estrategico
|
|
input:
|
|
linhas: $.vars.preparar.linhas
|
|
mensagem_base: $.vars.resposta_sim.mensagem
|
|
request_status: "Fechado"
|
|
status: "CLOSED"
|
|
|
|
- id: registrar_nao
|
|
action: registrar_atendimento_vas_estrategico
|
|
input:
|
|
linhas: $.vars.preparar.linhas
|
|
mensagem_base: $.vars.explicar_cancelamento.mensagem
|
|
request_status: "Fechado"
|
|
status: "CLOSED"
|
|
|
|
- id: registrar_bundle
|
|
action: registrar_atendimento_vas_estrategico
|
|
input:
|
|
linhas: $.vars.preparar.linhas
|
|
mensagem_base: $.vars.resposta_bundle.mensagem
|
|
request_status: "Fechado"
|
|
status: "CLOSED"
|
|
|
|
- id: registrar_outro
|
|
action: registrar_atendimento_vas_estrategico
|
|
input:
|
|
linhas: $.vars.preparar.linhas
|
|
mensagem_base: "Atendimento encerrado sem confirmação de manutenção do serviço."
|
|
request_status: "Fechado"
|
|
status: "CLOSED"
|
|
|
|
edges:
|
|
- from: preparar
|
|
to: decisao
|
|
priority: 10
|
|
when:
|
|
eq: [$.vars.preparar.await_user_input, true]
|
|
|
|
- from: preparar
|
|
to: resposta_bundle
|
|
priority: 20
|
|
|
|
# Decisão pós-pausa. A pergunta "aceitou a explicação?" decide ANTES da
|
|
# distinção bundle (igual ao diagrama). OUTRO nunca chega aqui: o runtime
|
|
# intercepta resposta ambígua antes de retomar (fluxo_repergunta_outro
|
|
# re-explica e repergunta), então resposta_usuario é sempre SIM ou NAO.
|
|
|
|
# Aceitou (SIM) — bundle OU estratégico: sem reforço, só registra/finaliza.
|
|
- from: decisao
|
|
to: resposta_sim
|
|
priority: 10
|
|
when:
|
|
eq: [$.input.resposta_usuario, SIM]
|
|
|
|
# Não aceitou (NAO) + há estratégico: explica o procedimento de cancelamento
|
|
# do(s) estratégico(s) (pedidos mistos seguem por aqui, como antes).
|
|
- from: decisao
|
|
to: explicar_cancelamento
|
|
priority: 20
|
|
when:
|
|
all:
|
|
- eq: [$.vars.preparar.has_estrategico_items, true]
|
|
- eq: [$.input.resposta_usuario, NAO]
|
|
|
|
# Não aceitou (NAO) + bundle puro (sem estratégico): reforça a impossibilidade
|
|
# de cancelar. SIM já foi tratado acima (priority menor), então aqui só cai NAO.
|
|
- from: decisao
|
|
to: resposta_bundle
|
|
priority: 30
|
|
when:
|
|
eq: [$.vars.preparar.has_estrategico_items, false]
|
|
|
|
- from: decisao
|
|
to: registrar_outro
|
|
priority: 99
|
|
|
|
- from: resposta_sim
|
|
to: registrar_sim
|
|
|
|
- from: explicar_cancelamento
|
|
to: registrar_nao
|
|
|
|
- from: registrar_sim
|
|
to: END
|
|
|
|
- from: registrar_nao
|
|
to: END
|
|
|
|
- from: resposta_bundle
|
|
to: registrar_bundle
|
|
|
|
- from: registrar_bundle
|
|
to: END
|
|
|
|
- from: registrar_outro
|
|
to: END
|