import { NextResponse } from 'next/server'
import { requireAdmin } from '@/lib/adminAuth'
import { prisma } from '@/lib/prisma'

export async function GET() {
  const auth = await requireAdmin()
  if ('error' in auth) return auth.error

  const since = new Date(Date.now() - 10 * 60 * 1000)

  const sessions = await prisma.activeSession.findMany({
    where: { lastSeen: { gte: since } },
    orderBy: { lastSeen: 'desc' },
    include: { user: { select: { id: true, name: true, email: true, role: true } } },
  })

  const totalUsers = await prisma.user.count({ where: { active: true } })

  return NextResponse.json({ sessions, totalUsers })
}
