* init * create new interface * prep integration tests * update denpencies * inventory service partial tests * finalize integration tests * add events * align events * adjust inventory level reservation levels * add test validating reserved quantity after reseration item update * fix nits * rename to inventory-next * update yarn.lock * remove changelog * remove fixtures * remove unused files * ready for review * Update packages/inventory-next/package.json Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com> * pr feedback * add tests and docs for partition-array util * remote decorators from private method * fix unit tests * add migrations * add foreign keys * fix build --------- Co-authored-by: Oli Juhl <59018053+olivermrbl@users.noreply.github.com>
61 lines
1.5 KiB
TypeScript
61 lines
1.5 KiB
TypeScript
import { InventoryItem, InventoryLevel, ReservationItem } from "./models"
|
|
|
|
import { MapToConfig } from "@medusajs/utils"
|
|
import { ModuleJoinerConfig } from "@medusajs/types"
|
|
import { Modules } from "@medusajs/modules-sdk"
|
|
import moduleSchema from "./schema"
|
|
|
|
export const LinkableKeys = {
|
|
inventory_item_id: InventoryItem.name,
|
|
inventory_level_id: InventoryLevel.name,
|
|
reservation_item_id: ReservationItem.name,
|
|
}
|
|
|
|
const entityLinkableKeysMap: MapToConfig = {}
|
|
Object.entries(LinkableKeys).forEach(([key, value]) => {
|
|
entityLinkableKeysMap[value] ??= []
|
|
entityLinkableKeysMap[value].push({
|
|
mapTo: key,
|
|
valueFrom: key.split("_").pop()!,
|
|
})
|
|
})
|
|
export const entityNameToLinkableKeysMap: MapToConfig = entityLinkableKeysMap
|
|
|
|
export const joinerConfig: ModuleJoinerConfig = {
|
|
serviceName: Modules.INVENTORY,
|
|
primaryKeys: ["id"],
|
|
linkableKeys: {
|
|
inventory_item_id: InventoryItem.name,
|
|
inventory_level_id: InventoryLevel.name,
|
|
reservation_item_id: ReservationItem.name,
|
|
},
|
|
schema: moduleSchema,
|
|
alias: [
|
|
{
|
|
name: ["inventory_items", "inventory"],
|
|
args: {
|
|
entity: "InventoryItem",
|
|
},
|
|
},
|
|
{
|
|
name: ["inventory_level", "inventory_levels"],
|
|
args: {
|
|
entity: "InventoryLevel",
|
|
methodSuffix: "InventoryLevels",
|
|
},
|
|
},
|
|
{
|
|
name: [
|
|
"reservation",
|
|
"reservations",
|
|
"reservation_item",
|
|
"reservation_items",
|
|
],
|
|
args: {
|
|
entity: "ReservationItem",
|
|
methodSuffix: "ReservationItems",
|
|
},
|
|
},
|
|
],
|
|
}
|