import { requireAuth } from '~/server/utils/auth'
import { getPagination, paginatedResponse } from '~/server/utils/pagination'
import { prisma } from '~/server/utils/prisma'

export default defineEventHandler(async (event) => {
  await requireAuth(event)
  const id = parseInt(getRouterParam(event, 'id') || '0')
  const query = getQuery(event) as Record<string, string>
  const { page, perPage, skip, take } = getPagination(query)

  const [data, total] = await Promise.all([
    prisma.timeEntry.findMany({ where: { memberId: id }, skip, take, orderBy: { clockIn: 'desc' } }),
    prisma.timeEntry.count({ where: { memberId: id } }),
  ])

  return paginatedResponse(data, total, page, perPage)
})
