'use strict';
/* admin → stats section */
(function () {
'use strict';
let inited = false;
async function load() {
try {
const s = await LS.adminGetStats();
document.getElementById('stats-grid').innerHTML = `
${s.totalUsers}
Пользователей
${s.totalTests}
Тестов пройдено
${s.avgScore ?? '—'}%
Средний результат
`;
if (window.lucide) lucide.createIcons();
const subjEl = document.getElementById('subj-stats');
if (!s.bySubject?.length) { subjEl.innerHTML = 'Нет данных
'; return; }
subjEl.innerHTML = s.bySubject.map(b => {
const pct = b.avg_pct ?? 0;
const barColor = pct >= 75 ? 'var(--green)' : pct >= 50 ? 'var(--amber)' : 'var(--pink)';
return `
${esc(b.name)}
${b.tests} тестов
`;
}).join('');
} catch (e) {
LS.state.error(document.getElementById('stats-grid'), e, load);
}
}
window.AdminSections = window.AdminSections || {};
window.AdminSections.stats = {
init: async () => { if (inited) return; inited = true; await load(); },
reload: load,
};
})();