@medusajs/types
Version:
Medusa Types definition
1,034 lines • 47.7 kB
TypeScript
import { RestoreReturn, SoftDeleteReturn } from "../dal";
import { FindConfig } from "../common";
import { IModuleService } from "../modules-sdk";
import { Context } from "../shared-context";
import { BigNumberInput, IBigNumber } from "../totals";
import { FilterableInventoryItemProps, FilterableInventoryLevelProps, FilterableReservationItemProps, InventoryItemDTO, InventoryLevelDTO, ReservationItemDTO } from "./common";
import { CreateInventoryItemInput, CreateInventoryLevelInput, CreateReservationItemInput, UpdateInventoryItemInput, UpdateInventoryLevelInput, UpdateReservationItemInput } from "./mutations";
/**
* The main service interface for the Inventory Module.
*/
export interface IInventoryService extends IModuleService {
/**
* This method retrieves a paginated list of inventory items based on optional filters and configuration.
*
* @param {FilterableInventoryItemProps} selector - The filters to apply on the retrieved inventory items.
* @param {FindConfig<InventoryItemDTO>} config - The configurations determining how the inventory item is retrieved. Its properties, such as `select` or `relations`, accept the
* attributes or relations associated with a inventory item.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<InventoryItemDTO[]>} The list of inventory items.
*
* @example
* To retrieve a list of inventory items using their IDs:
*
* ```ts
* const inventoryItems = await inventoryModuleService.listInventoryItems({
* id: ["iitem_123", "iitem_321"],
* })
* ```
*
* To specify relations that should be retrieved within the inventory items:
*
* :::note
*
* You can only retrieve data models defined in the same module. To retrieve linked data models
* from other modules, use [Query](https://docs.medusajs.com/learn/fundamentals/module-links/query) instead.
*
* :::
*
* ```ts
* const inventoryItems = await inventoryModuleService.listInventoryItems(
* {
* id: ["iitem_123", "iitem_321"],
* },
* {
* relations: ["location_levels"],
* }
* )
* ```
*
* By default, only the first `10` records are retrieved. You can control pagination by specifying the `skip` and `take` properties of the `config` parameter:
*
* ```ts
* const inventoryItems = await inventoryModuleService.listInventoryItems(
* {
* id: ["iitem_123", "iitem_321"],
* },
* {
* relations: ["location_levels"],
* take: 20,
* skip: 2,
* }
* )
* ```
*/
listInventoryItems(selector: FilterableInventoryItemProps, config?: FindConfig<InventoryItemDTO>, context?: Context): Promise<InventoryItemDTO[]>;
/**
* This method retrieves a paginated list of inventory items along with the total count of available inventory items satisfying the provided filters.
*
* @param {FilterableInventoryItemProps} selector - The filters to apply on the retrieved inventory items.
* @param {FindConfig<InventoryItemDTO>} config - The configurations determining how the inventory item is retrieved. Its properties, such as `select` or `relations`, accept the
* attributes or relations associated with a inventory item.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<[InventoryItemDTO[], number]>} The list of inventory items along with their total count.
*
* @example
* To retrieve a list of inventory items using their IDs:
*
* ```ts
* const [inventoryItems, count] =
* await inventoryModuleService.listAndCountInventoryItems({
* id: ["iitem_123", "iitem_321"],
* })
* ```
*
* To specify relations that should be retrieved within the inventory items:
*
* :::note
*
* You can only retrieve data models defined in the same module. To retrieve linked data models
* from other modules, use [Query](https://docs.medusajs.com/learn/fundamentals/module-links/query) instead.
*
* :::
*
* ```ts
* const [inventoryItems, count] =
* await inventoryModuleService.listAndCountInventoryItems(
* {
* id: ["iitem_123", "iitem_321"],
* },
* {
* relations: ["location_levels"],
* }
* )
* ```
*
* By default, only the first `10` records are retrieved. You can control pagination by specifying the `skip` and `take` properties of the `config` parameter:
*
* ```ts
* const [inventoryItems, count] =
* await inventoryModuleService.listAndCountInventoryItems(
* {
* id: ["iitem_123", "iitem_321"],
* },
* {
* relations: ["location_levels"],
* take: 20,
* skip: 2,
* }
* )
* ```
*/
listAndCountInventoryItems(selector: FilterableInventoryItemProps, config?: FindConfig<InventoryItemDTO>, context?: Context): Promise<[InventoryItemDTO[], number]>;
/**
* This method retrieves a paginated list of reservation items based on optional filters and configuration.
*
* @param {FilterableReservationItemProps} selector - The filters to apply on the retrieved reservation items.
* @param {FindConfig<ReservationItemDTO>} config - The configurations determining how the reservation item is retrieved. Its properties, such as `select` or `relations`, accept the
* attributes or relations associated with a reservation item.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<ReservationItemDTO[]>} The list of reservation items.
*
* @example
* To retrieve a list of reservation items using their IDs:
*
* ```ts
* const reservationItems =
* await inventoryModuleService.listReservationItems({
* id: ["resitem_123", "resitem_321"],
* })
* ```
*
* To specify relations that should be retrieved within the reservation items:
*
* :::note
*
* You can only retrieve data models defined in the same module. To retrieve linked data models
* from other modules, use [Query](https://docs.medusajs.com/learn/fundamentals/module-links/query) instead.
*
* :::
*
* ```ts
* const reservationItems =
* await inventoryModuleService.listReservationItems(
* {
* id: ["resitem_123", "resitem_321"],
* },
* {
* relations: ["inventory_item"],
* }
* )
* ```
*
* By default, only the first `10` records are retrieved. You can control pagination by specifying the `skip` and `take` properties of the `config` parameter:
*
* ```ts
* const reservationItems =
* await inventoryModuleService.listReservationItems(
* {
* id: ["resitem_123", "resitem_321"],
* },
* {
* relations: ["inventory_item"],
* take: 20,
* skip: 2,
* }
* )
* ```
*/
listReservationItems(selector: FilterableReservationItemProps, config?: FindConfig<ReservationItemDTO>, context?: Context): Promise<ReservationItemDTO[]>;
/**
* This method retrieves a paginated list of reservation items along with the total count of available reservation items satisfying the provided filters.
*
* @param {FilterableReservationItemProps} selector - The filters to apply on the retrieved reservation items.
* @param {FindConfig<ReservationItemDTO>} config - The configurations determining how the reservation item is retrieved. Its properties, such as `select` or `relations`, accept the
* attributes or relations associated with a reservation item.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<[ReservationItemDTO[], number]>} The list of reservation items along with their total count.
*
* @example
* To retrieve a list of reservation items using their IDs:
*
* ```ts
* const [reservationItems, count] =
* await inventoryModuleService.listAndCountReservationItems({
* id: ["resitem_123", "resitem_321"],
* })
* ```
*
* To specify relations that should be retrieved within the reservation items:
*
* :::note
*
* You can only retrieve data models defined in the same module. To retrieve linked data models
* from other modules, use [Query](https://docs.medusajs.com/learn/fundamentals/module-links/query) instead.
*
* :::
*
* ```ts
* const [reservationItems, count] =
* await inventoryModuleService.listAndCountReservationItems(
* {
* id: ["resitem_123", "resitem_321"],
* },
* {
* relations: ["inventory_item"],
* }
* )
* ```
*
* By default, only the first `10` records are retrieved. You can control pagination by specifying the `skip` and `take` properties of the `config` parameter:
*
* ```ts
* const [reservationItems, count] =
* await inventoryModuleService.listAndCountReservationItems(
* {
* id: ["resitem_123", "resitem_321"],
* },
* {
* relations: ["inventory_item"],
* take: 20,
* skip: 2,
* }
* )
* ```
*/
listAndCountReservationItems(selector: FilterableReservationItemProps, config?: FindConfig<ReservationItemDTO>, context?: Context): Promise<[ReservationItemDTO[], number]>;
/**
* This method retrieves a paginated list of inventory levels based on optional filters and configuration.
*
* @param {FilterableInventoryLevelProps} selector - The filters to apply on the retrieved inventory levels.
* @param {FindConfig<InventoryLevelDTO>} config - The configurations determining how the inventory level is retrieved. Its properties, such as `select` or `relations`, accept the
* attributes or relations associated with a inventory level.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<InventoryLevelDTO[]>} The list of inventory levels.
*
* @example
* To retrieve a list of inventory levels using the IDs of their associated inventory items:
*
* ```ts
* const inventoryLevels =
* await inventoryModuleService.listInventoryLevels({
* inventory_item_id: ["iitem_123", "iitem_321"],
* })
* ```
*
* To specify relations that should be retrieved within the inventory levels:
*
* :::note
*
* You can only retrieve data models defined in the same module. To retrieve linked data models
* from other modules, use [Query](https://docs.medusajs.com/learn/fundamentals/module-links/query) instead.
*
* :::
*
* ```ts
* const inventoryLevels =
* await inventoryModuleService.listInventoryLevels(
* {
* inventory_item_id: ["iitem_123", "iitem_321"],
* },
* {
* relations: ["inventory_item"],
* }
* )
* ```
*
* By default, only the first `10` records are retrieved. You can control pagination by specifying the `skip` and `take` properties of the `config` parameter:
*
* ```ts
* const inventoryLevels =
* await inventoryModuleService.listInventoryLevels(
* {
* inventory_item_id: ["iitem_123", "iitem_321"],
* },
* {
* relations: ["inventory_item"],
* take: 20,
* skip: 2,
* }
* )
* ```
*/
listInventoryLevels(selector: FilterableInventoryLevelProps, config?: FindConfig<InventoryLevelDTO>, context?: Context): Promise<InventoryLevelDTO[]>;
/**
* This method retrieves a paginated list of inventory levels along with the total count of available inventory levels satisfying the provided filters.
*
* @param {FilterableInventoryLevelProps} selector - The filters to apply on the retrieved inventory levels.
* @param {FindConfig<InventoryLevelDTO>} config - The configurations determining how the inventory level is retrieved. Its properties, such as `select` or `relations`, accept the
* attributes or relations associated with a inventory level.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<[InventoryLevelDTO[], number]>} The list of inventory levels along with their total count.
*
* @example
* To retrieve a list of inventory levels using the IDs of their associated inventory items:
*
* ```ts
* const [inventoryLevels, count] =
* await inventoryModuleService.listAndCountInventoryLevels(
* {
* inventory_item_id: ["iitem_123", "iitem_321"],
* },
* {
* relations: ["inventory_item"],
* take: 20,
* skip: 2,
* }
* )
* ```
*
* To specify relations that should be retrieved within the inventory levels:
*
* :::note
*
* You can only retrieve data models defined in the same module. To retrieve linked data models
* from other modules, use [Query](https://docs.medusajs.com/learn/fundamentals/module-links/query) instead.
*
* :::
*
* ```ts
* const [inventoryLevels, count] =
* await inventoryModuleService.listAndCountInventoryLevels(
* {
* inventory_item_id: ["iitem_123", "iitem_321"],
* },
* {
* relations: ["inventory_item"],
* }
* )
* ```
*
* By default, only the first `10` records are retrieved. You can control pagination by specifying the `skip` and `take` properties of the `config` parameter:
*
* ```ts
* const [inventoryLevels, count] =
* await inventoryModuleService.listAndCountInventoryLevels({
* inventory_item_id: ["iitem_123", "iitem_321"],
* })
* ```
*/
listAndCountInventoryLevels(selector: FilterableInventoryLevelProps, config?: FindConfig<InventoryLevelDTO>, context?: Context): Promise<[InventoryLevelDTO[], number]>;
/**
* This method retrieves an inventory item by its ID.
*
* @param {string} inventoryItemId - The inventory item's ID.
* @param {FindConfig<InventoryItemDTO>} config - The configurations determining how the inventory item is retrieved. Its properties, such as `select` or `relations`, accept the
* attributes or relations associated with a inventory item.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<InventoryItemDTO>} The retrieved inventory item.
*
* @example
* A simple example that retrieves a inventory item by its ID:
*
* ```ts
* const inventoryItem =
* await inventoryModuleService.retrieveInventoryItem("iitem_123")
* ```
*
* To specify relations that should be retrieved:
*
* :::note
*
* You can only retrieve data models defined in the same module. To retrieve linked data models
* from other modules, use [Query](https://docs.medusajs.com/learn/fundamentals/module-links/query) instead.
*
* :::
*
* ```ts
* const inventoryItem = await inventoryModuleService.retrieveInventoryItem(
* "iitem_123",
* {
* relations: ["location_levels"],
* }
* )
* ```
*/
retrieveInventoryItem(inventoryItemId: string, config?: FindConfig<InventoryItemDTO>, context?: Context): Promise<InventoryItemDTO>;
/**
* This method retrieves an inventory level based on its associated inventory item and location.
*
* @param {string} inventoryItemId - The inventory item's ID.
* @param {string} locationId - The location's ID.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<InventoryLevelDTO>} The retrieved inventory level.
*
* @example
* const inventoryLevel =
* await inventoryModuleService.retrieveInventoryLevelByItemAndLocation(
* "iitem_123",
* "loc_123"
* )
*/
retrieveInventoryLevelByItemAndLocation(inventoryItemId: string, locationId: string, context?: Context): Promise<InventoryLevelDTO>;
/**
* This method retrieves an inventory level by its ID.
*
* @param {string} inventoryLevelId - The inventory level's ID.
* @param {FindConfig<InventoryLevelDTO>} config - The configurations determining how the inventory level is retrieved. Its properties, such as `select` or `relations`, accept the
* attributes or relations associated with a inventory level.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<InventoryLevelDTO>} The retrieved inventory level.
*
* @example
* A simple example that retrieves a inventory level by its ID:
*
* ```ts
* const inventoryLevel =
* await inventoryModuleService.retrieveInventoryLevel(
* "iitem_123"
* )
* ```
*
* To specify relations that should be retrieved:
*
* :::note
*
* You can only retrieve data models defined in the same module. To retrieve linked data models
* from other modules, use [Query](https://docs.medusajs.com/learn/fundamentals/module-links/query) instead.
*
* :::
*
* ```ts
* const inventoryLevel =
* await inventoryModuleService.retrieveInventoryLevel(
* "iitem_123",
* {
* relations: ["inventory_item"],
* }
* )
* ```
*/
retrieveInventoryLevel(inventoryLevelId: string, config?: FindConfig<InventoryLevelDTO>, context?: Context): Promise<InventoryLevelDTO>;
/**
* This method retrieves a reservation item by its ID.
*
* @param {string} reservationId - The reservation's ID.
* @param {FindConfig<ReservationItemDTO>} config - The configurations determining how the reservation item is retrieved. Its properties, such as `select` or `relations`, accept the
* attributes or relations associated with a reservation item.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<ReservationItemDTO>} The retrieved reservation item.
*
* @example
* A simple example that retrieves a reservation item by its ID:
*
* ```ts
* const reservationItem =
* await inventoryModuleService.retrieveReservationItem(
* "resitem"
* )
* ```
*
* To specify relations that should be retrieved:
*
* :::note
*
* You can only retrieve data models defined in the same module. To retrieve linked data models
* from other modules, use [Query](https://docs.medusajs.com/learn/fundamentals/module-links/query) instead.
*
* :::
*
* ```ts
* const reservationItem =
* await inventoryModuleService.retrieveReservationItem(
* "resitem",
* {
* relations: ["inventory_item"],
* }
* )
* ```
*/
retrieveReservationItem(reservationId: string, config?: FindConfig<ReservationItemDTO>, context?: Context): Promise<ReservationItemDTO>;
/**
* This method creates reservation items.
*
* @param {CreateReservationItemInput[]} input - The details of the reservation items to be created.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<ReservationItemDTO[]>} The created reservation items.
*
* @example
* const reservationItems =
* await inventoryModuleService.createReservationItems([
* {
* inventory_item_id: "iitem_123",
* location_id: "loc_123",
* quantity: 10,
* },
* ])
*/
createReservationItems(input: CreateReservationItemInput[], context?: Context): Promise<ReservationItemDTO[]>;
/**
* This method creates a reservation item.
*
* @param {CreateReservationItemInput} input - The details of the reservation item to be created.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<ReservationItemDTO>} The created reservation item.
*
* @example
* const reservationItem =
* await inventoryModuleService.createReservationItems({
* inventory_item_id: "iitem_123",
* location_id: "loc_123",
* quantity: 10,
* })
*/
createReservationItems(input: CreateReservationItemInput, context?: Context): Promise<ReservationItemDTO>;
/**
* This method creates inventory items.
*
* @param {CreateInventoryItemInput[]} input - The details of the inventory items to be created.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<InventoryItemDTO[]>} The created inventory items.
*
* @example
* const inventoryItems = await inventoryModuleService.createInventoryItems([
* {
* sku: "SHIRT",
* },
* ])
*/
createInventoryItems(input: CreateInventoryItemInput[], context?: Context): Promise<InventoryItemDTO[]>;
/**
* This method creates an inventory item.
*
* @param {CreateInventoryItemInput} input - The details of the inventory item to be created.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<InventoryItemDTO>} The created inventory item.
*
* @example
* const inventoryItem = await inventoryModuleService.createInventoryItems({
* sku: "SHIRT",
* })
*/
createInventoryItems(input: CreateInventoryItemInput, context?: Context): Promise<InventoryItemDTO>;
/**
* This method creates inventory levels.
*
* @param {CreateInventoryLevelInput[]} data - The details of the inventory levels to be created.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<InventoryLevelDTO[]>} The created inventory levels.
*
* @example
* const inventoryLevels =
* await inventoryModuleService.createInventoryLevels([
* {
* inventory_item_id: "iitem_123",
* location_id: "loc_123",
* stocked_quantity: 10,
* },
* {
* inventory_item_id: "iitem_321",
* location_id: "loc_321",
* stocked_quantity: 20,
* reserved_quantity: 10,
* },
* ])
*/
createInventoryLevels(data: CreateInventoryLevelInput[], context?: Context): Promise<InventoryLevelDTO[]>;
/**
* This method creates an inventory level.
*
* @param {CreateInventoryLevelInput} data - The details of the inventory level to be created.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<InventoryLevelDTO>} The created inventory level.
*
* @example
* const inventoryLevels =
* await inventoryModuleService.createInventoryLevels({
* inventory_item_id: "iitem_123",
* location_id: "loc_123",
* stocked_quantity: 10,
* })
*/
createInventoryLevels(data: CreateInventoryLevelInput, context?: Context): Promise<InventoryLevelDTO>;
/**
* This method updates existing inventory levels.
*
* @param {UpdateInventoryLevelInput[]} updates - The list of The attributes to update in an inventory level. The inventory level is identified by the IDs of its associated inventory item and location.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<InventoryLevelDTO[]>} The updated inventory levels.
*
* @example
* const inventoryLevels =
* await inventoryModuleService.updateInventoryLevels([
* {
* inventory_item_id: "iitem_123",
* location_id: "loc_123",
* id: "ilev_123",
* stocked_quantity: 20,
* },
* ])
*/
updateInventoryLevels(updates: UpdateInventoryLevelInput[], context?: Context): Promise<InventoryLevelDTO[]>;
/**
* This method updates an existing inventory level.
*
* @param {UpdateInventoryLevelInput} updates - The attributes to update in an inventory level. The inventory level is identified by the IDs of its associated inventory item and location.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<InventoryLevelDTO>} The updated inventory level.
*
* @example
* const inventoryLevel =
* await inventoryModuleService.updateInventoryLevels({
* inventory_item_id: "iitem_123",
* location_id: "loc_123",
* stocked_quantity: 20,
* })
*/
updateInventoryLevels(updates: UpdateInventoryLevelInput, context?: Context): Promise<InventoryLevelDTO>;
/**
* This method updates an existing inventory item.
*
* @param {UpdateInventoryItemInput} input - The attributes to update in the inventory item.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<InventoryItemDTO>} The updated inventory item.
*
* @example
* const inventoryItem = await inventoryModuleService.updateInventoryItems({
* id: "iitem_123",
* title: "Medusa Shirt Inventory",
* })
*/
updateInventoryItems(input: UpdateInventoryItemInput, context?: Context): Promise<InventoryItemDTO>;
/**
* This method updates existing inventory items.
*
* @param {UpdateInventoryItemInput[]} input - The attributes to update in the inventory items.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<InventoryItemDTO[]>} The updated inventory items.
*
* @example
* const inventoryItems = await inventoryModuleService.updateInventoryItems([
* {
* id: "iitem_123",
* title: "Medusa Shirt Inventory",
* },
* {
* id: "iitem_321",
* description: "The inventory of Medusa pants",
* },
* ])
*/
updateInventoryItems(input: UpdateInventoryItemInput[], context?: Context): Promise<InventoryItemDTO[]>;
/**
* This method updates an existing reservation item.
*
* @param {UpdateReservationItemInput} input - The attributes to update in a reservation item.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<ReservationItemDTO>} The updated reservation item.
*
* @example
* const reservationItem =
* await inventoryModuleService.updateReservationItems({
* id: "resitem_123",
* quantity: 10,
* })
*/
updateReservationItems(input: UpdateReservationItemInput, context?: Context): Promise<ReservationItemDTO>;
/**
* This method updates existing reservation items.
*
* @param {UpdateReservationItemInput[]} input - The attributes to update in the reservation items.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<ReservationItemDTO[]>} The updated reservation items.
*
* @example
* const reservationItems =
* await inventoryModuleService.updateReservationItems([
* {
* id: "resitem_123",
* quantity: 10,
* },
* ])
*/
updateReservationItems(input: UpdateReservationItemInput[], context?: Context): Promise<ReservationItemDTO[]>;
/**
* This method deletes a reservation item by its associated line item.
*
* @param {string | string[]} lineItemId - The line item's ID.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<void>} Resolves when the reservation item is deleted.
*
* @example
* await inventoryModuleService.deleteReservationItemByLocationId(
* "cali_123"
* )
*/
deleteReservationItemsByLineItem(lineItemId: string | string[], context?: Context): Promise<void>;
/**
* This method is used to restore the reservation items associated with a line item or multiple line items that were deleted.
*
* @param {string | string[]} lineItemId - The ID(s) of the line item(s).
* @param {SharedContext} context - A context used to share re9sources, such as transaction manager, between the application and the module.
* @returns {Promise<void>} Resolves when the reservation items are successfully deleted.
*
* @example
* import {
* initialize as initializeInventoryModule,
* } from "@medusajs/inventory"
*
* async function restoreReservationItemsByLineItem (
* lineItemIds: string[]
* ) {
* const inventoryModule = await initializeInventoryModule({})
*
* await inventoryModule.restoreReservationItemsByLineItem(
* lineItemIds
* )
* }
*/
restoreReservationItemsByLineItem(lineItemId: string | string[], context?: Context): Promise<void>;
/**
* This method deletes reservation items by their IDs.
*
* @param {string | string[]} reservationItemId - The reservation items' IDs.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<void>} Resolves when the reservation item is deleted.
*
* @example
* await inventoryModuleService.deleteReservationItems(
* "resitem_123"
* )
*/
deleteReservationItems(reservationItemId: string | string[], context?: Context): Promise<void>;
/**
* This method soft deletes reservations by their IDs.
*
* @param {string[]} reservationItemIds - The reservations' IDs.
* @param {SoftDeleteReturn<TReturnableLinkableKeys>} config - An object that is used to specify an entity's related entities that should be soft-deleted when the main entity is soft-deleted.
* @param {Context} sharedContext - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<void | Record<string, string[]>>} An object that includes the IDs of related records that were also soft deleted.
* If there are no related records, the promise resolves to `void`.
*
* @example
* await inventoryModuleService.softDeleteReservationItems([
* "ilev_123",
* ])
*/
softDeleteReservationItems<TReturnableLinkableKeys extends string = string>(reservationItemIds: string[], config?: SoftDeleteReturn<TReturnableLinkableKeys>, sharedContext?: Context): Promise<Record<string, string[]> | void>;
/**
* This method restores soft deleted reservations by their IDs.
*
* @param {string[]} reservationItemIds - The reservations' IDs.
* @param {RestoreReturn<TReturnableLinkableKeys>} config - Configurations determining which relations to restore along with each of the reservation. You can pass to its `returnLinkableKeys`
* property any of the reservation's relation attribute names, such as `{type relation name}`.
* @param {Context} sharedContext - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<void | Record<string, string[]>>} An object that includes the IDs of related records that were restored.
* If there are no related records restored, the promise resolves to `void`.
*
* @example
* await inventoryModuleService.restoreReservationItems([
* "ilev_123",
* ])
*/
restoreReservationItems<TReturnableLinkableKeys extends string = string>(reservationItemIds: string[], config?: RestoreReturn<TReturnableLinkableKeys>, sharedContext?: Context): Promise<Record<string, string[]> | void>;
/**
* This method deletes inventory items by their IDs.
*
* @param {string | string[]} inventoryItemId - The inventory item's ID.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<void>} Resolves when the inventory items are deleted.
*
* @example
* await inventoryModuleService.deleteInventoryItems("iitem_123")
*/
deleteInventoryItems(inventoryItemId: string | string[], context?: Context): Promise<void>;
/**
* This method soft deletes inventory items by their IDs.
*
* @param {string[]} inventoryItemIds - The inventory items' IDs.
* @param {SoftDeleteReturn<TReturnableLinkableKeys>} config - An object that is used to specify an entity's related entities that should be soft-deleted when the main entity is soft-deleted.
* @param {Context} sharedContext - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<void | Record<string, string[]>>} An object that includes the IDs of related records that were also soft deleted, such as the ID of the associated location levels.
* The object's keys are the ID attribute names of the inventory service next entity's relations, such as `location_level_id`, and its value is an array of strings, each being the ID of a record associated
* with the inventory item through this relation, such as the IDs of associated location levels.
*
* If there are no related records, the promise resolves to `void`.
*
* @example
* await inventoryModuleService.softDeleteInventoryItems(
* ["iitem_123", "iitem_321"],
* {
* returnLinkableKeys: ["location_level"],
* }
* )
*/
softDeleteInventoryItems<TReturnableLinkableKeys extends string = string>(inventoryItemIds: string[], config?: SoftDeleteReturn<TReturnableLinkableKeys>, sharedContext?: Context): Promise<Record<string, string[]> | void>;
/**
* This method restores soft deleted inventory items by their IDs.
*
* @param {string[]} inventoryItemIds - The inventory items' IDs.
* @param {RestoreReturn<TReturnableLinkableKeys>} config - Configurations determining which relations to restore along with each of the inventory items. You can pass to its `returnLinkableKeys`
* property any of the inventory item's relation attribute names, such as `location_levels`.
* @param {Context} sharedContext - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<void | Record<string, string[]>>} An object that includes the IDs of related records that were restored, such as the ID of associated location levels.
* The object's keys are the ID attribute names of the inventory item entity's relations, such as `location_level_id`,
* and its value is an array of strings, each being the ID of the record associated with the inventory item through this relation,
* such as the IDs of associated location levels.
*
* If there are no related records restored, the promise resolves to `void`.
*
* @example
* await inventoryModuleService.restoreInventoryItems(
* ["iitem_123", "iitem_321"],
* {
* returnLinkableKeys: ["location_level"],
* }
* )
*/
restoreInventoryItems<TReturnableLinkableKeys extends string = string>(inventoryItemIds: string[], config?: RestoreReturn<TReturnableLinkableKeys>, sharedContext?: Context): Promise<Record<string, string[]> | void>;
/**
* This method soft deletes inventory item's level by the associated location.
*
* @param {string | string[]} locationId - The locations' IDs.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<[object[], Record<string, unknown[]>]>} An array, where the first item is an array includes the soft-deleted inventory levels,
* and the second is an object that includes the IDs of related records that were soft-deleted.
*
* @example
* await inventoryModuleService.deleteInventoryItemLevelByLocationId(
* "loc_123"
* )
*/
deleteInventoryItemLevelByLocationId(locationId: string | string[], context?: Context): Promise<[object[], Record<string, unknown[]>]>;
/**
* This method deletes reservation items by their associated location.
*
* @param {string | string[]} locationId - The location's ID.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<void>} Resolves when then reservation items are deleted successfully.
*
* @example
* await inventoryModuleService.deleteReservationItemByLocationId(
* "loc_123"
* )
*/
deleteReservationItemByLocationId(locationId: string | string[], context?: Context): Promise<void>;
/**
* This method deletes an inventory level by its associated inventory item and location.
*
* @param {string} inventoryItemId - The inventory item's ID.
* @param {string} locationId - The location's ID.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<void>} Resolves when the inventory level is deleted successfully.
*
* @example
* await inventoryModuleService.deleteInventoryLevel(
* "iitem_123",
* "loc_123"
* )
*/
deleteInventoryLevel(inventoryItemId: string, locationId: string, context?: Context): Promise<void>;
/**
* This method deletes inventory levels by their IDs.
*
* @param {string | string[]} inventoryLevelIds - The inventory levels' IDs.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<void>} Resolves when the inventory levels are deleted.
*
* @example
* await inventoryModuleService.deleteInventoryLevels("ilev_123")
*/
deleteInventoryLevels(inventoryLevelIds: string | string[], context?: Context): Promise<void>;
/**
* This method soft deletes inventory levels by their IDs.
*
* @param {string[]} inventoryLevelIds - The inventory levels' IDs.
* @param {SoftDeleteReturn<TReturnableLinkableKeys>} config - An object that is used to specify an entity's related entities that should be soft-deleted when the main entity is soft-deleted.
* @param {Context} sharedContext - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<void | Record<string, string[]>>} An object that includes the IDs of related records that were also soft deleted.
* If there are no related records, the promise resolves to `void`.
*
* @example
* await inventoryModuleService.softDeleteInventoryLevels([
* "ilev_123",
* ])
*/
softDeleteInventoryLevels<TReturnableLinkableKeys extends string = string>(inventoryLevelIds: string[], config?: SoftDeleteReturn<TReturnableLinkableKeys>, sharedContext?: Context): Promise<Record<string, string[]> | void>;
/**
* This method restores soft deleted inventory levels by their IDs.
*
* @param {string[]} inventoryLevelIds - The inventory levels' IDs.
* @param {RestoreReturn<TReturnableLinkableKeys>} config - Configurations determining which relations to restore along with each of the inventory level. You can pass to its `returnLinkableKeys`
* property any of the inventory level's relation attribute names, such as `{type relation name}`.
* @param {Context} sharedContext - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<void | Record<string, string[]>>} An object that includes the IDs of related records that were restored.
* If there are no related records restored, the promise resolves to `void`.
*
* @example
* await inventoryModuleService.restoreInventoryLevels([
* "ilev_123",
* ])
*/
restoreInventoryLevels<TReturnableLinkableKeys extends string = string>(inventoryLevelIds: string[], config?: RestoreReturn<TReturnableLinkableKeys>, sharedContext?: Context): Promise<Record<string, string[]> | void>;
/**
* This method adjusts the inventory quantity of an item in a location.
*
* @param data - The adjustments to make.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<InventoryLevelDTO>} The updated inventory level.
*
* @example
* const inventoryLevel1 =
* await inventoryModuleService.adjustInventory([
* // add to the inventory quantity
* {
* inventoryItemId: "iitem_123",
* locationId: "loc_123",
* adjustment: 5
* },
* // subtract from the inventory quantity
* {
* inventoryItemId: "iitem_321",
* locationId: "loc_321",
* adjustment: -5
* }
* ])
*/
adjustInventory(data: {
/**
* The inventory item's ID.
*/
inventoryItemId: string;
/**
* The location's ID.
*/
locationId: string;
/**
* The adjustment to make to the quantity.
*/
adjustment: BigNumberInput;
}[], context?: Context): Promise<InventoryLevelDTO[]>;
/**
*
* @param {string} inventoryItemId - The inventory item's ID.
* @param {string} locationId - The location's ID.
* @param {number} adjustment - the adjustment to make to the quantity.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<InventoryLevelDTO>} The updated inventory level.
*
* @example
* // add to the inventory quantity
* const inventoryLevel1 =
* await inventoryModuleService.adjustInventory(
* "iitem_123",
* "loc_123",
* 5
* )
*
* // subtract from the inventory quantity
* const inventoryLevel2 =
* await inventoryModuleService.adjustInventory(
* "iitem_123",
* "loc_123",
* -5
* )
*/
adjustInventory(inventoryItemId: string, locationId: string, adjustment: BigNumberInput, context?: Context): Promise<InventoryLevelDTO>;
/**
* This method confirms that a quantity is available of an inventory item in the specified locations.
*
* @param {string} inventoryItemId - The inventory item's ID.
* @param {string[]} locationIds - The locations' IDs.
* @param {number} quantity - The quantity to confirm its availability.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<boolean>} Whether the quantity is available.
*
* @example
* const isAvailable =
* await inventoryModuleService.confirmInventory(
* "iitem_123",
* ["loc_123", "loc_321"],
* 10
* )
*/
confirmInventory(inventoryItemId: string, locationIds: string[], quantity: BigNumberInput, context?: Context): Promise<boolean>;
/**
* This method retrieves the available quantity of an inventory item in the specified locations.
*
* @param {string} inventoryItemId - The inventory item's ID.
* @param {string[]} locationIds - The locations' IDs.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<BigNumber>} The available quantity of the item.
*
* @example
* const availableQuantity =
* await inventoryModuleService.retrieveAvailableQuantity(
* "iitem_123",
* ["loc_123", "loc_321"]
* )
*/
retrieveAvailableQuantity(inventoryItemId: string, locationIds: string[], context?: Context): Promise<IBigNumber>;
/**
* This method retrieves the stocked quantity of an inventory item in the specified location.
*
* @param {string} inventoryItemId - The inventory item's ID.
* @param {string[]} locationIds - The locations' IDs.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<BigNumber>} The stocked quantity of the item.
*
* @example
* const stockedQuantity =
* await inventoryModuleService.retrieveStockedQuantity(
* "iitem_123",
* ["loc_123", "loc_321"]
* )
*/
retrieveStockedQuantity(inventoryItemId: string, locationIds: string[], context?: Context): Promise<IBigNumber>;
/**
* This method retrieves the reserved quantity of an inventory item in the specified location.
*
* @param {string} inventoryItemId - The inventory item's ID.
* @param {string[]} locationIds - The locations' IDs.
* @param {Context} context - A context used to share resources, such as transaction manager, between the application and the module.
* @returns {Promise<BigNumber>} The reserved quantity of the item.
*
* @example
* const reservedQuantity =
* await inventoryModuleService.retrieveReservedQuantity(
* "iitem_123",
* ["loc_123", "loc_321"]
* )
*/
retrieveReservedQuantity(inventoryItemId: string, locationIds: string[], context?: Context): Promise<IBigNumber>;
}
//# sourceMappingURL=service.d.ts.map