From d121bd21f6ab48d010e0c8c6d8ee539af4f32a9a Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 8 Apr 2026 08:24:08 +0000 Subject: [PATCH] Fix dashboard SQL: use tier_level and mrr_value columns The subscriptions table uses: - tier_level (integer) not tier_id - mrr_value (pre-calculated) not joined to subscription_tiers - is_lifetime (boolean) not status='lifetime' Chronicler #69 --- services/arbiter-3.0/src/routes/admin/index.js | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/services/arbiter-3.0/src/routes/admin/index.js b/services/arbiter-3.0/src/routes/admin/index.js index 2c263cc..6d6c6cc 100644 --- a/services/arbiter-3.0/src/routes/admin/index.js +++ b/services/arbiter-3.0/src/routes/admin/index.js @@ -34,12 +34,8 @@ router.get('/dashboard', async (req, res) => { // Fetch subscriber stats from database const { rows: subStats } = await db.query(` SELECT - COUNT(*) FILTER (WHERE status IN ('active', 'grace_period', 'lifetime')) as active_count, - COALESCE(SUM(CASE - WHEN status = 'active' AND tier_id IS NOT NULL THEN - (SELECT price FROM subscription_tiers WHERE id = tier_id) - ELSE 0 - END), 0) as mrr + COUNT(*) FILTER (WHERE status IN ('active', 'grace_period') OR is_lifetime = true) as active_count, + COALESCE(SUM(mrr_value) FILTER (WHERE status = 'active'), 0) as mrr FROM subscriptions `);