import { NextRequest, NextResponse } from 'next/server' import { prisma } from '@/lib/prisma' export async function POST(request: NextRequest) { try { const body = await request.json() const { token } = body if (!token) { return NextResponse.json( { error: 'Verification token is required' }, { status: 400 } ) } // Find user with this verification token const user = await prisma.user.findFirst({ where: { emailToken: token, resetExpires: { gt: new Date(), }, }, select: { id: true, email: true, emailVerified: true, displayName: true, }, }) if (!user) { return NextResponse.json( { error: 'Invalid or expired verification token' }, { status: 400 } ) } if (user.emailVerified) { return NextResponse.json( { error: 'Email is already verified' }, { status: 400 } ) } // Verify the email await prisma.user.update({ where: { id: user.id }, data: { emailVerified: true, emailToken: null, resetExpires: null, }, }) return NextResponse.json( { message: 'Email verified successfully', user: { id: user.id, email: user.email, displayName: user.displayName, emailVerified: true, }, }, { status: 200 } ) } catch (error) { console.error('Confirm email error:', error) return NextResponse.json( { error: 'Failed to verify email' }, { status: 500 } ) } }