UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

113 lines 4.37 kB
import { z } from 'zod'; import { BaseResponseSchema, BaseGetParamsSchema } from '../../../core/schemas'; import { BaseNexusEntitySchema } from './common'; import { mysqlDatetimeSchema } from '../../../core/schema-utils'; /** * Schema for bin transfer line items in create requests * Simplified schema for creating bin transfers */ export const BinTransferLineCreateSchema = z.object({ lineNo: z.number(), invMastUid: z.number(), itemId: z.string(), toBin: z.string(), fromBin: z.string(), lot: z.string(), uom: z.string(), moveAvailable: z.string().optional().default('N'), moveAllocations: z.string().optional().default('N'), quantity: z.number().optional(), }); /** * Schema for bin transfer line items in responses * IMPORTANT: DateTime format differs from OpenAPI spec * OpenAPI expects ISO format, API returns "YYYY-MM-DD HH:mm:ss" format */ export const BinTransferLineSchema = z.object({ binTransferHdrUid: z.number().int(), lineNo: z.number(), dateCreated: mysqlDatetimeSchema(), dateLastModified: mysqlDatetimeSchema(), updateCd: z.number().int(), statusCd: z.number().int(), processCd: z.number().int(), locationId: z.number().nullable(), invMastUid: z.number().int(), itemId: z.string().max(40), toBin: z.string().max(10), fromBin: z.string().max(10), lot: z.string().max(40), uom: z.string().max(8), moveAvailable: z.string().max(1), moveAllocations: z.string().max(1), jsonData: z.string().max(16777215).nullable(), quantity: z.number().nullable(), }); /** * Schema for bin transfer entity * Based on OpenAPI spec with proper constraints - all fields are REQUIRED per specification */ export const BinTransferSchema = BaseNexusEntitySchema.extend({ binTransferHdrUid: z.number().int(), properties: z.string().max(16777215).nullable(), response: z.string().max(16777215).nullable(), usersId: z.number().int(), locationId: z.number(), }); /** * Schema for bin transfer status with line items * IMPORTANT: This schema differs from OpenAPI spec due to API inconsistencies: * 1. OpenAPI spec missing 'lines' property - but API returns it * 2. OpenAPI expects ISO datetime - but API returns "YYYY-MM-DD HH:mm:ss" format * 3. OpenAPI defines options/params as objects - but API returns arrays */ export const BinTransferStatusSchema = z.object({ binTransferHdrUid: z.number().int(), importState: z.string().max(30), dateCreated: mysqlDatetimeSchema(), dateLastModified: mysqlDatetimeSchema(), updateCd: z.number().int(), statusCd: z.number().int(), processCd: z.number().int(), jsonData: z.string().max(16777215).nullable(), properties: z.string().max(16777215).nullable(), requestId: z.string().max(255).nullable(), response: z.string().max(16777215).nullable(), usersId: z.number().int(), locationId: z.number(), lines: z.array(BinTransferLineSchema), // MISSING from OpenAPI spec but present in API response }); /** * Schema for bin transfer list query parameters */ export const BinTransferListParamsSchema = BaseGetParamsSchema.extend({ statusCd: z.coerce.number().int().positive().optional(), }); /** * Schema for bin transfer creation request */ export const BinTransferCreateRequestSchema = z.object({ usersId: z.number(), locationId: z.number(), requestId: z.string().optional(), transfers: z.array(BinTransferLineCreateSchema), }); /** * Schema for bin transfer update request */ export const BinTransferUpdateRequestSchema = z .object({ statusCd: z.number(), processCd: z.number(), jsonData: z.string(), properties: z.string(), }) .partial(); // Response schemas - using BaseResponseSchema (now updated to match OpenAPI spec) export const BinTransferListResponseSchema = BaseResponseSchema(z.array(BinTransferSchema)); export const BinTransferGetResponseSchema = BaseResponseSchema(BinTransferSchema); export const BinTransferStatusResponseSchema = BaseResponseSchema(BinTransferStatusSchema); export const BinTransferCreateResponseSchema = BaseResponseSchema(BinTransferSchema); export const BinTransferUpdateResponseSchema = BaseResponseSchema(BinTransferSchema); export const BinTransferDeleteResponseSchema = BaseResponseSchema(BinTransferSchema); //# sourceMappingURL=bin-transfers.js.map