fix: trade_budget_eur + preferred_horizon saved and reloaded in Config
Backend: - CycleConfigRequest: add trade_budget_eur, preferred_horizon_min/max fields (were missing — Pydantic silently dropped them, so saves never reached set_config) - update_cycle_config: handle + persist the 3 new fields via set_config - get_status(): read + return trade_budget_eur/preferred_horizon_min/max from DB (were missing — frontend always fell back to React default values on page load) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -44,6 +44,9 @@ class CycleConfigRequest(BaseModel):
|
||||
similarity_threshold: Optional[float] = None
|
||||
min_ev_threshold: Optional[float] = None
|
||||
min_score_threshold: Optional[int] = None
|
||||
trade_budget_eur: Optional[float] = None
|
||||
preferred_horizon_min: Optional[int] = None
|
||||
preferred_horizon_max: Optional[int] = None
|
||||
journal_retention_days: Optional[int] = None
|
||||
maturity_threshold_pct: Optional[int] = None
|
||||
weekend_cycle_enabled: Optional[bool] = None
|
||||
@@ -81,6 +84,18 @@ def update_cycle_config(req: CycleConfigRequest):
|
||||
set_config("maturity_threshold_pct", str(req.maturity_threshold_pct))
|
||||
if req.weekend_cycle_enabled is not None:
|
||||
set_config("weekend_cycle_enabled", "true" if req.weekend_cycle_enabled else "false")
|
||||
if req.trade_budget_eur is not None:
|
||||
if not (100 <= req.trade_budget_eur <= 500_000):
|
||||
raise HTTPException(400, "trade_budget_eur must be between 100 and 500000")
|
||||
set_config("trade_budget_eur", str(req.trade_budget_eur))
|
||||
if req.preferred_horizon_min is not None:
|
||||
if not (1 <= req.preferred_horizon_min <= 365):
|
||||
raise HTTPException(400, "preferred_horizon_min must be between 1 and 365")
|
||||
set_config("preferred_horizon_min", str(req.preferred_horizon_min))
|
||||
if req.preferred_horizon_max is not None:
|
||||
if not (1 <= req.preferred_horizon_max <= 365):
|
||||
raise HTTPException(400, "preferred_horizon_max must be between 1 and 365")
|
||||
set_config("preferred_horizon_max", str(req.preferred_horizon_max))
|
||||
if req.weekend_cycle_times is not None:
|
||||
# Validate format: comma-separated HH:MM values
|
||||
import re
|
||||
|
||||
Reference in New Issue
Block a user