import { requireRole } from '~/server/utils/auth'
import { getPagination, paginatedResponse } from '~/server/utils/pagination'
import { prisma } from '~/server/utils/prisma'
export default defineEventHandler(async (event) => {
  await requireRole(event, 'admin')
  const query = getQuery(event) as Record<string, string>
  const { page, perPage, skip, take } = getPagination(query)
  const [data, total] = await Promise.all([
    prisma.user.findMany({ skip, take, orderBy: { createdAt: 'desc' }, select: { id: true, name: true, email: true, role: true, memberId: true, createdAt: true } }),
    prisma.user.count(),
  ])
  return paginatedResponse(data, total, page, perPage)
})
