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