From fe364c6e1115f8a7825d1d2dcdf4ce4244f5bc52 Mon Sep 17 00:00:00 2001 From: Mannu Date: Sun, 10 May 2026 23:11:18 +0530 Subject: [PATCH] Fix admin API to use family_members table --- src/app/api/admin/families/route.ts | 16 ++++++++-------- src/app/api/admin/users/route.ts | 7 ++++--- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/app/api/admin/families/route.ts b/src/app/api/admin/families/route.ts index baaba59..c76221f 100644 --- a/src/app/api/admin/families/route.ts +++ b/src/app/api/admin/families/route.ts @@ -8,7 +8,7 @@ export async function GET(request: Request) { return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); } - // Get all families with user and child counts + // Get all families with user and child counts using family_members table const families = await sql` SELECT f.id, @@ -17,10 +17,10 @@ export async function GET(request: Request) { f.max_children, f.max_members, f.created_at, - COUNT(DISTINCT u.id) as user_count, + COUNT(DISTINCT fm.user_id) as user_count, COUNT(DISTINCT c.id) as child_count FROM families f - LEFT JOIN users u ON u.family_id = f.id + LEFT JOIN family_members fm ON fm.family_id = f.id LEFT JOIN children c ON c.family_id = f.id GROUP BY f.id ORDER BY f.created_at DESC @@ -30,12 +30,12 @@ export async function GET(request: Request) { families: families.map((f: any) => ({ id: f.id, name: f.name, - tier: f.tier, - maxChildren: f.max_children, - maxMembers: f.max_members, + tier: f.tier || "free", + maxChildren: f.max_children || 1, + maxMembers: f.max_members || 2, createdAt: f.created_at?.toISOString(), - userCount: Number(f.user_count), - childCount: Number(f.child_count), + userCount: Number(f.user_count) || 0, + childCount: Number(f.child_count) || 0, })), }); } catch (error) { diff --git a/src/app/api/admin/users/route.ts b/src/app/api/admin/users/route.ts index e1b1d3f..1de14a1 100644 --- a/src/app/api/admin/users/route.ts +++ b/src/app/api/admin/users/route.ts @@ -8,17 +8,18 @@ export async function GET(request: Request) { return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); } - // Get all users with family info + // Get all users via family_members table with family info const users = await sql` SELECT u.id, u.email, u.name, - u.family_id, + fm.family_id, f.name as family_name, u.created_at FROM users u - LEFT JOIN families f ON f.id = u.family_id + LEFT JOIN family_members fm ON fm.user_id = u.id + LEFT JOIN families f ON f.id = fm.family_id ORDER BY u.created_at DESC `;