librsigstopup 0.1.0

Super safe library untuk simulasi perhitungan top-up dengan JSON API, verbose logging, dan full trace
Documentation
use rust_decimal::Decimal;
use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct RemainingInstallmentCalculator;
impl RemainingInstallmentCalculator {
    pub fn calculate_remaining_principal(
        pinjaman: Decimal,
        angsuran: Decimal,
        sisa_tenor: u32,
    ) -> Decimal {
        tracing::info!(
            event = "calculate_remaining_principal",
            pinjaman = %pinjaman,
            angsuran = %angsuran,
            sisa_tenor = sisa_tenor,
            "Calculating remaining principal"
        );
        let total_angsuran_belum_bayar = angsuran * Decimal::from(sisa_tenor);
        let sisa_pokok = pinjaman - total_angsuran_belum_bayar;
        tracing::info!(
            event = "remaining_principal_calculated",
            total_angsuran_belum_bayar = %total_angsuran_belum_bayar,
            sisa_pokok = %sisa_pokok,
            "Remaining principal calculated"
        );
        sisa_pokok
    }
}