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