def calculate_mortgage_payment(principal: float, annual_interest_rate: float, years: int) -> dict: """Calculates monthly mortgage payments. Args: principal: Initial loan amount. annual_interest_rate: Annual interest (percent). years: Loan term (years). Returns: dict: Status, payment breakdown, and error (if any). """ try: monthly_rate = (annual_interest_rate / 100) / 12 num_payments = years * 12 if monthly_rate < 0 or principal <= 0 or num_payments <= 0: return { "status": "error", "error_message": "Inputs must be positive. Interest rate cannot be negative." } if monthly_rate == 0: monthly_payment = principal / num_payments else: monthly_payment = principal * (monthly_rate * (1 + monthly_rate) ** num_payments) / ((1 + monthly_rate) ** num_payments - 1) return { "status": "success", "monthly_payment": round(monthly_payment, 2), "total_payments": round(monthly_payment * num_payments, 2), "total_interest": round((monthly_payment * num_payments) - principal, 2), "principal": principal, "interest_rate": annual_interest_rate, "loan_term_years": years } except Exception as e: return { "status": "error", "error_message": f"Failed to calculate mortgage payment: {str(e)}" } __ __