# -*- coding: utf-8 -*-
"""
Agile Together — registrar um impedimento.

Impedimento e' o que trava o trabalho e voce nao consegue resolver sozinho. No
Scrum ele nao fica na cabeca de ninguem: fica visivel, com dono e prazo. Este
passo cria o cartao em Eventos Scrum, com o tipo, a descricao e o contexto.

Sem IA e sem editar arquivo: o passo pergunta, voce responde.
"""
from agile_together import cfg, create_card
from runner import header, ok, done
from idioma import T, Tf

TIPOS = {
    "1": ("TECNICO", "ferramenta, ambiente, acesso, algo que nao funciona"),
    "2": ("PROCESSO", "aprovacao, dependencia de outra area, fila"),
    "3": ("CONHECIMENTO", "falta saber como fazer"),
    "4": ("EXTERNO", "fornecedor, cliente, algo fora do seu alcance"),
}

c = cfg()
sprint = c.get('SPRINT_ATUAL', 1)

header(Tf("Registrar impedimento — Sprint {0}", sprint))
for k, (nome, ajuda) in TIPOS.items():
    print(f"  {k}. {nome:<13} {ajuda}")
escolha = input("\n  Tipo (1-4): ").strip()
if escolha not in TIPOS:
    raise SystemExit(T("Tipo invalido — nada foi registrado."))
tipo = TIPOS[escolha][0]

descricao = input(T("  O que esta travando (uma linha): ")).strip()
if not descricao:
    raise SystemExit(T("Sem descricao — nada foi registrado."))
detalhe = input(T("  Contexto: causa, impacto na Meta da Sprint, quem pode ajudar\n  > ")).strip()

corpo = f"Sprint {sprint}\nTipo: {tipo}\n\n{descricao}"
if detalhe:
    corpo += f"\n\nContexto:\n{detalhe}"
create_card('eventos', Tf("IMPEDIMENTO [{0}]: {1}", tipo, descricao[:60]), corpo)
ok(T("Impedimento registrado em Eventos Scrum."))
done(T("Leve-o para a proxima Daily: impedimento visivel e' impedimento que anda."))
