import { inventoryItemStatuses, inventoryItemTypes, inventoryTransactionTypes, inventoryUnitsOfMeasure, type InventoryBomLineInput, type InventoryItemInput, type WarehouseInput, type WarehouseLocationInput, type InventoryItemStatus, type InventoryItemType, type InventoryTransactionInput, type InventoryTransactionType, type InventoryUnitOfMeasure, } from "@mrp/shared/dist/inventory/types.js"; export const emptyInventoryBomLineInput: InventoryBomLineInput = { componentItemId: "", quantity: 1, unitOfMeasure: "EA", notes: "", position: 10, }; export const emptyInventoryItemInput: InventoryItemInput = { sku: "", name: "", description: "", type: "PURCHASED", status: "ACTIVE", unitOfMeasure: "EA", isSellable: true, isPurchasable: true, defaultCost: null, notes: "", bomLines: [], }; export const emptyInventoryTransactionInput: InventoryTransactionInput = { transactionType: "RECEIPT", quantity: 1, warehouseId: "", locationId: "", reference: "", notes: "", }; export const emptyWarehouseLocationInput: WarehouseLocationInput = { code: "", name: "", notes: "", }; export const emptyWarehouseInput: WarehouseInput = { code: "", name: "", notes: "", locations: [], }; export const inventoryTypeOptions: Array<{ value: InventoryItemType; label: string }> = [ { value: "PURCHASED", label: "Purchased" }, { value: "MANUFACTURED", label: "Manufactured" }, { value: "ASSEMBLY", label: "Assembly" }, { value: "SERVICE", label: "Service" }, ]; export const inventoryStatusOptions: Array<{ value: InventoryItemStatus; label: string }> = [ { value: "DRAFT", label: "Draft" }, { value: "ACTIVE", label: "Active" }, { value: "OBSOLETE", label: "Obsolete" }, ]; export const inventoryStatusFilters: Array<{ value: "ALL" | InventoryItemStatus; label: string }> = [ { value: "ALL", label: "All statuses" }, ...inventoryStatusOptions, ]; export const inventoryTypeFilters: Array<{ value: "ALL" | InventoryItemType; label: string }> = [ { value: "ALL", label: "All item types" }, ...inventoryTypeOptions, ]; export const inventoryUnitOptions: Array<{ value: InventoryUnitOfMeasure; label: string }> = inventoryUnitsOfMeasure.map((unit) => ({ value: unit, label: unit, })); export const inventoryStatusPalette: Record = { DRAFT: "border border-sky-400/30 bg-sky-500/12 text-sky-700 dark:text-sky-300", ACTIVE: "border border-emerald-400/30 bg-emerald-500/12 text-emerald-700 dark:text-emerald-300", OBSOLETE: "border border-rose-400/30 bg-rose-500/12 text-rose-700 dark:text-rose-300", }; export const inventoryTypePalette: Record = { PURCHASED: "border border-slate-400/30 bg-slate-500/12 text-slate-700 dark:text-slate-300", MANUFACTURED: "border border-amber-400/30 bg-amber-500/12 text-amber-700 dark:text-amber-300", ASSEMBLY: "border border-brand/30 bg-brand/10 text-brand", SERVICE: "border border-violet-400/30 bg-violet-500/12 text-violet-700 dark:text-violet-300", }; export const inventoryTransactionOptions: Array<{ value: InventoryTransactionType; label: string }> = [ { value: "RECEIPT", label: "Receipt" }, { value: "ISSUE", label: "Issue" }, { value: "ADJUSTMENT_IN", label: "Adjustment In" }, { value: "ADJUSTMENT_OUT", label: "Adjustment Out" }, ]; export const inventoryTransactionPalette: Record = { RECEIPT: "border border-emerald-400/30 bg-emerald-500/12 text-emerald-700 dark:text-emerald-300", ISSUE: "border border-rose-400/30 bg-rose-500/12 text-rose-700 dark:text-rose-300", ADJUSTMENT_IN: "border border-sky-400/30 bg-sky-500/12 text-sky-700 dark:text-sky-300", ADJUSTMENT_OUT: "border border-amber-400/30 bg-amber-500/12 text-amber-700 dark:text-amber-300", }; export { inventoryItemStatuses, inventoryItemTypes, inventoryTransactionTypes, inventoryUnitsOfMeasure };