@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
60 lines • 2.4 kB
JavaScript
import { z } from 'zod';
import { BaseResponseSchema } from '../../../core/schemas';
import { InvProfileLineTypeSchema } from './common';
// Inventory operation schemas
export const InventoryAvailabilitySchema = z.object({
inv_mast_uid: z.number(),
item_id: z.string(),
description: z.string(),
qty_on_hand: z.number(),
default_selling_unit: z.string(),
type: z.union([z.literal('prophet21'), z.literal('products')]),
});
export const InventoryAvailabilityParamsSchema = z.object({
q: z.string().min(1, 'Search query is required'),
});
export const InventoryAdjustmentSchema = z.object({
inv_mast_uid: z.coerce.number(),
qty_on_hand: z.coerce.number(),
reason: z.string().optional(),
});
export const InventoryAdjustRequestSchema = z.object({
adjustments: z.array(InventoryAdjustmentSchema).min(1, 'At least one adjustment is required'),
});
export const InventoryReceiptSchema = z.object({
inv_mast_uid: z.coerce.number(),
qty_received: z.coerce.number(),
po_number: z.string().optional(),
lot_number: z.string().optional(),
});
export const InventoryReceiveRequestSchema = z.object({
receipts: z.array(InventoryReceiptSchema).min(1, 'At least one receipt is required'),
});
export const TransferItemSchema = z.object({
inv_mast_uid: z.coerce.number(),
qty_to_transfer: z.coerce.number(),
reason: z.string().optional(),
});
export const TransferRequestSchema = z.object({
to_warehouse_uid: z.coerce.number(),
transfers: z.array(TransferItemSchema).min(1, 'At least one transfer item is required'),
});
export const WarrantyInfoSchema = z.object({
model_no: z.string().optional(),
serial_no: z.string().optional(),
warranty_type: z.string().optional(),
notes: z.string().optional(),
});
export const UsageItemSchema = z.object({
inv_mast_uid: z.coerce.number(),
inv_profile_line_type: InvProfileLineTypeSchema,
qty_used: z.coerce.number(),
warranty: WarrantyInfoSchema.optional(),
});
export const UsageRequestSchema = z.object({
job_description: z.string().min(1, 'Job description is required'),
department: z.string().optional(),
usage_items: z.array(UsageItemSchema).min(1, 'At least one usage item is required'),
});
export const InventoryAvailabilityResponseSchema = BaseResponseSchema(z.array(InventoryAvailabilitySchema));
//# sourceMappingURL=inventory.js.map