from __future__ import annotations from flask import Blueprint, jsonify, request from app.services.realtime import RealtimeService from app.utils.serialization import to_plain realtime_blueprint = Blueprint("realtime", __name__) service = RealtimeService() @realtime_blueprint.get("/realtime/snapshot") def realtime_snapshot(): return jsonify(to_plain(service.snapshot())) @realtime_blueprint.get("/realtime/history") def realtime_history(): range_key = request.args.get("range", "6h") start = request.args.get("start") end = request.args.get("end") metrics = [item.strip() for item in request.args.get("metrics", "").split(",") if item.strip()] try: return jsonify(to_plain(service.history(range_key=range_key, start=start, end=end, metric_ids=metrics or None))) except ValueError as exc: return jsonify({"detail": str(exc)}), 400