import { NextRequest, NextResponse } from 'next/server' import { cookies } from 'next/headers' import pool from '@/lib/db' // GET /api/referrals/status - Get referral count and unlock status for current user export async function GET(request: NextRequest) { try { const cookieStore = cookies() const buyerIdCookie = cookieStore.get('buyer_id')?.value if (!buyerIdCookie) { return NextResponse.json( { referralCount: 0, isUnlocked: false, referralsNeeded: 3, referralsRemaining: 3, wholesaleTier: { referralsNeeded: 3, referralsRemaining: 3, isUnlocked: false }, innerCircleTier: { referralsNeeded: 10, referralsRemaining: 10, isUnlocked: false } }, { status: 200 } ) } const buyer_id = parseInt(buyerIdCookie, 10) // Count referrals for this user const [referralRows] = await pool.execute( 'SELECT COUNT(*) as count FROM referrals WHERE referrer = ?', [buyer_id] ) const referralCount = (referralRows as any[])[0]?.count || 0 const isWholesaleUnlocked = referralCount >= 3 const isInnerCircleUnlocked = referralCount >= 10 // Determine which tier to show const wholesaleTier = { referralsNeeded: 3, referralsRemaining: Math.max(0, 3 - referralCount), isUnlocked: isWholesaleUnlocked } const innerCircleTier = { referralsNeeded: 10, referralsRemaining: Math.max(0, 10 - referralCount), isUnlocked: isInnerCircleUnlocked } return NextResponse.json({ referralCount, isUnlocked: isWholesaleUnlocked, // Keep for backward compatibility referralsNeeded: isWholesaleUnlocked ? innerCircleTier.referralsNeeded : wholesaleTier.referralsNeeded, referralsRemaining: isWholesaleUnlocked ? innerCircleTier.referralsRemaining : wholesaleTier.referralsRemaining, wholesaleTier, innerCircleTier, }) } catch (error) { console.error('Error fetching referral status:', error) return NextResponse.json( { error: 'Failed to fetch referral status' }, { status: 500 } ) } }