Fix admin API to use family_members table

This commit is contained in:
Manohar Gupta 2026-05-10 23:11:18 +05:30
parent 43ee05d661
commit fe364c6e11
2 changed files with 12 additions and 11 deletions

View file

@ -8,7 +8,7 @@ export async function GET(request: Request) {
return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); 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` const families = await sql`
SELECT SELECT
f.id, f.id,
@ -17,10 +17,10 @@ export async function GET(request: Request) {
f.max_children, f.max_children,
f.max_members, f.max_members,
f.created_at, 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 COUNT(DISTINCT c.id) as child_count
FROM families f 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 LEFT JOIN children c ON c.family_id = f.id
GROUP BY f.id GROUP BY f.id
ORDER BY f.created_at DESC ORDER BY f.created_at DESC
@ -30,12 +30,12 @@ export async function GET(request: Request) {
families: families.map((f: any) => ({ families: families.map((f: any) => ({
id: f.id, id: f.id,
name: f.name, name: f.name,
tier: f.tier, tier: f.tier || "free",
maxChildren: f.max_children, maxChildren: f.max_children || 1,
maxMembers: f.max_members, maxMembers: f.max_members || 2,
createdAt: f.created_at?.toISOString(), createdAt: f.created_at?.toISOString(),
userCount: Number(f.user_count), userCount: Number(f.user_count) || 0,
childCount: Number(f.child_count), childCount: Number(f.child_count) || 0,
})), })),
}); });
} catch (error) { } catch (error) {

View file

@ -8,17 +8,18 @@ export async function GET(request: Request) {
return NextResponse.json({ error: "Unauthorized" }, { status: 401 }); 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` const users = await sql`
SELECT SELECT
u.id, u.id,
u.email, u.email,
u.name, u.name,
u.family_id, fm.family_id,
f.name as family_name, f.name as family_name,
u.created_at u.created_at
FROM users u 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 ORDER BY u.created_at DESC
`; `;