import DashboardProducts from "@/components/DashboardProducts/DashboardProducts";

import { getCategories } from "@/services/db/categoriesAPI";
import { getCollections } from "@/services/db/collectionsAPI";
import { getProducts } from "@/services/db/productsAPI";
import type { Category } from "@/services/models/Category";
import type { Collection } from "@/services/models/Collection";
import type { FullyPopulatedProduct } from "@/services/models/Product";

export default async function ProductsPage({
  searchParams,
}: PageProps<"/dashboard/products">) {
  const products = await getProducts(await searchParams);
  const categories = await getCategories();
  const collections = await getCollections();

  return (
    <DashboardProducts
      products={JSON.parse(JSON.stringify(products)) as FullyPopulatedProduct[]}
      categories={JSON.parse(JSON.stringify(categories)) as Category[]}
      collections={JSON.parse(JSON.stringify(collections)) as Collection[]}
    />
  );
}
