feat(config): section statistiques — BDD, médias, entités

- GET /api/admin/stats : taille BDD (pg_database_size), nb+poids photos/audio
  (scan filesystem), nb notes/todos/listes (requêtes SQL directes)
- ConfigPage : grille 3 colonnes todos/notes/listes + 2 tuiles médias + ligne BDD

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-25 16:04:08 +02:00
parent de9a1e3c73
commit 454dbadb2f
3 changed files with 112 additions and 2 deletions
+19
View File
@@ -1,3 +1,22 @@
export interface AppStats {
db_size_bytes: number
media: {
photos: { count: number; size_bytes: number }
audio: { count: number; size_bytes: number }
}
counts: {
notes: number
todos: number
shopping_lists: number
}
}
export async function fetchStats(): Promise<AppStats> {
const res = await fetch('/api/admin/stats')
if (!res.ok) throw new Error('Erreur chargement stats')
return res.json() as Promise<AppStats>
}
export interface BackupFile {
filename: string
size: number