import { redirect } from "next/navigation"

import { FRONTEND_ROUTES } from "@/config/frontend-routes"

type TempDataByXmlIdPageProps = {
  params: Promise<{ xml_id: string }>
  searchParams: Promise<{
    inserted?: string
    page?: string
    page_size?: string
  }>
}

export default async function TempDataByXmlIdRoute({
  params,
  searchParams,
}: TempDataByXmlIdPageProps) {
  const { xml_id: rawXmlId } = await params
  const query = await searchParams
  const xmlId = decodeURIComponent(rawXmlId).trim()

  if (!xmlId) {
    redirect(FRONTEND_ROUTES.xmlApis.tempData.page)
  }

  const paramsOut = new URLSearchParams()
  paramsOut.set("xml_id", xmlId)

  if (
    query.inserted === "inserted" ||
    query.inserted === "not_inserted" ||
    query.inserted === "all"
  ) {
    paramsOut.set("inserted", query.inserted)
  }
  if (query.page) {
    paramsOut.set("page", query.page)
  }
  if (query.page_size) {
    paramsOut.set("page_size", query.page_size)
  }

  redirect(`${FRONTEND_ROUTES.xmlApis.tempData.page}?${paramsOut.toString()}`)
}
