Open app/main.py and add two new endpoints near your other /api routes: from datetime import date, timedelta @app.get("/api/reminders") async def api_reminders(window: int = 7, advisor: str | None = None): """ Stub endpoint returning demo appointment reminders. 'window' is days from today (e.g. 1 = today, 7 = next 7 days). """ today = date.today() base = [ { "id": "rem_1", "date": str(today), "time": "10:30", "customer_name": "Alex Smith", "reg": "FY23 ABC", "reason": "End-of-term options review (12 months)", "advisor": "Jamie", "channel": "WhatsApp" }, { "id": "rem_2", "date": str(today + timedelta(days=2)), "time": "14:00", "customer_name": "Jordan Lee", "reg": "FY21 XYZ", "reason": "Service visit – good time to review upgrade options", "advisor": "Jamie", "channel": "SMS" }, { "id": "rem_3", "date": str(today + timedelta(days=5)), "time": "11:15", "customer_name": "Sam Taylor", "reg": "FY20 QWE", "reason": "End-of-term 6 month priority review", "advisor": "Taylor", "channel": "WhatsApp" }, ] # Simple filtering by advisor name if provided items = [r for r in base if not advisor or r["advisor"] == advisor] return {"data": items} @app.get("/api/tco") async def api_tco(model: str | None = None): """ Stub endpoint returning demo TCO summaries by model. """ rows = [ { "model": "Q3", "monthly_payment": 499, "insurance_est": 70, "energy_fuel": 110, "service_plan": 25, "tyres_misc": 20, }, { "model": "Q4 e-tron", "monthly_payment": 579, "insurance_est": 75, "energy_fuel": 80, "service_plan": 30, "tyres_misc": 25, }, { "model": "A3", "monthly_payment": 399, "insurance_est": 65, "energy_fuel": 100, "service_plan": 20, "tyres_misc": 18, }, ] if model: rows = [r for r in rows if r["model"] == model] return {"data": rows}