diff --git a/server.js b/server.js index 00a7045..e2ba410 100644 --- a/server.js +++ b/server.js @@ -809,8 +809,26 @@ function normalizeStats(systemId, raw) { }; } if (systemId.includes('usecasegen')) { + // Query actual DB for user count (session counters reset on restart) + let dbUsers = 0; + try { + const Database = require('better-sqlite3'); + if (systemId === 'eco-usecasegen') { + const db = new Database('/var/www/eco-usecasegen/data/users.db', { readonly: true }); + dbUsers = db.prepare('SELECT COUNT(*) as count FROM users').get()?.count || 0; + db.close(); + } else if (systemId === 'ggl-usecasegen') { + const db = new Database('/var/www/ggl-usecasegen/data/users.db', { readonly: true }); + dbUsers = db.prepare('SELECT COUNT(*) as count FROM users').get()?.count || 0; + db.close(); + } else if (systemId === 'fdx-usecasegen') { + const db = new Database('/var/www/fedex-cohort-app/data/users.db', { readonly: true }); + dbUsers = db.prepare('SELECT COUNT(*) as count FROM users').get()?.count || 0; + db.close(); + } + } catch (e) { /* fallback to raw */ } return { - totalUsers: raw.totalUsers || raw.userCount || 0, + totalUsers: dbUsers || raw.totalUsers || raw.userCount || 0, activeToday: raw.activeToday || 0, totalSessions: raw.totalSessions || raw.sessionCount || 0, totalCost: raw.totalCost || raw.estimatedCost || 0