from __future__ import annotations

from flask import Flask, jsonify

from .config import AppConfig
from .nodes_api import create_nodes_blueprint
from .scheduler import StatusScheduler
from .storage import Storage


def register_routes(app: Flask, storage: Storage, scheduler: StatusScheduler, config: AppConfig) -> None:
    app.register_blueprint(create_nodes_blueprint(storage, scheduler), url_prefix="/api/v1/master")

    @app.get("/healthz")
    def healthz():
        return jsonify({"status": "ok"})

    @app.get("/readyz")
    def readyz():
        try:
            storage.list_nodes()  # simple readiness probe
        except Exception as exc:  # pragma: no cover - defensive
            return jsonify({"status": "error", "error": str(exc)}), 500
        return jsonify({"status": "ok"})
