import { redirect } from "next/navigation";

type SearchParams = Promise<Record<string, string | string[] | undefined>>;

function first(value: string | string[] | undefined) {
  return Array.isArray(value) ? value[0] : value;
}

export default async function StockPage({ searchParams }: { searchParams: SearchParams }) {
  const source = await searchParams;
  const target = new URLSearchParams();
  for (const key of ["shop_id", "q", "status", "page", "page_size"]) {
    const value = first(source[key]);
    if (value) target.set(key, value);
  }
  const legacyFilter = first(source.stock);
  const mappedFilter = legacyFilter === "empty"
    ? "stock_empty"
    : legacyFilter === "low"
      ? "stock_low"
      : legacyFilter === "hpp_missing"
        ? "hpp_missing"
        : null;
  if (mappedFilter) target.set("filter", mappedFilter);
  redirect(`/products${target.size ? `?${target.toString()}` : ""}`);
}
