import { NextResponse } from 'next/server'; import { auth } from '@/auth'; import { getUserInfo, getEffectiveTier } from '@/lib/entitlements'; export async function GET() { const session = await auth(); if (!session?.user?.id) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }); } const userId = session.user.id; try { const { tier, status, currentPeriodEnd } = await getUserInfo(userId); const effectiveTier = await getEffectiveTier(userId); const { prisma } = await import('@/lib/prisma'); const subscription = await prisma.subscription.findUnique({ where: { userId } }); return NextResponse.json({ tier, effectiveTier, status, currentPeriodEnd: currentPeriodEnd ?? null, currentPeriodStart: subscription?.currentPeriodStart ?? null, cancelAtPeriodEnd: subscription?.cancelAtPeriodEnd ?? false, hasStripeSubscription: !!subscription?.stripeSubscriptionId, }); } catch (error) { console.error('[billing/status]', error); return NextResponse.json({ error: 'Failed to fetch billing status' }, { status: 500 }); } }