import { loadFeaturedListings } from "~/server/utils/db-listings"
import type { FeaturedResponse } from "~/types/listing"

const parsePositiveInteger = (value: unknown, fallback: number) => {
  const parsed = Number(value)

  if (!Number.isInteger(parsed) || parsed <= 0) {
    return fallback
  }

  return parsed
}

export default defineEventHandler(async (event): Promise<FeaturedResponse> => {
  const query = getQuery(event)
  const page = parsePositiveInteger(query.page, 1)
  const pageSize = parsePositiveInteger(query.pageSize, 12)

  return loadFeaturedListings(page, pageSize)
})
