2026-03-14 21:10:35 -05:00
|
|
|
import {
|
|
|
|
|
inventoryItemStatuses,
|
|
|
|
|
inventoryItemTypes,
|
|
|
|
|
inventoryUnitsOfMeasure,
|
|
|
|
|
type InventoryBomLineInput,
|
|
|
|
|
type InventoryItemInput,
|
2026-03-14 21:23:22 -05:00
|
|
|
type WarehouseInput,
|
|
|
|
|
type WarehouseLocationInput,
|
2026-03-14 21:10:35 -05:00
|
|
|
type InventoryItemStatus,
|
|
|
|
|
type InventoryItemType,
|
|
|
|
|
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: [],
|
|
|
|
|
};
|
|
|
|
|
|
2026-03-14 21:23:22 -05:00
|
|
|
export const emptyWarehouseLocationInput: WarehouseLocationInput = {
|
|
|
|
|
code: "",
|
|
|
|
|
name: "",
|
|
|
|
|
notes: "",
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const emptyWarehouseInput: WarehouseInput = {
|
|
|
|
|
code: "",
|
|
|
|
|
name: "",
|
|
|
|
|
notes: "",
|
|
|
|
|
locations: [],
|
|
|
|
|
};
|
|
|
|
|
|
2026-03-14 21:10:35 -05:00
|
|
|
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<InventoryItemStatus, string> = {
|
|
|
|
|
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<InventoryItemType, string> = {
|
|
|
|
|
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 { inventoryItemStatuses, inventoryItemTypes, inventoryUnitsOfMeasure };
|