#!/usr/bin/env python3
"""
API v1 Blueprint package — Turf SaaS
Sprint 3-4: HRT-29 — Refacto API /v1/
Sprint 5-6: HRT-31 — Billing Stripe
HRT-79: Alertes Telegram configurables (user blueprint)
HRT-80: API Token personnel + Webhook alertes (Pro)
HRT-82: Multi-compte / Organisation Pro (max 5 users)

Registers sub-blueprints:
  /api/v1/health      — public health-check
  /api/v1/courses/    — courses du jour
  /api/v1/predictions/— predictions ML
  /api/v1/valuebets   — value bets (premium+)
  /api/v1/backtest    — backtest historique (pro)
  /api/v1/export/     — export CSV (pro)
  /api/v1/metrics     — métriques perf ML (premium+)
  /api/v1/billing/    — Stripe checkout, portal, webhook, status
  /api/v1/user/       — config utilisateur, alertes Telegram (premium+)
  /api/v1/user/api-token — Personal API token (Pro)
  /api/v1/user/webhook   — Webhook config (Pro)
  /api/v1/history     — historique préd. ML (Free:7j, Premium:90j, Pro:illimité)
  /api/v1/org/        — organisations Pro (multi-compte, max 5 users)
  /api/v1/docs        — Swagger UI (via flasgger, registered on app)
  /api/v1/ml/feedback/run  — trigger feedback loop ML (admin)
  /api/v1/ml/feedback/stats — stats par stratégie (premium+)
"""

from flask import Blueprint

from .routes.health import health_bp
from .routes.courses import courses_bp
from .routes.predictions import predictions_bp
from .routes.valuebets import valuebets_bp
from .routes.backtest import backtest_bp
from .routes.export import export_bp
from .routes.metrics import metrics_bp
from .routes.billing import billing_bp
from .routes.user import user_bp
from .routes.user_tokens import user_tokens_bp
from .routes.history import history_bp
from .routes.org import org_bp
from .routes.ml_feedback import ml_feedback_bp

# Master blueprint that aggregates all sub-routes under /api/v1
api_v1_bp = Blueprint("api_v1", __name__, url_prefix="/api/v1")


def register_api_v1(app):
    """Register all API v1 blueprints onto the Flask app."""
    app.register_blueprint(health_bp)
    app.register_blueprint(courses_bp)
    app.register_blueprint(predictions_bp)
    app.register_blueprint(valuebets_bp)
    app.register_blueprint(backtest_bp)
    app.register_blueprint(export_bp)
    app.register_blueprint(metrics_bp)
    app.register_blueprint(billing_bp)
    app.register_blueprint(user_bp)
    app.register_blueprint(user_tokens_bp)
    app.register_blueprint(history_bp)
    app.register_blueprint(org_bp)
    app.register_blueprint(ml_feedback_bp)
