import type { Product } from "@/lib/data"; import { catalogProductToCard, fetchCatalogProducts, fetchStoreItems, variantToProduct, } from "@/lib/store"; export async function loadCategoryProducts(params: { page?: number; pageSize?: number; categoryId?: string; name?: string; }) { const page = params.page ?? 1; const pageSize = params.pageSize ?? 20; const [storeResult, catalogResult] = await Promise.all([ fetchStoreItems({ page, pageSize, categoryId: params.categoryId, name: params.name, }), fetchCatalogProducts({ page, pageSize, categoryId: params.categoryId, name: params.name, }), ]); const fromStore = storeResult.items.map(variantToProduct); const products: Product[] = fromStore.length ? fromStore : catalogResult.items.map(catalogProductToCard); const total = fromStore.length ? storeResult.total : catalogResult.total; const resolvedPageSize = fromStore.length ? storeResult.pageSize : catalogResult.pageSize; const pageCount = Math.max(1, Math.ceil((total || products.length) / (resolvedPageSize || pageSize))); return { products, total, pageCount, pageSize: resolvedPageSize || pageSize }; }