// app/api/notifications/route.ts import { NextRequest, NextResponse } from 'next/server'; import { getServerSession } from 'next-auth'; import { getUserNotifications,getUnreadNotificationCount } from '@/lib/notification/service'; import { authOptions } from "@/app/api/auth/[...nextauth]/route" export async function GET(request: NextRequest) { try { const session = await getServerSession(authOptions); if (!session?.user?.id) { return NextResponse.json({ error: 'Unauthorized' }, { status: 401 }); } const { searchParams } = new URL(request.url); const limit = parseInt(searchParams.get('limit') || '20'); const offset = parseInt(searchParams.get('offset') || '0'); const unreadOnly = searchParams.get('unreadOnly') === 'true'; const [notifications, unreadCount] = await Promise.all([ getUserNotifications(session.user.id, { limit, offset, unreadOnly }), getUnreadNotificationCount(session.user.id) ]); return NextResponse.json({ notifications, unreadCount, hasMore: notifications.length === limit }); } catch (error) { console.error('Error fetching notifications:', error); return NextResponse.json( { error: 'Failed to fetch notifications' }, { status: 500 } ); } }