import type { Square } from "square" import { defineSquareOperation } from "../lib" /** * Cancels a transfer order in [STARTED](entity:TransferOrderStatus) or * [PARTIALLY_RECEIVED](entity:TransferOrderStatus) status. */ export const cancelSquareTransferOrder = defineSquareOperation< Square.CancelTransferOrderRequest, Square.CancelTransferOrderResponse >({ allowedKeys: ["transferOrderId", "idempotencyKey", "version"], description: "Cancels a transfer order in [STARTED](entity:TransferOrderStatus) or [PARTIALLY_RECEIVED](entity:TransferOrderStatus) status.", execute: (api, input) => api.transferOrders.cancel(input), name: "Cancel Square Transfer Order", replaySafety: "safe", requiredKeys: ["transferOrderId", "idempotencyKey"], scopes: ["INVENTORY_READ", "INVENTORY_WRITE"], }) /** Creates a new transfer order in [DRAFT](entity:TransferOrderStatus) status. */ export const createSquareTransferOrder = defineSquareOperation< Square.CreateTransferOrderRequest, Square.CreateTransferOrderResponse >({ allowedKeys: ["idempotencyKey", "transferOrder"], description: "Creates a new transfer order in [DRAFT](entity:TransferOrderStatus) status.", execute: (api, input) => api.transferOrders.create(input), name: "Create Square Transfer Order", replaySafety: "safe", requiredKeys: ["idempotencyKey", "transferOrder"], scopes: ["INVENTORY_READ", "INVENTORY_WRITE"], }) /** Deletes a transfer order in [DRAFT](entity:TransferOrderStatus) status. */ export const deleteSquareTransferOrder = defineSquareOperation< Square.DeleteTransferOrdersRequest, Square.DeleteTransferOrderResponse >({ allowedKeys: ["transferOrderId", "version"], description: "Deletes a transfer order in [DRAFT](entity:TransferOrderStatus) status.", execute: (api, input) => api.transferOrders.delete(input), name: "Delete Square Transfer Order", replaySafety: "safe", requiredKeys: ["transferOrderId"], scopes: ["INVENTORY_WRITE"], }) /** * Records receipt of [CatalogItemVariation](entity:CatalogItemVariation)s for a * transfer order. */ export const receiveSquareTransferOrder = defineSquareOperation< Square.ReceiveTransferOrderRequest, Square.ReceiveTransferOrderResponse >({ allowedKeys: ["transferOrderId", "idempotencyKey", "receipt", "version"], description: "Records receipt of [CatalogItemVariation](entity:CatalogItemVariation)s for a transfer order.", execute: (api, input) => api.transferOrders.receive(input), name: "Receive Square Transfer Order", replaySafety: "safe", requiredKeys: ["transferOrderId", "idempotencyKey", "receipt"], scopes: ["INVENTORY_READ", "INVENTORY_WRITE"], }) /** Retrieves a specific [TransferOrder](entity:TransferOrder) by ID. */ export const retrieveSquareTransferOrder = defineSquareOperation< Square.GetTransferOrdersRequest, Square.RetrieveTransferOrderResponse >({ allowedKeys: ["transferOrderId"], description: "Retrieves a specific [TransferOrder](entity:TransferOrder) by ID.", execute: (api, input) => api.transferOrders.get(input), name: "Retrieve Square Transfer Order", replaySafety: "safe", requiredKeys: ["transferOrderId"], scopes: ["INVENTORY_READ"], }) /** Searches for transfer orders using filters. */ export const searchSquareTransferOrders = defineSquareOperation< Square.SearchTransferOrdersRequest, Square.SearchTransferOrdersResponse >({ allowedKeys: ["query", "cursor", "limit"], description: "Searches for transfer orders using filters.", execute: (api, input) => api.transferOrders.search(input), name: "Search Square Transfer Orders", replaySafety: "safe", requiredKeys: [], scopes: ["INVENTORY_READ"], }) /** * Changes a [DRAFT](entity:TransferOrderStatus) transfer order to * [STARTED](entity:TransferOrderStatus) status. */ export const startSquareTransferOrder = defineSquareOperation< Square.StartTransferOrderRequest, Square.StartTransferOrderResponse >({ allowedKeys: ["transferOrderId", "idempotencyKey", "version"], description: "Changes a [DRAFT](entity:TransferOrderStatus) transfer order to [STARTED](entity:TransferOrderStatus) status.", execute: (api, input) => api.transferOrders.start(input), name: "Start Square Transfer Order", replaySafety: "safe", requiredKeys: ["transferOrderId", "idempotencyKey"], scopes: ["INVENTORY_READ", "INVENTORY_WRITE"], }) /** Updates an existing transfer order. */ export const updateSquareTransferOrder = defineSquareOperation< Square.UpdateTransferOrderRequest, Square.UpdateTransferOrderResponse >({ allowedKeys: [ "transferOrderId", "idempotencyKey", "transferOrder", "version", ], description: "Updates an existing transfer order.", execute: (api, input) => api.transferOrders.update(input), name: "Update Square Transfer Order", replaySafety: "safe", requiredKeys: ["transferOrderId", "idempotencyKey", "transferOrder"], scopes: ["INVENTORY_READ", "INVENTORY_WRITE"], })