import os

import httpx


BASE_URL = os.getenv("BATTERYARB_BASE_URL", "https://api.richbuilds.net")
API_KEY = os.environ["BATTERYARB_API_KEY"]
HEADERS = {"X-API-Key": API_KEY}


def call(path: str, **params):
    with httpx.Client(timeout=30.0, headers=HEADERS) as client:
        response = client.get(f"{BASE_URL}{path}", params=params)
        response.raise_for_status()
        return response.json()


def main() -> None:
    print(call("/health"))
    print(call("/markets/supported"))
    print(call("/prices/lmp-5min", iso="ercot", lookback_hours=24))
    print(call("/grid/outages", iso="ercot"))
    print(call("/forecast/lmp", iso="ercot", horizon_hours=24))
    print(call("/battery/arbitrage", iso="ercot", battery_duration_hours=2, efficiency=0.9))
    print(call("/battery/bid-offer-sim", iso="ercot", lookback_hours=24, bid_charge_usd_mwh=25, offer_discharge_usd_mwh=65))
    print(call("/battery/edge-signal", iso="ercot", horizon_hours=24))


if __name__ == "__main__":
    main()
