from fastapi import FastAPI from pydantic import BaseModel from typing import Dict, Any from ar_grid_tutor_mobile_ar_digital_twin_for.core import TelemetrySample, TwinEngine app = FastAPI(title="AR Grid Tutor DT Twin API") _engine = TwinEngine() class TelemetryPayload(BaseModel): asset_id: str timestamp: float metrics: Dict[str, float] @app.post("/telemetry") def ingest_telemetry(payload: TelemetryPayload): sample = TelemetrySample(asset_id=payload.asset_id, timestamp=payload.timestamp, metrics=payload.metrics) result = _engine.reconcile(sample) return {"status": "ok", "result": result} @app.get("/health") def health(): # Minimal health indicator for orchestration return {"status": "healthy", "assets_tracked": list(_engine.models.keys())}