Files
market_intel/apps/api/routes/meta.py
T
2026-08-01 10:33:19 +08:00

37 lines
1.2 KiB
Python

from __future__ import annotations
from fastapi import APIRouter, Depends
from apps.api.auth import require_auth
from packages.config import get_settings
from packages.db import Repository
from packages.domain import LEVERAGE_FORMULA_VERSION
router = APIRouter(tags=["meta"], dependencies=[Depends(require_auth)])
@router.get("/meta/latest")
def latest() -> dict:
s = get_settings()
repo = Repository(s.db_path)
try:
hb = repo.get_heartbeat()
by_side = repo.latest_quotes_by_side()
return {
"formula_version": LEVERAGE_FORMULA_VERSION,
"leverage_def": "index_px / ask",
"timezone": s.tz,
"underlying": s.underlying,
"min_option_leverage": s.min_option_leverage,
"heartbeat": {
"last_ok_ts_ms": hb.get("last_ok_ts_ms"),
"last_error": hb.get("last_error"),
"consecutive_failures": hb.get("consecutive_failures"),
"meta": hb.get("meta"),
},
"call": by_side.get("C"),
"put": by_side.get("P"),
}
finally:
repo.close()