From 0c88058a7991acd12741e6e0ff38aa2bf1adbf0d Mon Sep 17 00:00:00 2001 From: Mannu Date: Sat, 6 Jun 2026 14:44:54 +0530 Subject: [PATCH] debug: add billing diagnostics to debug-migration GET (webhook events, subs, paid families) Co-Authored-By: Claude Opus 4.8 --- src/app/api/debug-migration/route.ts | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/app/api/debug-migration/route.ts b/src/app/api/debug-migration/route.ts index 611810b..b48f749 100644 --- a/src/app/api/debug-migration/route.ts +++ b/src/app/api/debug-migration/route.ts @@ -53,6 +53,30 @@ export async function GET() { out.circleTablesError = String(e); } + // Billing diagnostics — last webhook events + subscription rows + family tiers + try { + out.webhookEvents = await sql.unsafe( + `SELECT razorpay_event_id, event_type, received_at, + payload->'payload'->'subscription'->'entity'->>'id' AS sub_id, + payload->'payload'->'subscription'->'entity'->>'status' AS sub_status + FROM razorpay_webhook_events ORDER BY received_at DESC LIMIT 10` + ); + } catch (e) { out.webhookEventsError = String(e); } + + try { + out.subscriptions = await sql.unsafe( + `SELECT razorpay_subscription_id, status, family_id, current_end, updated_at + FROM family_subscriptions ORDER BY created_at DESC LIMIT 10` + ); + } catch (e) { out.subscriptionsError = String(e); } + + try { + out.paidFamilies = await sql.unsafe( + `SELECT id, tier, subscription_status, max_members, max_children + FROM families WHERE tier != 'free' OR subscription_status IS NOT NULL LIMIT 10` + ); + } catch (e) { out.paidFamiliesError = String(e); } + return NextResponse.json(out); }