UNPKG

@simpleapps-com/augur-api

Version:

TypeScript client library for Augur microservices API endpoints

1,126 lines 111 kB
import { BaseServiceClient } from '../../core/base-client'; import type { HTTPClient } from '../../core/client'; import { BinTransferListParamsSchema, BinTransferCreateRequestSchema, BinTransferUpdateRequestSchema, ReceivingListParamsSchema, ReceivingCreateRequestSchema, ReceivingUpdateRequestSchema, TransferListParamsSchema, TransferCreateRequestSchema, TransferUpdateRequestSchema, PurchaseOrderReceiptListParamsSchema, PurchaseOrderReceiptCreateRequestSchema, PurchaseOrderReceiptUpdateRequestSchema, TransferReceiptListParamsSchema, TransferReceiptCreateRequestSchema, TransferReceiptUpdateRequestSchema, TransferShippingListParamsSchema, TransferShippingCreateRequestSchema, TransferShippingUpdateRequestSchema } from './schemas'; import type { z } from 'zod'; type BinTransferListParams = z.infer<typeof BinTransferListParamsSchema>; type BinTransferCreateRequest = z.infer<typeof BinTransferCreateRequestSchema>; type BinTransferUpdateRequest = z.infer<typeof BinTransferUpdateRequestSchema>; type ReceivingListParams = z.infer<typeof ReceivingListParamsSchema>; type ReceivingCreateRequest = z.infer<typeof ReceivingCreateRequestSchema>; type ReceivingUpdateRequest = z.infer<typeof ReceivingUpdateRequestSchema>; type TransferListParams = z.infer<typeof TransferListParamsSchema>; type TransferCreateRequest = z.infer<typeof TransferCreateRequestSchema>; type TransferUpdateRequest = z.infer<typeof TransferUpdateRequestSchema>; type PurchaseOrderReceiptListParams = z.infer<typeof PurchaseOrderReceiptListParamsSchema>; type PurchaseOrderReceiptCreateRequest = z.infer<typeof PurchaseOrderReceiptCreateRequestSchema>; type PurchaseOrderReceiptUpdateRequest = z.infer<typeof PurchaseOrderReceiptUpdateRequestSchema>; type TransferReceiptListParams = z.infer<typeof TransferReceiptListParamsSchema>; type TransferReceiptCreateRequest = z.infer<typeof TransferReceiptCreateRequestSchema>; type TransferReceiptUpdateRequest = z.infer<typeof TransferReceiptUpdateRequestSchema>; type TransferShippingListParams = z.infer<typeof TransferShippingListParamsSchema>; type TransferShippingCreateRequest = z.infer<typeof TransferShippingCreateRequestSchema>; type TransferShippingUpdateRequest = z.infer<typeof TransferShippingUpdateRequestSchema>; /** * Nexus API Client * @description Client for interacting with Nexus microservice API endpoints for comprehensive warehouse management * @fullPath api.nexus * @service nexus * @domain warehouse-management * @discoverable true * @searchTerms ["nexus", "warehouse management", "inventory transfers", "receiving", "bin transfers", "warehouse operations"] * @relatedEndpoints ["api.nexus.binTransfers", "api.nexus.receivings", "api.nexus.transfers", "api.nexus.health"] * @commonPatterns ["Warehouse management operations", "Inventory movement tracking", "Receiving and transfer processing"] * @example * ```typescript * import { HTTPClient } from '@augur/api-client/core'; * import { NexusClient } from '@augur/api-client/services/nexus'; * * const http = new HTTPClient('nexus', { siteId: 'your-site-id', bearerToken: 'your-token' }); * const nexus = new NexusClient(http); * * // Create a bin transfer * const binTransfer = await nexus.binTransfers.create({ * usersId: 1001, * locationId: 5.0, * transfers: [{ * lineNo: 1.0, * invMastUid: 67890, * itemId: 'ITEM001', * toBin: 'A1-01', * fromBin: 'B2-05', * lot: 'LOT123', * uom: 'EA', * quantity: 10.0 * }] * }); * * // Create a receiving document * const receiving = await nexus.receivings.create({ * poNo: 12345.0, * referenceNo: 'REF001', * jsonData: JSON.stringify({ items: [{ itemId: 'ITEM001', quantity: 100 }] }) * }); * ``` */ export declare class NexusClient extends BaseServiceClient { /** * Create a new NexusClient instance * @param http Configured HTTPClient instance * @param baseUrl Base URL for the Nexus API (default: https://nexus.augur-api.com) */ constructor(http: HTTPClient, baseUrl?: string); /** * Health monitoring endpoints * @description Methods for checking service availability and health status */ health: { /** * Simple health check endpoint that doesn't require authentication * @description Returns "pong" response for basic connectivity testing * @fullPath api.nexus.health.ping * @service nexus * @domain service-monitoring * @dataMethod N/A (simple response) * @discoverable true * @searchTerms ["ping", "health check", "connectivity test", "service alive", "basic health"] * @relatedEndpoints ["api.nexus.health.check"] * @commonPatterns ["Test service connectivity", "Basic health check", "Ping service"] * @returns Simple pong response * @throws ValidationError When response is malformed * @example * ```typescript * const pong = await client.health.ping(); * console.log(pong.data); // "pong" * ``` */ ping: () => Promise<{ params: Record<string, unknown> | unknown[]; data: "pong"; options: Record<string, unknown> | unknown[]; status: number; message: string; count: number; total: number; totalResults: number; }>; /** * Comprehensive health check with authentication and site validation * @description Validates authentication, site configuration, and service health * @fullPath api.nexus.health.check * @service nexus * @domain service-monitoring * @dataMethod N/A (returns health data) * @discoverable true * @searchTerms ["health check", "service health", "authentication check", "site validation", "comprehensive health"] * @relatedEndpoints ["api.nexus.health.ping"] * @commonPatterns ["Check service health", "Validate authentication", "Full health status"] * @returns Health check response with site information * @throws ValidationError When response is malformed * @example * ```typescript * const health = await client.health.check(); * console.log('Site:', health.data.siteId, 'Hash:', health.data.siteHash); * ``` */ check: () => Promise<{ params: Record<string, unknown> | unknown[]; data: { siteHash: string; siteId: string; }; options: Record<string, unknown> | unknown[]; status: number; message: string; count: number; total: number; totalResults: number; }>; }; /** * Health monitoring data-only endpoints * @description Data-only methods that return just the data portion of health responses */ healthData: { /** * Simple health check data only * @description Returns only the data portion of ping response * @fullPath api.nexus.healthData.ping * @service nexus * @domain service-monitoring * @discoverable true * @searchTerms ["ping data", "connectivity data", "service alive data"] * @relatedEndpoints ["api.nexus.health.ping"] * @commonPatterns ["Test connectivity without metadata"] * @returns Ping data only */ ping: () => Promise<"pong">; /** * Comprehensive health check data only * @description Returns only the data portion of health check response * @fullPath api.nexus.healthData.check * @service nexus * @domain service-monitoring * @discoverable true * @searchTerms ["health data", "service status data", "health check data only"] * @relatedEndpoints ["api.nexus.health.check"] * @commonPatterns ["Get health status without metadata"] * @returns Health check data only */ check: () => Promise<{ siteHash: string; siteId: string; }>; }; /** * Bin Transfer endpoints * @description Methods for managing bin transfers - movement of inventory between bins within the same location */ binTransfers: { /** * Retrieve a list of bin transfer headers with optional filtering * @description Returns all bin transfer headers with pagination and status filtering support * @fullPath api.nexus.binTransfers.list * @service nexus * @domain warehouse-management * @dataMethod listData * @discoverable true * @searchTerms ["bin transfers", "inventory movement", "warehouse transfers", "bin to bin", "list transfers"] * @relatedEndpoints ["api.nexus.binTransfers.get", "api.nexus.binTransfers.getBinTransferStatus", "api.nexus.binTransfers.create"] * @commonPatterns ["List all bin transfers", "Get transfer history", "Find transfers by status"] * @param params Optional filtering and pagination parameters * @returns Array of bin transfer headers * @throws ValidationError When parameters are invalid or response is malformed * @example * ```typescript * const transfers = await client.binTransfers.list({ limit: 20, statusCd: 704 }); * transfers.data.forEach(transfer => { * console.log(`Transfer ${transfer.binTransferHdrUid}: Status ${transfer.statusCd}`); * }); * ``` */ list: (params?: { edgeCache?: 3 | 2 | 4 | 1 | "1" | 5 | 8 | "2" | "3" | "4" | "5" | "8" | undefined; limit?: number | undefined; offset?: number | undefined; statusCd?: number | undefined; } | undefined) => Promise<{ params: Record<string, unknown> | unknown[]; data: { response: string | null; requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; properties: string | null; jsonData: string | null; usersId: number; locationId: number; importState: string; binTransferHdrUid: number; }[]; options: Record<string, unknown> | unknown[]; status: number; message: string; count: number; total: number; totalResults: number; }>; /** * Retrieve details for a specific bin transfer header * @description Returns complete details for a bin transfer including JSON data and properties * @fullPath api.nexus.binTransfers.get * @service nexus * @domain warehouse-management * @dataMethod getData * @discoverable true * @searchTerms ["get bin transfer", "transfer details", "bin transfer by id", "transfer header"] * @relatedEndpoints ["api.nexus.binTransfers.list", "api.nexus.binTransfers.getBinTransferStatus", "api.nexus.binTransfers.update"] * @commonPatterns ["Get transfer details by ID", "View specific bin transfer", "Retrieve transfer information"] * @param binTransferHdrUid Bin transfer header unique identifier * @returns Complete bin transfer details * @throws ValidationError When response is malformed * @example * ```typescript * const transfer = await client.binTransfers.get(12345); * console.log('Transfer details:', transfer.data.jsonData); * console.log('Users ID:', transfer.data.usersId); * ``` */ get: (id: string | number, params?: import("../../core/base-client").CacheParams | undefined) => Promise<{ params: Record<string, unknown> | unknown[]; data: { response: string | null; requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; properties: string | null; jsonData: string | null; usersId: number; locationId: number; importState: string; binTransferHdrUid: number; }; options: Record<string, unknown> | unknown[]; status: number; message: string; count: number; total: number; totalResults: number; }>; /** * Retrieve bin transfer status with detailed line items * @description Returns complete bin transfer header with associated line items for status checking * @fullPath api.nexus.binTransfers.getBinTransferStatus * @service nexus * @domain warehouse-management * @dataMethod getBinTransferStatusData * @discoverable true * @searchTerms ["bin transfer status", "transfer line items", "transfer progress", "bin transfer details with lines"] * @relatedEndpoints ["api.nexus.binTransfers.get", "api.nexus.binTransfers.list", "api.nexus.binTransfers.update"] * @commonPatterns ["Check transfer status", "View transfer line items", "Get transfer progress"] * @param binTransferHdrUid Bin transfer header unique identifier * @returns Bin transfer with line items * @throws ValidationError When response is malformed * @example * ```typescript * const status = await client.binTransfers.getBinTransferStatus(12345); * console.log('Transfer lines:', status.data.lines?.length || 0); * if (status.data.lines) { * status.data.lines.forEach(line => { * console.log(`Line ${line.lineNo}: ${line.itemId} from ${line.fromBin} to ${line.toBin}`); * }); * } * ``` */ getBinTransferStatus: (id: string | number, params?: import("../../core/base-client").CacheParams | undefined) => Promise<{ params: Record<string, unknown> | unknown[]; data: { response: string | null; requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; lines: { dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; lineNo: number; invMastUid: number; quantity: number | null; itemId: string; uom: string; jsonData: string | null; locationId: number | null; toBin: string; fromBin: string; lot: string; moveAvailable: string; moveAllocations: string; binTransferHdrUid: number; }[]; properties: string | null; jsonData: string | null; usersId: number; locationId: number; importState: string; binTransferHdrUid: number; }; options: Record<string, unknown> | unknown[]; status: number; message: string; count: number; total: number; totalResults: number; }>; /** * Create a new bin transfer header with associated line items * @description Creates a bin transfer with complete transfer line items for inventory movement * @fullPath api.nexus.binTransfers.create * @service nexus * @domain warehouse-management * @dataMethod createData * @discoverable true * @searchTerms ["create bin transfer", "new transfer", "move inventory", "bin to bin transfer", "inventory movement"] * @relatedEndpoints ["api.nexus.binTransfers.list", "api.nexus.binTransfers.get", "api.nexus.binTransfers.update"] * @commonPatterns ["Create new bin transfer", "Move items between bins", "Start inventory transfer"] * @param transferData Complete bin transfer data including user, location, and transfer lines * @returns Created bin transfer header details * @throws ValidationError When request is invalid or response is malformed * @example * ```typescript * const transfer = await client.binTransfers.create({ * usersId: 1001, * locationId: 5.0, * requestId: 'req_12346', * transfers: [{ * lineNo: 1.0, * invMastUid: 67890, * itemId: 'ITEM001', * toBin: 'A1-01', * fromBin: 'B2-05', * lot: 'LOT123', * uom: 'EA', * moveAvailable: 'Y', * quantity: 10.0 * }] * }); * ``` */ create: (data: { usersId: number; transfers: { lineNo: number; invMastUid: number; itemId: string; uom: string; toBin: string; fromBin: string; lot: string; quantity?: number | undefined; moveAvailable?: string | undefined; moveAllocations?: string | undefined; }[]; locationId: number; requestId?: string | undefined; }) => Promise<{ params: Record<string, unknown> | unknown[]; data: { response: string | null; requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; properties: string | null; jsonData: string | null; usersId: number; locationId: number; importState: string; binTransferHdrUid: number; }; options: Record<string, unknown> | unknown[]; status: number; message: string; count: number; total: number; totalResults: number; }>; /** * Update an existing bin transfer header * @description Updates bin transfer status, process codes, and additional data * @fullPath api.nexus.binTransfers.update * @service nexus * @domain warehouse-management * @dataMethod updateData * @discoverable true * @searchTerms ["update bin transfer", "modify transfer", "change transfer status", "update transfer"] * @relatedEndpoints ["api.nexus.binTransfers.get", "api.nexus.binTransfers.getBinTransferStatus", "api.nexus.binTransfers.delete"] * @commonPatterns ["Update transfer status", "Modify bin transfer", "Change transfer details"] * @param binTransferHdrUid Bin transfer header unique identifier * @param updateData Fields to update on the bin transfer * @returns Updated bin transfer details * @throws ValidationError When request is invalid or response is malformed * @example * ```typescript * const updated = await client.binTransfers.update(12346, { * statusCd: 705, * processCd: 705, * properties: JSON.stringify({ notes: 'Transfer in progress' }) * }); * ``` */ update: (id: string | number, data: { statusCd?: number | undefined; processCd?: number | undefined; properties?: string | undefined; jsonData?: string | undefined; }) => Promise<{ params: Record<string, unknown> | unknown[]; data: { response: string | null; requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; properties: string | null; jsonData: string | null; usersId: number; locationId: number; importState: string; binTransferHdrUid: number; }; options: Record<string, unknown> | unknown[]; status: number; message: string; count: number; total: number; totalResults: number; }>; /** * Soft delete a bin transfer header * @description Marks a bin transfer as deleted by setting status code to 700 * @fullPath api.nexus.binTransfers.delete * @service nexus * @domain warehouse-management * @dataMethod deleteData * @discoverable true * @searchTerms ["delete bin transfer", "remove transfer", "cancel transfer", "soft delete"] * @relatedEndpoints ["api.nexus.binTransfers.get", "api.nexus.binTransfers.list", "api.nexus.binTransfers.update"] * @commonPatterns ["Delete bin transfer", "Cancel transfer", "Remove transfer record"] * @param binTransferHdrUid Bin transfer header unique identifier * @returns Deleted bin transfer details with updated status * @throws ValidationError When response is malformed * @example * ```typescript * const deleted = await client.binTransfers.delete(12346); * console.log('Transfer deleted, status:', deleted.data.statusCd); // Should be 700 * ``` */ delete: (id: string | number) => Promise<{ params: Record<string, unknown> | unknown[]; data: { response: string | null; requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; properties: string | null; jsonData: string | null; usersId: number; locationId: number; importState: string; binTransferHdrUid: number; }; options: Record<string, unknown> | unknown[]; status: number; message: string; count: number; total: number; totalResults: number; }>; /** * Retrieve a list of bin transfer headers with optional filtering (data only) * @description Returns only the data array from bin transfer headers response * @param params Optional filtering and pagination parameters * @returns Array of bin transfer headers (data only) * @throws ValidationError When parameters are invalid or response is malformed * @example * ```typescript * const transfersData = await client.binTransfers.listData({ limit: 20, statusCd: 704 }); * transfersData.forEach(transfer => { * console.log(`Transfer ${transfer.binTransferHdrUid}: Status ${transfer.statusCd}`); * }); * ``` */ listData: (params?: BinTransferListParams) => Promise<{ response: string | null; requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; properties: string | null; jsonData: string | null; usersId: number; locationId: number; importState: string; binTransferHdrUid: number; }[]>; /** * Retrieve details for a specific bin transfer header (data only) * @description Returns only the data from bin transfer details response * @param binTransferHdrUid Bin transfer header unique identifier * @returns Bin transfer details (data only) * @throws ValidationError When response is malformed * @example * ```typescript * const transferData = await client.binTransfers.getData(12345); * console.log('Transfer details:', transferData.jsonData); * ``` */ getData: (binTransferHdrUid: number | string) => Promise<{ response: string | null; requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; properties: string | null; jsonData: string | null; usersId: number; locationId: number; importState: string; binTransferHdrUid: number; }>; /** * Retrieve bin transfer status with detailed line items (data only) * @description Returns only the data from bin transfer status response * @param binTransferHdrUid Bin transfer header unique identifier * @returns Bin transfer with line items (data only) * @throws ValidationError When response is malformed * @example * ```typescript * const statusData = await client.binTransfers.getBinTransferStatusData(12345); * console.log('Transfer lines:', statusData.lines?.length || 0); * ``` */ getBinTransferStatusData: (binTransferHdrUid: number | string) => Promise<{ response: string | null; requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; lines: { dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; lineNo: number; invMastUid: number; quantity: number | null; itemId: string; uom: string; jsonData: string | null; locationId: number | null; toBin: string; fromBin: string; lot: string; moveAvailable: string; moveAllocations: string; binTransferHdrUid: number; }[]; properties: string | null; jsonData: string | null; usersId: number; locationId: number; importState: string; binTransferHdrUid: number; }>; /** * Create a new bin transfer header with associated line items (data only) * @description Returns only the data from created bin transfer response * @param transferData Complete bin transfer data including user, location, and transfer lines * @returns Created bin transfer header details (data only) * @throws ValidationError When request is invalid or response is malformed */ createData: (transferData: BinTransferCreateRequest) => Promise<{ response: string | null; requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; properties: string | null; jsonData: string | null; usersId: number; locationId: number; importState: string; binTransferHdrUid: number; }>; /** * Update an existing bin transfer header (data only) * @description Returns only the data from updated bin transfer response * @param binTransferHdrUid Bin transfer header unique identifier * @param updateData Fields to update on the bin transfer * @returns Updated bin transfer details (data only) * @throws ValidationError When request is invalid or response is malformed */ updateData: (binTransferHdrUid: number | string, updateData: BinTransferUpdateRequest) => Promise<{ response: string | null; requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; properties: string | null; jsonData: string | null; usersId: number; locationId: number; importState: string; binTransferHdrUid: number; }>; /** * Soft delete a bin transfer header (data only) * @description Returns only the data from deleted bin transfer response * @param binTransferHdrUid Bin transfer header unique identifier * @returns Deleted bin transfer details (data only) * @throws ValidationError When response is malformed */ deleteData: (binTransferHdrUid: number | string) => Promise<{ response: string | null; requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; properties: string | null; jsonData: string | null; usersId: number; locationId: number; importState: string; binTransferHdrUid: number; }>; }; /** * Receiving endpoints * @description Methods for managing receiving operations - purchase order receipts and inventory receiving processes */ receivings: { /** * Retrieve a list of receiving documents with optional filtering * @description Returns receiving documents with pagination and filtering by PO number or status * @fullPath api.nexus.receivings.list * @service nexus * @domain warehouse-management * @dataMethod listData * @discoverable true * @searchTerms ["receiving documents", "purchase order receipts", "receiving list", "PO receipts", "inbound inventory"] * @relatedEndpoints ["api.nexus.receivings.get", "api.nexus.receivings.create", "api.nexus.purchaseOrderReceipts.list"] * @commonPatterns ["List all receiving documents", "Get receiving history", "Find receipts by PO number"] * @param params Optional filtering and pagination parameters * @returns Array of receiving documents * @throws ValidationError When parameters are invalid or response is malformed * @example * ```typescript * const receivings = await client.receivings.list({ limit: 50, poNo: 12345, statusCd: 704 }); * receivings.data.forEach(receiving => { * console.log(`Receiving ${receiving.receivingUid}: PO ${receiving.poNo}`); * }); * ``` */ list: (params?: { edgeCache?: 3 | 2 | 4 | 1 | "1" | 5 | 8 | "2" | "3" | "4" | "5" | "8" | undefined; limit?: number | undefined; offset?: number | undefined; statusCd?: number | undefined; poNo?: number | undefined; } | undefined) => Promise<{ params: Record<string, unknown> | unknown[]; data: { requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; properties: string | null; jsonData: string | null; importState: string; receivingUid: number; referenceNo: string | null; poNo: number; processMessage: string | null; }[]; options: Record<string, unknown> | unknown[]; status: number; message: string; count: number; total: number; totalResults: number; }>; /** * Retrieve details for a specific receiving document * @description Returns complete details for a receiving document including JSON data and properties * @fullPath api.nexus.receivings.get * @service nexus * @domain warehouse-management * @dataMethod getData * @discoverable true * @searchTerms ["get receiving", "receiving details", "receiving by id", "receipt details"] * @relatedEndpoints ["api.nexus.receivings.list", "api.nexus.receivings.update", "api.nexus.purchaseOrderReceipts.get"] * @commonPatterns ["Get receiving details by ID", "View specific receipt", "Retrieve receiving information"] * @param receivingUid Receiving unique identifier * @returns Complete receiving document details * @throws ValidationError When response is malformed * @example * ```typescript * const receiving = await client.receivings.get(54321); * console.log('Receiving details:', receiving.data.jsonData); * console.log('PO Number:', receiving.data.poNo); * ``` */ get: (id: string | number, params?: import("../../core/base-client").CacheParams | undefined) => Promise<{ params: Record<string, unknown> | unknown[]; data: { requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; properties: string | null; jsonData: string | null; importState: string; receivingUid: number; referenceNo: string | null; poNo: number; processMessage: string | null; }; options: Record<string, unknown> | unknown[]; status: number; message: string; count: number; total: number; totalResults: number; }>; /** * Create a new receiving document * @description Creates a receiving document for purchase order receipt processing * @fullPath api.nexus.receivings.create * @service nexus * @domain warehouse-management * @dataMethod createData * @discoverable true * @searchTerms ["create receiving", "new receipt", "receive inventory", "PO receipt", "inbound processing"] * @relatedEndpoints ["api.nexus.receivings.list", "api.nexus.receivings.get", "api.nexus.purchaseOrderReceipts.create"] * @commonPatterns ["Create new receiving document", "Process PO receipt", "Start receiving process"] * @param receivingData Complete receiving data including PO number and optional details * @returns Created receiving document details * @throws ValidationError When request is invalid or response is malformed * @example * ```typescript * const receiving = await client.receivings.create({ * poNo: 12345.0, * referenceNo: 'REF002', * requestId: 'req_recv_002', * jsonData: JSON.stringify({ items: [{ itemId: 'ITEM001', quantity: 100 }] }), * properties: JSON.stringify({ supplier: 'ACME Corp', expectedDate: '2024-01-02' }) * }); * ``` */ create: (data: { poNo: number; requestId?: string | undefined; properties?: string | undefined; jsonData?: string | undefined; referenceNo?: string | undefined; }) => Promise<{ params: Record<string, unknown> | unknown[]; data: { requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; properties: string | null; jsonData: string | null; importState: string; receivingUid: number; referenceNo: string | null; poNo: number; processMessage: string | null; }; options: Record<string, unknown> | unknown[]; status: number; message: string; count: number; total: number; totalResults: number; }>; /** * Update an existing receiving document * @description Updates receiving status, process codes, messages, and tracking information * @fullPath api.nexus.receivings.update * @service nexus * @domain warehouse-management * @dataMethod updateData * @discoverable true * @searchTerms ["update receiving", "modify receiving", "change receiving status", "update receipt", "receiving modification"] * @relatedEndpoints ["api.nexus.receivings.get", "api.nexus.receivings.list", "api.nexus.receivings.delete"] * @commonPatterns ["Update receiving status", "Modify receiving details", "Change receiving properties"] * @workflow ["receiving-processing", "status-updates", "receipt-management"] * @prerequisites ["Valid receiving ID", "Update permissions", "Proper status transitions"] * @nextSteps ["api.nexus.receivings.get for verification", "Related processing workflows"] * @businessRules ["Status changes must follow valid transitions", "Updates create audit trail entries", "Some fields may be immutable"] * @functionalArea "warehouse-management" * @param receivingUid Receiving unique identifier * @param updateData Fields to update on the receiving document * @returns Updated receiving details * @throws ValidationError When request is invalid or response is malformed * @example * ```typescript * const updated = await client.receivings.update(54322, { * statusCd: 705, * processCd: 705, * processMessage: 'Processing receipt', * jsonData: JSON.stringify({ status: 'in_progress' }) * }); * ``` */ update: (id: string | number, data: { statusCd?: number | undefined; processCd?: number | undefined; jsonData?: string | undefined; processMessage?: string | undefined; }) => Promise<{ params: Record<string, unknown> | unknown[]; data: { requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; properties: string | null; jsonData: string | null; importState: string; receivingUid: number; referenceNo: string | null; poNo: number; processMessage: string | null; }; options: Record<string, unknown> | unknown[]; status: number; message: string; count: number; total: number; totalResults: number; }>; /** * Soft delete a receiving document * @description Marks a receiving document as deleted by setting status code to 700 * @fullPath api.nexus.receivings.delete * @service nexus * @domain warehouse-management * @dataMethod deleteData * @discoverable true * @searchTerms ["delete receiving", "remove receiving", "cancel receiving", "soft delete receipt"] * @relatedEndpoints ["api.nexus.receivings.get", "api.nexus.receivings.list", "api.nexus.receivings.update"] * @commonPatterns ["Delete receiving document", "Cancel receiving", "Remove receiving record"] * @workflow ["receiving-cancellation", "cleanup-processes", "audit-trail-maintenance"] * @prerequisites ["Valid receiving ID", "Delete permissions", "Receiving must be in deletable state"] * @nextSteps ["Cleanup related documents if needed", "Update related processes"] * @businessRules ["Soft delete preserves audit trail", "Status set to 700", "Related documents may need attention"] * @functionalArea "warehouse-management" * @param receivingUid Receiving unique identifier * @returns Deleted receiving details with updated status * @throws ValidationError When response is malformed * @example * ```typescript * const deleted = await client.receivings.delete(54322); * console.log('Receiving deleted, status:', deleted.data.statusCd); // Should be 700 * ``` */ delete: (id: string | number) => Promise<{ params: Record<string, unknown> | unknown[]; data: { requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; properties: string | null; jsonData: string | null; importState: string; receivingUid: number; referenceNo: string | null; poNo: number; processMessage: string | null; }; options: Record<string, unknown> | unknown[]; status: number; message: string; count: number; total: number; totalResults: number; }>; /** * Retrieve a list of receiving documents with optional filtering (data only) * @description Returns only the data array from receiving documents response * @param params Optional filtering and pagination parameters * @returns Array of receiving documents (data only) * @throws ValidationError When parameters are invalid or response is malformed */ listData: (params?: ReceivingListParams) => Promise<{ requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; properties: string | null; jsonData: string | null; importState: string; receivingUid: number; referenceNo: string | null; poNo: number; processMessage: string | null; }[]>; /** * Retrieve details for a specific receiving document (data only) * @description Returns only the data from receiving document details response * @param receivingUid Receiving unique identifier * @returns Receiving document details (data only) * @throws ValidationError When response is malformed */ getData: (receivingUid: number | string) => Promise<{ requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; properties: string | null; jsonData: string | null; importState: string; receivingUid: number; referenceNo: string | null; poNo: number; processMessage: string | null; }>; /** * Create a new receiving document (data only) * @description Returns only the data from created receiving document response * @param receivingData Complete receiving data including PO number and optional details * @returns Created receiving document details (data only) * @throws ValidationError When request is invalid or response is malformed */ createData: (receivingData: ReceivingCreateRequest) => Promise<{ requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; properties: string | null; jsonData: string | null; importState: string; receivingUid: number; referenceNo: string | null; poNo: number; processMessage: string | null; }>; /** * Update an existing receiving document (data only) * @description Returns only the data from updated receiving response * @param receivingUid Receiving unique identifier * @param updateData Fields to update on the receiving document * @returns Updated receiving details (data only) * @throws ValidationError When request is invalid or response is malformed */ updateData: (receivingUid: number | string, updateData: ReceivingUpdateRequest) => Promise<{ requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; properties: string | null; jsonData: string | null; importState: string; receivingUid: number; referenceNo: string | null; poNo: number; processMessage: string | null; }>; /** * Soft delete a receiving document (data only) * @description Returns only the data from deleted receiving response * @param receivingUid Receiving unique identifier * @returns Deleted receiving details (data only) * @throws ValidationError When response is malformed */ deleteData: (receivingUid: number | string) => Promise<{ requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; properties: string | null; jsonData: string | null; importState: string; receivingUid: number; referenceNo: string | null; poNo: number; processMessage: string | null; }>; }; /** * Transfer endpoints * @description Methods for managing general transfer operations for inventory movement between locations */ transfers: { /** * Retrieve a list of transfer documents with optional filtering * @description Returns transfer documents with pagination and filtering by reference number or status * @fullPath api.nexus.transfers.list * @service nexus * @domain warehouse-management * @dataMethod listData * @discoverable true * @searchTerms ["transfers", "location transfers", "inventory transfer", "warehouse transfer", "transfer documents"] * @relatedEndpoints ["api.nexus.transfers.get", "api.nexus.transfers.create", "api.nexus.transferReceipts.list"] * @commonPatterns ["List all transfers", "Get transfer history", "Find transfers by reference"] * @param params Optional filtering and pagination parameters * @returns Array of transfer documents * @throws ValidationError When parameters are invalid or response is malformed * @example * ```typescript * const transfers = await client.transfers.list({ limit: 25, referenceNo: 'TRF001' }); * transfers.data.forEach(transfer => { * console.log(`Transfer ${transfer.transferUid}: ${transfer.referenceNo}`); * }); * ``` */ list: (params?: { edgeCache?: 3 | 2 | 4 | 1 | "1" | 5 | 8 | "2" | "3" | "4" | "5" | "8" | undefined; limit?: number | undefined; offset?: number | undefined; statusCd?: number | undefined; referenceNo?: string | undefined; } | undefined) => Promise<{ params: Record<string, unknown> | unknown[]; data: { requestId: string | null; dateCreated: string; dateLastModified: string; statusCd: number; updateCd: number; processCd: number; jsonData: string | null; importState: string; referenceNo: string | null; processMessage: string | null; transferUid: number; }[]; options: Record<string, unknown> | unknown[]; status: number; message: string; count: number; total: number; totalResults: number; }>; /** * Retrieve details for a specific transfer document * @description Returns complete details for a transfer document including JSON data * @fullPath api.nexus.transfers.get * @service nexus * @domain warehouse-management * @dataMethod getData * @discoverable true * @searchTerms ["get transfer", "transfer details", "transfer by id", "transfer d