Design an OOP model for a SIP (Systematic Investment Plan) calculator and portfolio tracker.
createSIP(userId, fundId, monthlyAmount, startDate, duration) → sipIdprocessMonthlyInstalment(sipId, navOnDate) — buys units at current NAVgetPortfolioValue(userId, currentNAVMap) — total current valuegetXIRR(sipId) — annualised returnpauseSIP(sipId) / stopSIP(sipId)SIP, Fund, Transaction, Portfolio, NAVHistory, XIRRCalculator
Add lump sum investment support alongside SIP.