from fastapi import APIRouter

from app.api.v1 import gpu, service_status
from app.api.v1.access import auth, menus, permission_audit, roles, users
from app.api.v1.ai import agents, calibration, local_models, modeling, providers
from app.api.v1.knowledge import router as knowledge_router
from app.api.v1.knowledge.global_tags import router as tags_router
from app.api.v1.monitoring import milvus_debug, milvus_monitoring, network_monitoring
from app.api.v1.platform import audit_logs, dashboard, tenants

api_router = APIRouter()
api_router.include_router(auth.router, prefix="/auth", tags=["authentication"])
api_router.include_router(dashboard.router, prefix="/dashboard", tags=["dashboard"])
api_router.include_router(gpu.router, prefix="/gpu", tags=["gpu"])
api_router.include_router(tenants.router, prefix="/tenants", tags=["tenants"])
api_router.include_router(users.router, prefix="/users", tags=["users"])
api_router.include_router(roles.router, prefix="/roles", tags=["roles"])
api_router.include_router(menus.router, prefix="/menus", tags=["menus"])
api_router.include_router(providers.router, prefix="/providers", tags=["providers"])
api_router.include_router(agents.router, prefix="/agents", tags=["agents"])
api_router.include_router(tags_router, prefix="/tags", tags=["tags"])
api_router.include_router(knowledge_router, prefix="/knowledge", tags=["knowledge"])
api_router.include_router(milvus_monitoring.router, prefix="/monitoring", tags=["monitoring"])
api_router.include_router(
    network_monitoring.router, prefix="/monitoring/network", tags=["network-monitoring"]
)
api_router.include_router(modeling.router, prefix="/modeling", tags=["modeling"])
api_router.include_router(audit_logs.router, prefix="/audit-logs", tags=["audit-logs"])
api_router.include_router(
    permission_audit.router, prefix="/permission-audit", tags=["permission-audit"]
)
api_router.include_router(milvus_debug.router, prefix="/debug", tags=["debug"])
api_router.include_router(calibration.router, prefix="/calibration", tags=["calibration"])
api_router.include_router(local_models.router, prefix="/local-models", tags=["local-models"])
api_router.include_router(service_status.router, prefix="/service", tags=["service-status"])
__all__ = [
    "agents",
    "audit_logs",
    "auth",
    "calibration",
    "dashboard",
    "gpu",
    "knowledge_router",
    "local_models",
    "menus",
    "milvus_debug",
    "milvus_monitoring",
    "modeling",
    "network_monitoring",
    "permission_audit",
    "providers",
    "roles",
    "tags_router",
    "tenants",
    "users",
    "service_status",
    "api_router",
]
