@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
82 lines • 3.49 kB
JavaScript
import { z } from 'zod';
import { BaseResponseSchema, BaseGetParamsSchema } from '../../../core/schemas';
import { mysqlDatetimeSchema } from '../../../core/schema-utils';
// Bin Schema based on Bin.json
export const BinSchema = z.object({
binUid: z.coerce.number(),
locationId: z.coerce.number(),
bin: z.string().max(50),
binDesc: z.string().max(255).optional(),
binType: z.string().max(50).optional(),
isActive: z.string().max(1).optional(),
maxCapacity: z.coerce.number().optional(),
currentCapacity: z.coerce.number().optional(),
zone: z.string().max(50).optional(),
aisle: z.string().max(20).optional(),
shelf: z.string().max(20).optional(),
position: z.string().max(20).optional(),
dateCreated: mysqlDatetimeSchema().optional(),
dateLastModified: mysqlDatetimeSchema().optional(),
createdBy: z.string().max(255).optional(),
lastMaintainedBy: z.string().max(255).optional(),
});
// Inventory Location Bin Schema based on InvLocBin.json
export const InventoryLocationBinSchema = z.object({
invLocBinUid: z.coerce.number(),
invMastUid: z.coerce.number(),
locationId: z.coerce.number(),
binUid: z.coerce.number(),
itemId: z.string().max(40),
bin: z.string().max(50),
qtyOnHand: z.coerce.number(),
qtyAllocated: z.coerce.number().optional(),
qtyAvailable: z.coerce.number().optional(),
unitCost: z.number().optional(),
lastCountDate: mysqlDatetimeSchema().optional(),
lastMovementDate: mysqlDatetimeSchema().optional(),
dateCreated: mysqlDatetimeSchema().optional(),
dateLastModified: mysqlDatetimeSchema().optional(),
});
// Create Bin Request Schema
export const CreateBinRequestSchema = z.object({
bin: z.string().max(50),
binDesc: z.string().max(255).optional(),
binType: z.string().max(50).optional(),
isActive: z.string().max(1).optional(),
maxCapacity: z.coerce.number().optional(),
zone: z.string().max(50).optional(),
aisle: z.string().max(20).optional(),
shelf: z.string().max(20).optional(),
position: z.string().max(20).optional(),
});
// Update Bin Request Schema
export const UpdateBinRequestSchema = z.object({
binDesc: z.string().max(255).optional(),
binType: z.string().max(50).optional(),
isActive: z.string().max(1).optional(),
maxCapacity: z.coerce.number().optional(),
zone: z.string().max(50).optional(),
aisle: z.string().max(20).optional(),
shelf: z.string().max(20).optional(),
position: z.string().max(20).optional(),
});
// Bin List Parameters Schema
export const BinListParamsSchema = BaseGetParamsSchema.extend({
binType: z.string().optional(),
isActive: z.string().optional(),
zone: z.string().optional(),
q: z.string().optional(), // search in bin names
orderBy: z.string().optional(),
});
// Inventory Location Bin List Parameters Schema
export const InventoryLocationBinListParamsSchema = BaseGetParamsSchema.extend({
invMastUid: z.coerce.number().optional(),
hasStock: z.boolean().optional(),
orderBy: z.string().optional(),
});
// Response Schemas
export const BinResponseSchema = BaseResponseSchema(BinSchema);
export const BinListResponseSchema = BaseResponseSchema(z.array(BinSchema));
export const InventoryLocationBinResponseSchema = BaseResponseSchema(InventoryLocationBinSchema);
export const InventoryLocationBinListResponseSchema = BaseResponseSchema(z.array(InventoryLocationBinSchema));
//# sourceMappingURL=bins.js.map