Lot S du cycle P3 (Users/RBAC/Stats). Tableau de bord stats.read sur /admin/stats,
landing par defaut du role manager (ferme le 404 : la route existe enfin).
- StatsRepository : counts() (compteurs catalogue produits/menus/categories/
ingredients, total + actifs/disponibles via SUM(bool)) ; stockHealth()
(repartition des ingredients actifs par bande normal/low/critical, liste
d'alerte triee du plus critique, reutilise IngredientRepository::stockBand =
source unique de la derivation RG-T21).
- StatsController (stats.read) + vue admin/stats/index (cartes KPI + table
d'alerte stock) + lien nav Pilotage (gated stats.read) + route.
- Les KPIs de vente (CA, volumes) dependent du domaine commande et sont
explicitement differes en P4.
Tests : unit 233, integration 263 / 794 assertions (WAKDO_DB_TESTS=1), PHPStan L6.