From b35349c8859feacb7ebd3f48358b94412b66481b Mon Sep 17 00:00:00 2001 From: "Bobby (aider)" Date: Tue, 11 Feb 2025 21:06:37 -0800 Subject: [PATCH] refactor: Improve NULL handling in unlink_trades_from_plan function --- src/trading/trading_plan.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/trading/trading_plan.py b/src/trading/trading_plan.py index a4c2345..5c4bb3c 100644 --- a/src/trading/trading_plan.py +++ b/src/trading/trading_plan.py @@ -316,12 +316,24 @@ def unlink_trades_from_plan(plan_id: int) -> bool: """Unlink all trades from a trading plan""" with create_client() as client: try: - query = """ + # First update the plan's metrics to NULL + plan_update_query = """ + ALTER TABLE trading_plans + UPDATE + win_rate = NULL, + average_return_per_trade = NULL, + profit_factor = NULL + WHERE id = %(plan_id)s + """ + client.command(plan_update_query, {'plan_id': plan_id}) + + # Then unlink the trades + trades_update_query = """ ALTER TABLE stock_db.trades UPDATE plan_id = NULL WHERE plan_id = %(plan_id)s """ - client.command(query, {'plan_id': plan_id}) + client.command(trades_update_query, {'plan_id': plan_id}) return True except Exception as e: print(f"Error unlinking trades from plan: {e}")