package br.com.fiap.bot.integradores.impl;

import java.text.NumberFormat;
import java.time.format.DateTimeFormatter;
import java.util.List;
import java.util.Locale;

import com.pengrad.telegrambot.model.Chat;

import br.com.fiap.banco.comandos.BotComando;
import br.com.fiap.banco.constantes.TipoTransacao;
import br.com.fiap.banco.entidades.Transacao;
import br.com.fiap.banco.excecao.ContaInexistenteExcecao;
import br.com.fiap.banco.excecao.SaldoInsuficienteExcecao;
import br.com.fiap.bot.integradores.IntegracaoBotConsulta;
import br.com.fiap.bot.util.ConverteMoedaUtil;

public class IntegracaoBotConsultaExtrato extends IntegracaoBotConsulta {

	@Override
	public String integrarBanco(String resposta, Chat usuario) {
		StringBuffer retorno = new StringBuffer();
		BotComando botComando = new BotComando();
		NumberFormat format = NumberFormat.getCurrencyInstance(new Locale("pt", "BR"));
		try {
			List<Transacao> transacoes = botComando.verificarExtrato(usuario.id());
			retorno.append("EXTRATO DA CONTA")
			.append("\n")
			.append("----------------------")
			.append("\n");
			for (Transacao transacao : transacoes) {
				retorno.append(transacao.getDataHora().format(DateTimeFormatter.ofPattern("dd/MM/yyyy")))
				.append(" | ")
				.append(TipoTransacao.getTipoTransacao(transacao.getTipoTransacao()).toString())
				.append(" | ")
				.append(ConverteMoedaUtil.conveterMoedaBr(transacao.getValor()))
				.append("\n");
			}
			retorno.append("----------------------");
		} catch (SaldoInsuficienteExcecao e) {
			retorno.append("Saldo insuficiente para consultar o extrato!");
		} catch (ContaInexistenteExcecao e) {
			retorno.append("Voc ainda no tem uma conta, para criar sua conta digite /criar_conta");
		}
		
		return retorno.toString();
	}

	@Override
	public String tratarPrimeiraInteracao(Chat usuario) {
		return this.integrarBanco("",usuario);
	}

}

@@ -1015,62 +1015,8 @@
 A%22)%0A
-%09%09%09.append(%22%5Cn%22)%0A%09%09%09.append(%22----------------------%22)%0A
 %09%09%09.
@@ -1165,33 +1165,20 @@
 /yyyy%22))
-)%0A%09%09%09%09.append(%22 %7C
+ + %22
  %22)%0A%09%09%09%09
@@ -1260,25 +1260,12 @@
 ng()
-)%0A%09%09%09%09.append(%22 %7C
+ + %22
  %22)%0A
@@ -1361,53 +1361,8 @@
 %09%09%7D%0A
-%09%09%09retorno.append(%22----------------------%22);%0A
 %09%09%7D 

Ajuste no retorno do IntegracaoBotConsultaExtrato