# apps/leave_form_app/api/v1/blueprint.py
from flask import Blueprint, current_app, jsonify

# Blueprint raíz (prefijo que consume el frontend)
api_bp = Blueprint("leave_form_app_api_v1", __name__, url_prefix="/leave_app/api/v1")

# Importar y registrar blueprints hijos
# (estos imports requieren que en cada archivo exista el nombre exacto *_bp)
from .routes_aroflo import aroflo_bp
from .routes_attachments import attachments_bp
from .routes_auth import auth_bp
from .routes_overheads import overheads_bp
from .routes_trackingcentres import trackingcentres_bp
from .routes_users import users_bp

api_bp.register_blueprint(aroflo_bp)
api_bp.register_blueprint(attachments_bp)
api_bp.register_blueprint(auth_bp)
api_bp.register_blueprint(overheads_bp)
api_bp.register_blueprint(trackingcentres_bp)
api_bp.register_blueprint(users_bp)

@api_bp.get("/_routes")
def _routes():
    out = []
    for r in current_app.url_map.iter_rules():
        if "leave_app" in (r.rule or ""):
            out.append(
                {
                    "rule": r.rule,
                    "methods": sorted([m for m in r.methods if m not in ("HEAD", "OPTIONS")]),
                }
            )
    return jsonify({"routes": sorted(out, key=lambda x: x["rule"])})
