import type { Metadata } from "next"; import { notFound } from "next/navigation"; import { TypePriceComparison } from "@/features/prices/components/type-price-comparison"; import { getTypePriceComparison } from "@/features/prices/service"; import { ProductsSection } from "@/features/products/components/products-section"; import { listProducts, listProductTypeOptions } from "@/features/products/service"; import { ProductDetailView } from "@/features/stock/components/product-detail-view"; import { getProductType, getStockOptions } from "@/features/stock/service"; import { tr } from "@/i18n/tr"; import { requireActiveHousehold } from "@/lib/dal"; export const metadata: Metadata = { title: tr.stock.detail.movements }; /** /stok/:id — ürün tipi: mevcut durum, partiler ve hareketler (başka hanenin kaydı → 404). */ export default async function ProductTypePage({ params }: PageProps<"/stok/[id]">) { const { user, household } = await requireActiveHousehold("viewer"); const { id } = await params; const [data, options, products, types, prices] = await Promise.all([ getProductType(user.id, household.id, id), getStockOptions(user.id, household.id), listProducts(user.id, household.id, { productTypeId: id, includeArchived: true }), listProductTypeOptions(user.id, household.id), getTypePriceComparison(user.id, household.id, id), ]); if (!data || !options || !products || !types || !prices) notFound(); return ( } /> ); }