# AUTOGENERATED! DO NOT EDIT! File to edit: ../nbs/00_core.ipynb.

# %% auto 0
__all__ = ['SACCalculator']

# %% ../nbs/00_core.ipynb 3
import numpy as np
import pandas as pd

class SACCalculator:
    "A simple calculator class"
    def __init__(self, 
                 valor_financiado: float,     # Valor financiado
                 prazo: int,                  # Prazo em meses 
                 taxa_juros: float            # Taxa de juros ao mês
    ):
        self.valor_financiado = valor_financiado
        self.prazo = prazo
        self.taxa_juros = taxa_juros
        self.amortizacao = self.valor_financiado / self.prazo

    def tabela(self):
        """
        Gera a tabela SAC
        """
        parcelas = np.array([p for p in range(1, self.prazo+1)])
        juros = np.array([self.taxa_juros * (self.valor_financiado - p * self.amortizacao) for p in range(self.prazo)])
        amortizacao = np.array([self.amortizacao for p in range(1, self.prazo+1)])
        valor_da_parcela = juros + amortizacao
        saldo_devedor = np.array([self.valor_financiado - p * self.amortizacao for p in range(1, self.prazo+1)])
        
        return (
            pd.DataFrame({
                'Parcela': parcelas,
                'Juros': juros,
                'Amortização': amortizacao,
                'Valor da Parcela': valor_da_parcela,
                'Saldo Devedor': saldo_devedor
            }).round(decimals=2)   
        )
