UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

120 lines 5.87 kB
import { z } from 'zod'; import { BaseResponseSchema, BaseGetParamsSchema, EdgeCacheParamsSchema, } from '../../../core/schemas'; // Purchase Order Line Schema export const PurchaseOrderLineSchema = z.object({ lineNo: z.number(), invMastUid: z.number(), itemId: z.string(), description: z.string().optional(), // API uses itemDesc instead itemDesc: z.string().optional(), // Actual field name from API qtyOrdered: z.number(), qtyReceived: z.number(), qtyOutstanding: z.number().optional(), // Additional field from API unitCost: z.number().optional(), // May not always be present in list responses extendedCost: z.number().optional(), // May not always be present in list responses unitOfMeasure: z.string().optional(), // May not always be present in list responses serialized: z.string().optional(), // Additional field from API trackBins: z.string().optional(), // Additional field from API primaryBin: z.string().optional(), // Additional field from API lotAssignmentRequired: z.string().optional(), // Additional field from API }); // Purchase Order Header Schema export const PurchaseOrderHeaderSchema = z.object({ poHdrUid: z.number().optional(), poNo: z.number(), vendorId: z.number(), // API returns number, not string vendorName: z.string().nullable(), // Can be empty string or null supplierId: z.number().optional(), // Additional field from API supplierName: z.string().nullable().optional(), // Can be empty string or null divisionId: z.number().optional(), // Additional field from API orderDate: z.unknown().optional(), // API returns complex date object, not simple string poDate: z.string().optional(), // Keep for backward compatibility complete: z.string(), totalAmount: z.number().optional(), // Not always present in list responses locationId: z.coerce.number().optional(), companyNo: z.string().optional(), // Additional field from API ship2Name: z.string().nullable().optional(), // Can be null packingSlipNumber: z.unknown().nullable().optional(), // Can be null ship2Add1: z.string().nullable().optional(), // Can be null ship2Add2: z.string().nullable().optional(), // Can be null expedite: z.string().optional(), ackFlag: z.string().optional(), lines: z.array(z.unknown()).optional(), // Lines can be present in list responses }); // Purchase Order Detail Schema export const PurchaseOrderDetailSchema = z.object({ poNo: z.number(), vendorId: z.number(), // API returns number, not string vendorName: z.string().nullable(), // Can be empty string or null poDate: z.string().optional(), // May not always be present orderDate: z.unknown().optional(), // API uses orderDate with complex structure complete: z.string(), totalAmount: z.number().optional(), // May not always be present currencyId: z.string().optional(), exchangeRate: z.number().optional(), approved: z.string().optional(), expedite: z.string().optional(), ackFlag: z.string().optional(), requestedDate: z.string().optional(), lines: z.array(PurchaseOrderLineSchema), }); // Purchase Order Document Schema (includes vendor address, receipts, invoices) export const PurchaseOrderDocumentSchema = z.object({ poNo: z.number(), vendorId: z.number(), // API returns number, not string vendorName: z.string().nullable(), // Can be empty string or null vendorAddress: z .object({ address1: z.string().optional(), city: z.string().optional(), state: z.string().optional(), zip: z.string().optional(), }) .optional(), poDate: z.string().optional(), // May not always be present orderDate: z.unknown().optional(), // API uses orderDate with complex structure totalAmount: z.number().optional(), // May not always be present terms: z.string().optional(), fobPoint: z.string().optional(), lines: z.array(PurchaseOrderLineSchema), receipts: z.array(z.unknown()).optional(), invoices: z.array(z.unknown()).optional(), }); // Purchase Order List Parameters Schema export const PurchaseOrderListParamsSchema = BaseGetParamsSchema.extend({ complete: z.string().optional(), orderBy: z.string().optional(), q: z.string().optional(), locationId: z.coerce.number().optional(), }).merge(EdgeCacheParamsSchema); // Purchase Order Scan Parameters Schema export const PurchaseOrderScanParamsSchema = z.object({ vendorId: z.coerce.number().optional(), // API expects number, not string locationId: z.coerce.number().optional(), dateRange: z .object({ startDate: z.string().optional(), endDate: z.string().optional(), }) .optional(), itemIds: z.array(z.string()).optional(), minAmount: z.coerce.number().optional(), maxAmount: z.coerce.number().optional(), complete: z.string().optional(), }); // Purchase Order Scan Result Schema export const PurchaseOrderScanResultSchema = z.object({ poNo: z.number(), vendorId: z.number(), // API returns number, not string poDate: z.string().optional(), // May use orderDate instead orderDate: z.unknown().optional(), // API uses orderDate with complex structure totalAmount: z.number().optional(), // May not always be present similarity: z.number(), matchedCriteria: z.array(z.string()), }); // Response Schemas export const PurchaseOrderListResponseSchema = BaseResponseSchema(z.array(PurchaseOrderHeaderSchema)); export const PurchaseOrderDetailResponseSchema = BaseResponseSchema(PurchaseOrderDetailSchema); export const PurchaseOrderDocumentResponseSchema = BaseResponseSchema(PurchaseOrderDocumentSchema); export const PurchaseOrderScanResponseSchema = BaseResponseSchema(z.array(PurchaseOrderScanResultSchema)); //# sourceMappingURL=purchase-orders.js.map