diff --git a/backend/seed.py b/backend/seed.py index c9cd64c..8959c23 100644 --- a/backend/seed.py +++ b/backend/seed.py @@ -88,10 +88,11 @@ async def seed_pricing_config(db: AsyncSession) -> None: with constants_path.open() as f: constants = json.load(f) - exchange_config = constants["exchange"] - premium_percentage = exchange_config["premiumPercentage"] - eur_trade_min = exchange_config["eurTradeMin"] - eur_trade_max = exchange_config["eurTradeMax"] + exchange_config = constants.get("exchange", {}) + # Use defaults if fields don't exist (for backward compatibility during migration) + premium_percentage = exchange_config.get("premiumPercentage", 5) + eur_trade_min = exchange_config.get("eurTradeMin", 100) + eur_trade_max = exchange_config.get("eurTradeMax", 3000) # Convert EUR amounts to cents eur_min_cents = eur_trade_min * 100 diff --git a/backend/seed_e2e.py b/backend/seed_e2e.py index 70bbfee..f0f0424 100644 --- a/backend/seed_e2e.py +++ b/backend/seed_e2e.py @@ -103,10 +103,11 @@ async def seed_base_data(db: AsyncSession) -> None: with constants_path.open() as f: constants = json.load(f) - exchange_config = constants["exchange"] - premium_percentage = exchange_config["premiumPercentage"] - eur_trade_min = exchange_config["eurTradeMin"] - eur_trade_max = exchange_config["eurTradeMax"] + exchange_config = constants.get("exchange", {}) + # Use defaults if fields don't exist (for backward compatibility during migration) + premium_percentage = exchange_config.get("premiumPercentage", 5) + eur_trade_min = exchange_config.get("eurTradeMin", 100) + eur_trade_max = exchange_config.get("eurTradeMax", 3000) # Convert EUR amounts to cents eur_min_cents = eur_trade_min * 100 diff --git a/backend/shared_constants.py b/backend/shared_constants.py index 2950fff..e2055f2 100644 --- a/backend/shared_constants.py +++ b/backend/shared_constants.py @@ -10,10 +10,7 @@ _constants = json.loads(_constants_path.read_text()) SLOT_DURATION_MINUTES: int = _constants["exchange"]["slotDurationMinutes"] MIN_ADVANCE_DAYS: int = _constants["exchange"]["minAdvanceDays"] MAX_ADVANCE_DAYS: int = _constants["exchange"]["maxAdvanceDays"] -EUR_TRADE_MIN: int = _constants["exchange"]["eurTradeMin"] -EUR_TRADE_MAX: int = _constants["exchange"]["eurTradeMax"] EUR_TRADE_INCREMENT: int = _constants["exchange"]["eurTradeIncrement"] -PREMIUM_PERCENTAGE: int = _constants["exchange"]["premiumPercentage"] PRICE_REFRESH_SECONDS: int = _constants["exchange"]["priceRefreshSeconds"] PRICE_STALENESS_SECONDS: int = _constants["exchange"]["priceStalenessSeconds"] LIGHTNING_MAX_EUR: int = _constants["exchange"]["lightningMaxEur"] diff --git a/backend/tests/test_pricing_repository.py b/backend/tests/test_pricing_repository.py index 3cc1b1b..f273a08 100644 --- a/backend/tests/test_pricing_repository.py +++ b/backend/tests/test_pricing_repository.py @@ -176,10 +176,11 @@ class TestPricingSeeding: with constants_path.open() as f: constants = json.load(f) - exchange_config = constants["exchange"] - expected_premium = exchange_config["premiumPercentage"] - expected_min_eur = exchange_config["eurTradeMin"] - expected_max_eur = exchange_config["eurTradeMax"] + exchange_config = constants.get("exchange", {}) + # Use defaults if fields don't exist (they may have been removed) + expected_premium = exchange_config.get("premiumPercentage", 5) + expected_min_eur = exchange_config.get("eurTradeMin", 100) + expected_max_eur = exchange_config.get("eurTradeMax", 3000) async with client_factory.get_db_session() as db: # Replicate seed_pricing_config logic without importing seed.py @@ -217,10 +218,11 @@ class TestPricingSeeding: with constants_path.open() as f: constants = json.load(f) - exchange_config = constants["exchange"] - expected_premium = exchange_config["premiumPercentage"] - expected_min_eur = exchange_config["eurTradeMin"] - expected_max_eur = exchange_config["eurTradeMax"] + exchange_config = constants.get("exchange", {}) + # Use defaults if fields don't exist (they may have been removed) + expected_premium = exchange_config.get("premiumPercentage", 5) + expected_min_eur = exchange_config.get("eurTradeMin", 100) + expected_max_eur = exchange_config.get("eurTradeMax", 3000) async with client_factory.get_db_session() as db: repo = PricingRepository(db) diff --git a/backend/validate_constants.py b/backend/validate_constants.py index dc7b6a4..f8f90e7 100644 --- a/backend/validate_constants.py +++ b/backend/validate_constants.py @@ -75,10 +75,7 @@ def validate_shared_constants() -> None: "slotDurationMinutes", "maxAdvanceDays", "minAdvanceDays", - "eurTradeMin", - "eurTradeMax", "eurTradeIncrement", - "premiumPercentage", "priceRefreshSeconds", "priceStalenessSeconds", "lightningMaxEur", diff --git a/shared/constants.json b/shared/constants.json index 4e1615d..e930667 100644 --- a/shared/constants.json +++ b/shared/constants.json @@ -27,10 +27,7 @@ "slotDurationMinutes": 15, "maxAdvanceDays": 30, "minAdvanceDays": 1, - "eurTradeMin": 100, - "eurTradeMax": 3000, "eurTradeIncrement": 20, - "premiumPercentage": 5, "priceRefreshSeconds": 60, "priceStalenessSeconds": 300, "lightningMaxEur": 1000