import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        String nomeConta = "Gabriel Moreno";
        String tipoConta = "Corrente";
        double saldo = 448.68;
        double saldoPoupanca = 2700.65;
        int i = 0;
        int j = 0;
        double deposito = 0;
        double transferencia = 0;
        int tipoContaDestino = 0;
        Scanner scan = new Scanner(System.in);
        System.out.println("Banco GM, pra você, o melhor!");
        while (i != 4) {
            System.out.println("""
                    Operações
                    \n1 - Consultar saldo 
                    2 - Depositar valor 
                    3 - Transferir Valor 
                    4 - Sair
                    """);
            System.out.print("\n Digite a opção desejada: ");
            i = scan.nextInt();
            switch (i) {
                case 1:
                    System.out.println("""
                    Consultar saldo
                    \n1 - Conta corrente
                    2 - Conta poupança
                    3 - Cancelar""");
                    System.out.print("\n Digite a opção desejada: ");
                    j = scan.nextInt();
                    switch (j) {
                        case 1:
                            System.out.println("O saldo atual da conta corrente é: R$ " + saldo);
                            break;
                        case 2:
                            System.out.println("O saldo atual da conta poupança é: R$ " + saldoPoupanca);
                            break;
                        case 3:
                            System.out.println("Cancelando...");
                            break;
                        default:
                            System.out.println("Opção inválida!");
                            break;
                    }
                    break;
                case 2:
                    System.out.print("Digite o valor desejado: ");
                    deposito = scan.nextDouble();
                    if (deposito <= 0) {
                        System.out.println("Valor inválido!");
                        break;
                    }
                    System.out.print("Digite o tipo da conta de destino (1 - Corrente, 2 - Poupança): ");
                   tipoContaDestino = scan.nextInt();
                    if (tipoContaDestino != 1 && tipoContaDestino != 2) {
                        System.out.println("Tipo de conta inválido!");
                        break;
                    } else if (tipoContaDestino  == 1){
                        saldo += deposito;
                        System.out.println("Deposito na conta CORRENTE efetuado. Saldo atual: " + saldo);
                        break;
                    } else if (tipoContaDestino == 2){
                        saldoPoupanca += deposito;
                        System.out.println("Deposito na conta POUPANÇA efetuado. Saldo atual: " + saldoPoupanca);
                        break;
                    }
                case 3:
                    System.out.print("Digite o valor desejado: ");
                    transferencia = scan.nextDouble();
                    if (transferencia <= 0) {
                        System.out.println("Valor inválido!");
                        break;
                    }
                    System.out.print("Digite o tipo da conta de destino (1 - Corrente, 2 - Poupança): ");
                    tipoContaDestino = scan.nextInt();
                    if (tipoContaDestino != 1 && tipoContaDestino != 2) {
                        System.out.println("Tipo de conta inválido!");
                        break;
                    }
                    if (tipoContaDestino == 1) {
                        if (transferencia > saldo) {
                            System.out.println("Saldo insuficiente!");
                            break;
                        }
                        saldo -= transferencia;
                        System.out.println("Transferência efetuada, saldo atual: " + saldo);
                        break;
                    } else {
                        if (transferencia > saldoPoupanca) {
                            System.out.println("Saldo insuficiente!");
                            break;
                        }
                        saldoPoupanca -= transferencia;
                        System.out.println("Transferência efetuada, saldo atual: " + saldoPoupanca);
                        break;
                    }
                case 4:
                    System.out.println("Saindo...");
                    break;
                default:
                    System.out.println("[ERRO] Opção inválida.");
                    break;
            }
        }
    }
}