From c7f4f8f93bec094eda0b2a71400dd698113e9a54 Mon Sep 17 00:00:00 2001 From: Lukas Pierchalla Date: Sun, 20 Sep 2026 13:44:38 +0200 Subject: [PATCH] update scalable_sync.py to refine activity recording by conditionally including asset-based fields and improving payload construction --- scalable_sync.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/scalable_sync.py b/scalable_sync.py index e798183..d5895ef 100644 --- a/scalable_sync.py +++ b/scalable_sync.py @@ -329,22 +329,29 @@ class WealthfolioMCP: return False def record_activities(self, activities): - activity_payloads = [ - { + activity_payloads = [] + + for activity in activities: + payload = { "account": activity.account_id, "activityDate": activity.date, - "symbol": activity.symbol, "activityType": activity.activity_type, - "quantity": activity.quantity, - "unitPrice": activity.unit_price, "amount": activity.amount, + "currency": activity.currency, "fee": activity.fee, "tax": activity.tax, - "currency": activity.currency, "notes": f"scalable:{activity.external_id}", } - for activity in activities - ] + + # Nur asset-basierte Aktivitäten brauchen Symbol, Menge und Preis. + if activity.activity_type in {"BUY", "SELL", "DIVIDEND", "SPLIT"}: + payload["symbol"] = activity.symbol + payload["quantity"] = activity.quantity + payload["unitPrice"] = activity.unit_price + + activity_payloads.append( + {key: value for key, value in payload.items() if value is not None} + ) draft_result = asyncio.run( self._connect_and_call(