// app/api/auth/verify/route.ts
import { prisma } from '@/lib/prisma'
import { NextResponse } from 'next/server'

export async function GET(request: Request) {
  try {
    // Get the stored user from the Authorization header
    const authHeader = request.headers.get('authorization')
    
    if (!authHeader || !authHeader.startsWith('Bearer ')) {
      return NextResponse.json({ error: 'Not authenticated' }, { status: 401 })
    }
    
    const storedUserJson = authHeader.substring(7) // Remove 'Bearer ' prefix
    
    try {
      const storedUser = JSON.parse(storedUserJson)
      
      // Verify the user still exists in the database and is active
      const dbUser = await prisma.user.findFirst({
        where: {
          id: storedUser.id,
          isActive: true
        },
        select: {
          id: true,
          username: true,
          email: true,
          name: true,
          role: true,
          dept: true,
          position: true,
          isFirstLogin: true,
          isActive: true,
          isIntern: true,
          employeeId: true
        }
      })
      
      if (!dbUser) {
        return NextResponse.json({ error: 'User not found' }, { status: 401 })
      }
      
      // Return the verified user data
      return NextResponse.json({ 
        user: dbUser,
        verified: true 
      })
    } catch (parseError) {
      return NextResponse.json({ error: 'Invalid session data' }, { status: 401 })
    }
  } catch (error) {
    console.error('Verify error:', error)
    return NextResponse.json({ error: 'Internal server error' }, { status: 500 })
  }
}