@simpleapps-com/augur-api
Version:
TypeScript client library for Augur microservices API endpoints
113 lines • 5.44 kB
JavaScript
import { z } from 'zod';
import { BaseGetParamsSchema, BaseResponseSchema } from '../../../core/schemas';
// Order Line Item Schema - based on Orders.json schema
export const OrderLineItemSchema = z.object({
invMastUid: z.number(),
cancelFlag: z.string().nullable().optional(),
complete: z.string().nullable().optional(),
deleteFlag: z.string().nullable().optional(),
disposition: z.string().nullable().optional(),
itemDesc: z.string().nullable().optional(),
displayDesc: z.unknown().optional(), // Can be various types according to schema
itemId: z.string(),
lineNo: z.number(),
orderNo: z.string(),
originalQtyOrdered: z.number().nullable().optional(),
qtyAllocated: z.number().nullable().optional(),
qtyCanceled: z.number().nullable().optional(),
qtyInvoiced: z.number().nullable().optional(),
qtyOnPickTickets: z.number().nullable().optional(),
qtyOrdered: z.number().nullable().optional(),
unitOfMeasure: z.string().nullable().optional(),
unitQuantity: z.number().nullable().optional(),
unitSize: z.coerce.number().nullable().optional(), // Exception: Orders.json schema incorrectly defines this as string, but it's a float/double in SQL
unitPrice: z.number().nullable().optional(),
extendedPrice: z.number().nullable().optional(),
trinityItemId: z.string().optional(),
trinityItemDesc: z.string().optional(),
agentItemId: z.string().optional(),
agentItemDesc: z.string().optional(),
});
// Pick Ticket Line Item Schema
export const PickTicketLineItemSchema = z.object({
lineNumber: z.number(),
shipQuantity: z.number().nullable().optional(),
qtyRequested: z.number().nullable().optional(),
invMastUid: z.number(),
itemId: z.string(),
itemDesc: z.string().nullable().optional(),
displayDesc: z.unknown().optional(), // Can be various types according to schema
trinityItemId: z.string().optional(),
trinityItemDesc: z.string().optional(),
agentItemId: z.string().optional(),
agentItemDesc: z.string().optional(),
});
// Pick Ticket Schema
export const PickTicketSchema = z.object({
pickTicketNo: z.coerce.number(), // Exception: Orders.json schema incorrectly defines this as string, but it's a DECIMAL/float in SQL
trackingNo: z.string().nullable().optional(),
orderNo: z.string(),
invoiceNo: z.coerce.string().nullable().optional(),
shipDate: z.string().nullable().optional(),
printedFlag: z.string().nullable().optional(),
printDate: z.string().nullable().optional(),
instructions: z.string().nullable().optional(),
carrierId: z.number().nullable().optional(),
carrierName: z.string(),
lines: z.array(PickTicketLineItemSchema),
});
// Order Document Schema - comprehensive order structure
export const OrderDocumentSchema = z.object({
orderNo: z.string(),
customerId: z.number(),
customerName: z.string(),
jobName: z.string().nullable().optional(),
orderDate: z.string().nullable().optional(),
requestedDate: z.string().nullable().optional(),
completed: z.string().nullable().optional(),
poNo: z.string().nullable().optional(),
ship2Name: z.string().nullable().optional(),
ship2Add1: z.string().nullable().optional(),
ship2Add2: z.string().nullable().optional(),
ship2Add3: z.string().nullable().optional(),
ship2City: z.string().nullable().optional(),
ship2State: z.string().nullable().optional(),
ship2Zip: z.string().nullable().optional(),
ship2Country: z.string().nullable().optional(),
ship2EmailAddress: z.string().nullable().optional(),
shipToPhone: z.string().nullable().optional(),
deliveryInstructions: z.string().nullable().optional(),
class1Id: z.string().nullable().optional(),
class2Id: z.string().nullable().optional(),
class3Id: z.string().nullable().optional(),
class4Id: z.string().nullable().optional(),
class5Id: z.string().nullable().optional(),
contactId: z.string().nullable().optional(),
webReferenceNo: z.string().nullable().optional(),
orderStatus: z.string(), // calculated field
taker: z.string().nullable().optional(),
contactFirstName: z.string().nullable().optional(),
contactLastName: z.string().nullable().optional(),
carrierId: z.number().nullable().optional(),
carrierName: z.string(),
lines: z.array(OrderLineItemSchema),
pickTickets: z.array(PickTicketSchema),
});
// Order List Parameters Schema
// Note: HTTP query parameters are always strings, so we use coercion for numbers
export const OrderListParamsSchema = BaseGetParamsSchema.extend({
addressId: z.coerce.number().optional(),
orderBy: z.string().optional().default('date_created|DESC'),
q: z.string().optional(),
fullDocument: z
.union([z.literal('Y'), z.literal('N')])
.optional()
.default('Y'),
});
// Response schemas using BaseResponseSchema (8-field format)
export const OrderDocumentResponseSchema = BaseResponseSchema(OrderDocumentSchema);
export const OrderDocumentListResponseSchema = BaseResponseSchema(z.array(OrderDocumentSchema));
// For summary data (when fullDocument = 'N'), using a more flexible schema
export const OrderSummarySchema = z.object({}).passthrough(); // Allows any properties for OeHdrDto converted to stdClass
export const OrderHeaderListResponseSchema = BaseResponseSchema(z.array(OrderSummarySchema));
//# sourceMappingURL=orders.js.map