import { formatMovementType } from "@/app/(dashboard)/movements/movement.copy" import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import { getI18n } from "@/i18n/server" import { AssetService } from "@/services/asset.service" import { ItemService } from "@/services/item.service" import { MovementService } from "@/services/movement.service" export default async function ItemPage({ params, }: { params: Promise<{ itemId: string }> }) { const { itemId } = await params const item = await ItemService.findByIdWithCategory(itemId) const assets = await AssetService.findByItemId(itemId) const movements = await MovementService.findAllByItemId(itemId) const { dictionary } = await getI18n() const copy = dictionary.inventory.items.detail const movementCopy = dictionary.inventory.movements if (!item) { return
{copy.notFound}
} return (
{item.name}
{copy.labels.category} {item.category.name}
{copy.labels.stock} {item.stock}
{assets?.length > 0 && ( Assets {assets?.map((asset) => (
Status {asset.status || "Available"}
Serial Number {asset.serialNumber}
Delivery Note {asset.deliveryNote}
))} {assets?.length === 0 && (

No assets found.

)}
)} {movements?.length > 0 && ( {movementCopy.snippet.title} {movements.map((movement) => (
{movementCopy.snippet.labels.type} {formatMovementType( movement.type, movementCopy.types, movementCopy.fallback, )}
{movementCopy.snippet.labels.quantity} {movement.quantity}
))}
)}
) }