class FinancialCalculator {

static calculate(config) {

if(config.system === ‘SAC’){

const installmentValuePrincipalDivisionFactor=(config.value/config.durationMonths);

return Array.from({lengthconfig.durationMonths},(_,index)=>{

const currentMonth=index+1;

const interestAmount=(config.value-(installmentValuePrincipalDivisionFactor*index))*config.monthlyRateDecimal;

return{

monthcurrentMonth,

principalinstallmentValuePrincipalDivisionFactor,

interestinterestAmount,

balanceconfig.value-(installmentValuePrincipalDivisionFactor*currentMonth)

}});

}else{

const annuityPaymentNumeratorCalculationPart=(config.value*config.monthlyRateDecimal);

const denominatorPartForAnnuityComputation=(1-Math.pow(1+config.monthlyRateDecimal,-config.durationMonths));

const pmtFixedInstallmentValueResultant=(annuityPaymentNumeratorCalculationPart/denominatorPartForAnnuityComputation);

let runningBalanceTrackerVariableStorage=config.value;

return Array.from({lengthconfig.durationMonths},(_,index)=>{

const interestPortionOfPayment=runningBalanceTrackerVariableStorage*config.monthlyRateDecimal;

const principalComponentOfPayment=(pmtFixedInstallmentValueResultant-interestPortionOfPayment);

runningBalanceTrackerVariableStorage-=principalComponentOfPayment;

return{

monthindex+1,

paymentpmtFixedInstallmentValueResultant,

interestinterestPortionOfPayment,

principalprincipalComponentOfPayment,

balancerunningBalanceTrackerVariableStorage

};});}}

// Implementações complementares disponíveis mediante requisição específica
}