New dashboard KPI cards: - Performance Ratio (PR) with color thresholds - Equivalent Utilization Hours - Daily Revenue (¥) - Self-Consumption Rate Version display for field engineers: - Login page footer: "v1.4.0 | Core: v1.4.0" - Sidebar footer: version when expanded - System Settings: full version breakdown Backend (core sync): - GET /api/v1/version (no auth) — reads VERSIONS.json - GET /api/v1/kpi/solar — PR, revenue, equiv hours calculations - Dashboard energy_today fallback from raw energy_data - PV device filter includes sungrow_inverter type Feature flags: - Sidebar hides disabled features (charging, bigscreen_3d) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
31 lines
1.4 KiB
Python
31 lines
1.4 KiB
Python
from fastapi import APIRouter
|
|
from app.api.v1 import auth, users, devices, energy, monitoring, alarms, reports, carbon, dashboard, collectors, websocket, audit, settings, charging, quota, cost, maintenance, management, prediction, energy_strategy, weather, ai_ops, branding, version, kpi
|
|
|
|
api_router = APIRouter(prefix="/api/v1")
|
|
|
|
api_router.include_router(auth.router)
|
|
api_router.include_router(users.router)
|
|
api_router.include_router(devices.router)
|
|
api_router.include_router(energy.router)
|
|
api_router.include_router(monitoring.router)
|
|
api_router.include_router(alarms.router)
|
|
api_router.include_router(reports.router)
|
|
api_router.include_router(carbon.router)
|
|
api_router.include_router(dashboard.router)
|
|
api_router.include_router(collectors.router)
|
|
api_router.include_router(websocket.router)
|
|
api_router.include_router(audit.router)
|
|
api_router.include_router(settings.router)
|
|
api_router.include_router(charging.router)
|
|
api_router.include_router(quota.router)
|
|
api_router.include_router(cost.router)
|
|
api_router.include_router(maintenance.router)
|
|
api_router.include_router(management.router)
|
|
api_router.include_router(prediction.router)
|
|
api_router.include_router(energy_strategy.router)
|
|
api_router.include_router(weather.router)
|
|
api_router.include_router(ai_ops.router)
|
|
api_router.include_router(branding.router)
|
|
api_router.include_router(version.router)
|
|
api_router.include_router(kpi.router)
|