medusa-plugin-tracing 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.medusa/server/medusa-config.d.ts +1 -0
- package/.medusa/server/medusa-config.js +23 -0
- package/.medusa/server/src/admin/index.js +6576 -0
- package/.medusa/server/src/admin/index.mjs +6574 -0
- package/.medusa/server/src/api/admin/invalidation-reasons/[id]/route.d.ts +5 -0
- package/.medusa/server/src/api/admin/invalidation-reasons/[id]/route.js +34 -0
- package/.medusa/server/src/api/admin/invalidation-reasons/route.d.ts +5 -0
- package/.medusa/server/src/api/admin/invalidation-reasons/route.js +37 -0
- package/.medusa/server/src/api/admin/serial-numbers/[id]/route.d.ts +5 -0
- package/.medusa/server/src/api/admin/serial-numbers/[id]/route.js +34 -0
- package/.medusa/server/src/api/admin/serial-numbers/route.d.ts +5 -0
- package/.medusa/server/src/api/admin/serial-numbers/route.js +40 -0
- package/.medusa/server/src/api/admin/stock-lots/[id]/route.d.ts +5 -0
- package/.medusa/server/src/api/admin/stock-lots/[id]/route.js +39 -0
- package/.medusa/server/src/api/admin/stock-lots/[id]/serial-numbers/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/stock-lots/[id]/serial-numbers/route.js +21 -0
- package/.medusa/server/src/api/admin/stock-lots/disable/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/stock-lots/disable/route.js +16 -0
- package/.medusa/server/src/api/admin/stock-lots/enable/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/stock-lots/enable/route.js +16 -0
- package/.medusa/server/src/api/admin/stock-lots/route.d.ts +5 -0
- package/.medusa/server/src/api/admin/stock-lots/route.js +43 -0
- package/.medusa/server/src/api/middlewares.d.ts +2 -0
- package/.medusa/server/src/api/middlewares.js +149 -0
- package/.medusa/server/src/api/validators.d.ts +316 -0
- package/.medusa/server/src/api/validators.js +128 -0
- package/.medusa/server/src/links/inventory-item-stock-lot.d.ts +2 -0
- package/.medusa/server/src/links/inventory-item-stock-lot.js +18 -0
- package/.medusa/server/src/links/order-serial-number.d.ts +2 -0
- package/.medusa/server/src/links/order-serial-number.js +18 -0
- package/.medusa/server/src/links/serial-number-order.d.ts +2 -0
- package/.medusa/server/src/links/serial-number-order.js +15 -0
- package/.medusa/server/src/links/stock-location-stock-lot.d.ts +2 -0
- package/.medusa/server/src/links/stock-location-stock-lot.js +18 -0
- package/.medusa/server/src/links/stock-lot-inventory-item.d.ts +2 -0
- package/.medusa/server/src/links/stock-lot-inventory-item.js +15 -0
- package/.medusa/server/src/links/stock-lot-stock-location.d.ts +2 -0
- package/.medusa/server/src/links/stock-lot-stock-location.js +15 -0
- package/.medusa/server/src/modules/tracing/index.d.ts +50 -0
- package/.medusa/server/src/modules/tracing/index.js +25 -0
- package/.medusa/server/src/modules/tracing/migrations/Migration20260409171919.d.ts +5 -0
- package/.medusa/server/src/modules/tracing/migrations/Migration20260409171919.js +29 -0
- package/.medusa/server/src/modules/tracing/models/invalidation-reason.d.ts +25 -0
- package/.medusa/server/src/modules/tracing/models/invalidation-reason.js +14 -0
- package/.medusa/server/src/modules/tracing/models/serial-number.d.ts +30 -0
- package/.medusa/server/src/modules/tracing/models/serial-number.js +23 -0
- package/.medusa/server/src/modules/tracing/models/stock-lot-activity.d.ts +1 -0
- package/.medusa/server/src/modules/tracing/models/stock-lot-activity.js +3 -0
- package/.medusa/server/src/modules/tracing/models/stock-lot.d.ts +30 -0
- package/.medusa/server/src/modules/tracing/models/stock-lot.js +20 -0
- package/.medusa/server/src/modules/tracing/service.d.ts +109 -0
- package/.medusa/server/src/modules/tracing/service.js +52 -0
- package/.medusa/server/src/subscribers/fulfillment-created.d.ts +8 -0
- package/.medusa/server/src/subscribers/fulfillment-created.js +52 -0
- package/.medusa/server/src/workflows/tracing/adjust-stock-order.d.ts +7 -0
- package/.medusa/server/src/workflows/tracing/adjust-stock-order.js +47 -0
- package/.medusa/server/src/workflows/tracing/create-stock-lot.d.ts +45 -0
- package/.medusa/server/src/workflows/tracing/create-stock-lot.js +34 -0
- package/.medusa/server/src/workflows/tracing/delete-stock-lot.d.ts +38 -0
- package/.medusa/server/src/workflows/tracing/delete-stock-lot.js +36 -0
- package/.medusa/server/src/workflows/tracing/steps/assign-from-stock-lot.d.ts +1 -0
- package/.medusa/server/src/workflows/tracing/steps/assign-from-stock-lot.js +48 -0
- package/.medusa/server/src/workflows/tracing/steps/assign-serial-number.d.ts +1 -0
- package/.medusa/server/src/workflows/tracing/steps/assign-serial-number.js +3 -0
- package/.medusa/server/src/workflows/tracing/steps/invalidate-serial-number.d.ts +1 -0
- package/.medusa/server/src/workflows/tracing/steps/invalidate-serial-number.js +3 -0
- package/.medusa/server/src/workflows/tracing/steps/return-to-stock-lot.d.ts +1 -0
- package/.medusa/server/src/workflows/tracing/steps/return-to-stock-lot.js +3 -0
- package/.medusa/server/src/workflows/tracing/update-stock-lot.d.ts +46 -0
- package/.medusa/server/src/workflows/tracing/update-stock-lot.js +42 -0
- package/LICENSE +21 -0
- package/README.md +52 -0
- package/package.json +89 -0
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.TRACING_MODULE = void 0;
|
|
18
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
19
|
+
const service_1 = require("./service");
|
|
20
|
+
exports.TRACING_MODULE = 'tracing';
|
|
21
|
+
exports.default = (0, utils_1.Module)(exports.TRACING_MODULE, {
|
|
22
|
+
service: service_1.TracingService
|
|
23
|
+
});
|
|
24
|
+
__exportStar(require("./service"), exports);
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy90cmFjaW5nL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscURBQWtEO0FBQ2xELHVDQUEwQztBQUU3QixRQUFBLGNBQWMsR0FBRyxTQUFTLENBQUE7QUFFdkMsa0JBQWUsSUFBQSxjQUFNLEVBQUMsc0JBQWMsRUFBRTtJQUNyQyxPQUFPLEVBQUUsd0JBQWM7Q0FDdkIsQ0FBQyxDQUFBO0FBRUYsNENBQXlCIn0=
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20260409171919 = void 0;
|
|
4
|
+
const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
|
|
5
|
+
class Migration20260409171919 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`create table if not exists "invalidation_reason" ("id" text not null, "value" text not null, "metadata" jsonb null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "invalidation_reason_pkey" primary key ("id"));`);
|
|
8
|
+
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_invalidation_reason_deleted_at" ON "invalidation_reason" ("deleted_at") WHERE deleted_at IS NULL;`);
|
|
9
|
+
this.addSql(`create table if not exists "stock_lot" ("id" text not null, "inventory_item_id" text not null, "stock_location_id" text not null, "lot_number" text not null, "description" text null, "enabled" boolean not null default true, "initial_quantity" integer not null, "stocked_quantity" integer not null, "metadata" jsonb null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "stock_lot_pkey" primary key ("id"));`);
|
|
10
|
+
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_stock_lot_deleted_at" ON "stock_lot" ("deleted_at") WHERE deleted_at IS NULL;`);
|
|
11
|
+
this.addSql(`create table if not exists "serial_number" ("id" text not null, "order_id" text not null, "value" text not null, "invalidated" boolean not null default false, "invalidation_reason_id" text null, "stock_lot_id" text not null, "metadata" jsonb null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "serial_number_pkey" primary key ("id"));`);
|
|
12
|
+
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_serial_number_invalidation_reason_id" ON "serial_number" ("invalidation_reason_id") WHERE deleted_at IS NULL;`);
|
|
13
|
+
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_serial_number_stock_lot_id" ON "serial_number" ("stock_lot_id") WHERE deleted_at IS NULL;`);
|
|
14
|
+
this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_serial_number_deleted_at" ON "serial_number" ("deleted_at") WHERE deleted_at IS NULL;`);
|
|
15
|
+
this.addSql(`alter table if exists "serial_number" drop constraint if exists "serial_number_invalidation_reason_id_foreign";`);
|
|
16
|
+
this.addSql(`alter table if exists "serial_number" add constraint "serial_number_invalidation_reason_id_foreign" foreign key ("invalidation_reason_id") references "invalidation_reason" ("id") on update cascade on delete set null;`);
|
|
17
|
+
this.addSql(`alter table if exists "serial_number" drop constraint if exists "serial_number_stock_lot_id_foreign";`);
|
|
18
|
+
this.addSql(`alter table if exists "serial_number" add constraint "serial_number_stock_lot_id_foreign" foreign key ("stock_lot_id") references "stock_lot" ("id") on update cascade;`);
|
|
19
|
+
}
|
|
20
|
+
async down() {
|
|
21
|
+
this.addSql(`alter table if exists "serial_number" drop constraint if exists "serial_number_invalidation_reason_id_foreign";`);
|
|
22
|
+
this.addSql(`alter table if exists "serial_number" drop constraint if exists "serial_number_stock_lot_id_foreign";`);
|
|
23
|
+
this.addSql(`drop table if exists "invalidation_reason" cascade;`);
|
|
24
|
+
this.addSql(`drop table if exists "stock_lot" cascade;`);
|
|
25
|
+
this.addSql(`drop table if exists "serial_number" cascade;`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.Migration20260409171919 = Migration20260409171919;
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjA0MDkxNzE5MTkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy90cmFjaW5nL21pZ3JhdGlvbnMvTWlncmF0aW9uMjAyNjA0MDkxNzE5MTkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBQXFFO0FBRXJFLE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFFM0MsS0FBSyxDQUFDLEVBQUU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLGlUQUFpVCxDQUFDLENBQUM7UUFDL1QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtSUFBbUksQ0FBQyxDQUFDO1FBRWpKLElBQUksQ0FBQyxNQUFNLENBQUMsb2ZBQW9mLENBQUMsQ0FBQztRQUNsZ0IsSUFBSSxDQUFDLE1BQU0sQ0FBQywrR0FBK0csQ0FBQyxDQUFDO1FBRTdILElBQUksQ0FBQyxNQUFNLENBQUMsK2FBQSthLENBQUMsQ0FBQztRQUM3YixJQUFJLENBQUMsTUFBTSxDQUFDLCtJQUErSSxDQUFDLENBQUM7UUFDN0osSUFBSSxDQUFDLE1BQU0sQ0FBQywySEFBMkgsQ0FBQyxDQUFDO1FBQ3pJLElBQUksQ0FBQyxNQUFNLENBQUMsdUhBQXVILENBQUMsQ0FBQztRQUVySSxJQUFJLENBQUMsTUFBTSxDQUFDLGlIQUFpSCxDQUFDLENBQUM7UUFDL0gsSUFBSSxDQUFDLE1BQU0sQ0FBQywwTkFBME4sQ0FBQyxDQUFDO1FBQ3hPLElBQUksQ0FBQyxNQUFNLENBQUMsdUdBQXVHLENBQUMsQ0FBQztRQUNySCxJQUFJLENBQUMsTUFBTSxDQUFDLHlLQUF5SyxDQUFDLENBQUM7SUFDekwsQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsaUhBQWlILENBQUMsQ0FBQztRQUUvSCxJQUFJLENBQUMsTUFBTSxDQUFDLHVHQUF1RyxDQUFDLENBQUM7UUFFckgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxREFBcUQsQ0FBQyxDQUFDO1FBRW5FLElBQUksQ0FBQyxNQUFNLENBQUMsMkNBQTJDLENBQUMsQ0FBQztRQUV6RCxJQUFJLENBQUMsTUFBTSxDQUFDLCtDQUErQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUVGO0FBaENELDBEQWdDQyJ9
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export declare const InvalidationReason: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
2
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
3
|
+
value: import("@medusajs/framework/utils").TextProperty;
|
|
4
|
+
serial_numbers: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
5
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
6
|
+
order_id: import("@medusajs/framework/utils").TextProperty;
|
|
7
|
+
value: import("@medusajs/framework/utils").TextProperty;
|
|
8
|
+
invalidated: import("@medusajs/framework/utils").BooleanProperty;
|
|
9
|
+
invalidation_reason: import("@medusajs/framework/utils").RelationNullableModifier<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "invalidation_reason">, import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "invalidation_reason">, undefined>, true>;
|
|
10
|
+
stock_lot: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
11
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
12
|
+
inventory_item_id: import("@medusajs/framework/utils").TextProperty;
|
|
13
|
+
stock_location_id: import("@medusajs/framework/utils").TextProperty;
|
|
14
|
+
lot_number: import("@medusajs/framework/utils").TextProperty;
|
|
15
|
+
description: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
16
|
+
enabled: import("@medusajs/framework/utils").BooleanProperty;
|
|
17
|
+
initial_quantity: import("@medusajs/framework/utils").NumberProperty;
|
|
18
|
+
stocked_quantity: import("@medusajs/framework/utils").NumberProperty;
|
|
19
|
+
serial_numbers: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "serial_number">>;
|
|
20
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
21
|
+
}>, "stock_lot">, undefined>;
|
|
22
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
23
|
+
}>, "serial_number">>;
|
|
24
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
25
|
+
}>, "invalidation_reason">;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.InvalidationReason = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const serial_number_1 = require("./serial-number");
|
|
6
|
+
exports.InvalidationReason = utils_1.model.define('invalidation_reason', {
|
|
7
|
+
id: utils_1.model.id().primaryKey(),
|
|
8
|
+
value: utils_1.model.text(),
|
|
9
|
+
serial_numbers: utils_1.model.hasMany(() => serial_number_1.SerialNumber, {
|
|
10
|
+
mappedBy: 'invalidation_reason'
|
|
11
|
+
}),
|
|
12
|
+
metadata: utils_1.model.json().nullable()
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW52YWxpZGF0aW9uLXJlYXNvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3RyYWNpbmcvbW9kZWxzL2ludmFsaWRhdGlvbi1yZWFzb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQWlEO0FBQ2pELG1EQUE4QztBQUVqQyxRQUFBLGtCQUFrQixHQUFHLGFBQUssQ0FBQyxNQUFNLENBQUMscUJBQXFCLEVBQUU7SUFDckUsRUFBRSxFQUFFLGFBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLEVBQUU7SUFDM0IsS0FBSyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUU7SUFDbkIsY0FBYyxFQUFFLGFBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQVksRUFBRTtRQUNqRCxRQUFRLEVBQUUscUJBQXFCO0tBQy9CLENBQUM7SUFDRixRQUFRLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUNqQyxDQUFDLENBQUEifQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare const SerialNumber: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
2
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
3
|
+
order_id: import("@medusajs/framework/utils").TextProperty;
|
|
4
|
+
value: import("@medusajs/framework/utils").TextProperty;
|
|
5
|
+
invalidated: import("@medusajs/framework/utils").BooleanProperty;
|
|
6
|
+
invalidation_reason: import("@medusajs/framework/utils").RelationNullableModifier<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
7
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
8
|
+
value: import("@medusajs/framework/utils").TextProperty;
|
|
9
|
+
serial_numbers: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "serial_number">>;
|
|
10
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
11
|
+
}>, "invalidation_reason">, import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
12
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
13
|
+
value: import("@medusajs/framework/utils").TextProperty;
|
|
14
|
+
serial_numbers: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "serial_number">>;
|
|
15
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
16
|
+
}>, "invalidation_reason">, undefined>, true>;
|
|
17
|
+
stock_lot: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
18
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
19
|
+
inventory_item_id: import("@medusajs/framework/utils").TextProperty;
|
|
20
|
+
stock_location_id: import("@medusajs/framework/utils").TextProperty;
|
|
21
|
+
lot_number: import("@medusajs/framework/utils").TextProperty;
|
|
22
|
+
description: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
23
|
+
enabled: import("@medusajs/framework/utils").BooleanProperty;
|
|
24
|
+
initial_quantity: import("@medusajs/framework/utils").NumberProperty;
|
|
25
|
+
stocked_quantity: import("@medusajs/framework/utils").NumberProperty;
|
|
26
|
+
serial_numbers: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "serial_number">>;
|
|
27
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
28
|
+
}>, "stock_lot">, undefined>;
|
|
29
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
30
|
+
}>, "serial_number">;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SerialNumber = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const stock_lot_1 = require("./stock-lot");
|
|
6
|
+
const invalidation_reason_1 = require("./invalidation-reason");
|
|
7
|
+
exports.SerialNumber = utils_1.model.define('serial_number', {
|
|
8
|
+
id: utils_1.model.id().primaryKey(),
|
|
9
|
+
order_id: utils_1.model.text(),
|
|
10
|
+
value: utils_1.model.text(),
|
|
11
|
+
invalidated: utils_1.model.boolean().default(false),
|
|
12
|
+
invalidation_reason: utils_1.model
|
|
13
|
+
.belongsTo(() => invalidation_reason_1.InvalidationReason, {
|
|
14
|
+
mappedBy: 'serial_numbers'
|
|
15
|
+
})
|
|
16
|
+
.nullable(),
|
|
17
|
+
stock_lot: utils_1.model.belongsTo(() => stock_lot_1.StockLot, {
|
|
18
|
+
mappedBy: 'serial_numbers'
|
|
19
|
+
}),
|
|
20
|
+
// stock_lot_id is automatially added by Medusa
|
|
21
|
+
metadata: utils_1.model.json().nullable()
|
|
22
|
+
});
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VyaWFsLW51bWJlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3RyYWNpbmcvbW9kZWxzL3NlcmlhbC1udW1iZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQWlEO0FBQ2pELDJDQUFzQztBQUN0QywrREFBMEQ7QUFFN0MsUUFBQSxZQUFZLEdBQUcsYUFBSyxDQUFDLE1BQU0sQ0FBQyxlQUFlLEVBQUU7SUFDekQsRUFBRSxFQUFFLGFBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLEVBQUU7SUFDM0IsUUFBUSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUU7SUFDdEIsS0FBSyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUU7SUFDbkIsV0FBVyxFQUFFLGFBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzNDLG1CQUFtQixFQUFFLGFBQUs7U0FDeEIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLHdDQUFrQixFQUFFO1FBQ3BDLFFBQVEsRUFBRSxnQkFBZ0I7S0FDMUIsQ0FBQztTQUNELFFBQVEsRUFBRTtJQUNaLFNBQVMsRUFBRSxhQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFRLEVBQUU7UUFDMUMsUUFBUSxFQUFFLGdCQUFnQjtLQUMxQixDQUFDO0lBQ0YsK0NBQStDO0lBQy9DLFFBQVEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ2pDLENBQUMsQ0FBQSJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stbG90LWFjdGl2aXR5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvdHJhY2luZy9tb2RlbHMvc3RvY2stbG90LWFjdGl2aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIifQ==
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare const StockLot: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
2
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
3
|
+
inventory_item_id: import("@medusajs/framework/utils").TextProperty;
|
|
4
|
+
stock_location_id: import("@medusajs/framework/utils").TextProperty;
|
|
5
|
+
lot_number: import("@medusajs/framework/utils").TextProperty;
|
|
6
|
+
description: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
7
|
+
enabled: import("@medusajs/framework/utils").BooleanProperty;
|
|
8
|
+
initial_quantity: import("@medusajs/framework/utils").NumberProperty;
|
|
9
|
+
stocked_quantity: import("@medusajs/framework/utils").NumberProperty;
|
|
10
|
+
serial_numbers: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
11
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
12
|
+
order_id: import("@medusajs/framework/utils").TextProperty;
|
|
13
|
+
value: import("@medusajs/framework/utils").TextProperty;
|
|
14
|
+
invalidated: import("@medusajs/framework/utils").BooleanProperty;
|
|
15
|
+
invalidation_reason: import("@medusajs/framework/utils").RelationNullableModifier<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
16
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
17
|
+
value: import("@medusajs/framework/utils").TextProperty;
|
|
18
|
+
serial_numbers: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "serial_number">>;
|
|
19
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
20
|
+
}>, "invalidation_reason">, import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
21
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
22
|
+
value: import("@medusajs/framework/utils").TextProperty;
|
|
23
|
+
serial_numbers: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "serial_number">>;
|
|
24
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
25
|
+
}>, "invalidation_reason">, undefined>, true>;
|
|
26
|
+
stock_lot: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "stock_lot">, undefined>;
|
|
27
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
28
|
+
}>, "serial_number">>;
|
|
29
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
30
|
+
}>, "stock_lot">;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StockLot = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const serial_number_1 = require("./serial-number");
|
|
6
|
+
exports.StockLot = utils_1.model.define('stock_lot', {
|
|
7
|
+
id: utils_1.model.id().primaryKey(),
|
|
8
|
+
inventory_item_id: utils_1.model.text(), // references InventoryItem
|
|
9
|
+
stock_location_id: utils_1.model.text(), // references StockLocation
|
|
10
|
+
lot_number: utils_1.model.text(),
|
|
11
|
+
description: utils_1.model.text().nullable(),
|
|
12
|
+
enabled: utils_1.model.boolean().default(true),
|
|
13
|
+
initial_quantity: utils_1.model.number(),
|
|
14
|
+
stocked_quantity: utils_1.model.number(),
|
|
15
|
+
serial_numbers: utils_1.model.hasMany(() => serial_number_1.SerialNumber, {
|
|
16
|
+
mappedBy: 'stock_lot'
|
|
17
|
+
}),
|
|
18
|
+
metadata: utils_1.model.json().nullable()
|
|
19
|
+
});
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvY2stbG90LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvdHJhY2luZy9tb2RlbHMvc3RvY2stbG90LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUFpRDtBQUNqRCxtREFBOEM7QUFFakMsUUFBQSxRQUFRLEdBQUcsYUFBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUU7SUFDakQsRUFBRSxFQUFFLGFBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLEVBQUU7SUFDM0IsaUJBQWlCLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxFQUFFLDJCQUEyQjtJQUM1RCxpQkFBaUIsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsMkJBQTJCO0lBQzVELFVBQVUsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQ3hCLFdBQVcsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3BDLE9BQU8sRUFBRSxhQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztJQUN0QyxnQkFBZ0IsRUFBRSxhQUFLLENBQUMsTUFBTSxFQUFFO0lBQ2hDLGdCQUFnQixFQUFFLGFBQUssQ0FBQyxNQUFNLEVBQUU7SUFDaEMsY0FBYyxFQUFFLGFBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsNEJBQVksRUFBRTtRQUNqRCxRQUFRLEVBQUUsV0FBVztLQUNyQixDQUFDO0lBQ0YsUUFBUSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDakMsQ0FBQyxDQUFBIn0=
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { InferTypeOf, Logger } from '@medusajs/framework/types';
|
|
2
|
+
import { StockLot } from './models/stock-lot';
|
|
3
|
+
type StockLotType = InferTypeOf<typeof StockLot>;
|
|
4
|
+
declare const TracingService_base: import("@medusajs/framework/utils").MedusaServiceReturnType<import("@medusajs/framework/utils").ModelConfigurationsToConfigTemplate<{
|
|
5
|
+
readonly StockLot: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
6
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
7
|
+
inventory_item_id: import("@medusajs/framework/utils").TextProperty;
|
|
8
|
+
stock_location_id: import("@medusajs/framework/utils").TextProperty;
|
|
9
|
+
lot_number: import("@medusajs/framework/utils").TextProperty;
|
|
10
|
+
description: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
11
|
+
enabled: import("@medusajs/framework/utils").BooleanProperty;
|
|
12
|
+
initial_quantity: import("@medusajs/framework/utils").NumberProperty;
|
|
13
|
+
stocked_quantity: import("@medusajs/framework/utils").NumberProperty;
|
|
14
|
+
serial_numbers: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
15
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
16
|
+
order_id: import("@medusajs/framework/utils").TextProperty;
|
|
17
|
+
value: import("@medusajs/framework/utils").TextProperty;
|
|
18
|
+
invalidated: import("@medusajs/framework/utils").BooleanProperty;
|
|
19
|
+
invalidation_reason: import("@medusajs/framework/utils").RelationNullableModifier<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
20
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
21
|
+
value: import("@medusajs/framework/utils").TextProperty;
|
|
22
|
+
serial_numbers: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "serial_number">>;
|
|
23
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
24
|
+
}>, "invalidation_reason">, import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
25
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
26
|
+
value: import("@medusajs/framework/utils").TextProperty;
|
|
27
|
+
serial_numbers: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "serial_number">>;
|
|
28
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
29
|
+
}>, "invalidation_reason">, undefined>, true>;
|
|
30
|
+
stock_lot: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "stock_lot">, undefined>;
|
|
31
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
32
|
+
}>, "serial_number">>;
|
|
33
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
34
|
+
}>, "stock_lot">;
|
|
35
|
+
readonly SerialNumber: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
36
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
37
|
+
order_id: import("@medusajs/framework/utils").TextProperty;
|
|
38
|
+
value: import("@medusajs/framework/utils").TextProperty;
|
|
39
|
+
invalidated: import("@medusajs/framework/utils").BooleanProperty;
|
|
40
|
+
invalidation_reason: import("@medusajs/framework/utils").RelationNullableModifier<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
41
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
42
|
+
value: import("@medusajs/framework/utils").TextProperty;
|
|
43
|
+
serial_numbers: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "serial_number">>;
|
|
44
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
45
|
+
}>, "invalidation_reason">, import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
46
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
47
|
+
value: import("@medusajs/framework/utils").TextProperty;
|
|
48
|
+
serial_numbers: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "serial_number">>;
|
|
49
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
50
|
+
}>, "invalidation_reason">, undefined>, true>;
|
|
51
|
+
stock_lot: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
52
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
53
|
+
inventory_item_id: import("@medusajs/framework/utils").TextProperty;
|
|
54
|
+
stock_location_id: import("@medusajs/framework/utils").TextProperty;
|
|
55
|
+
lot_number: import("@medusajs/framework/utils").TextProperty;
|
|
56
|
+
description: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
57
|
+
enabled: import("@medusajs/framework/utils").BooleanProperty;
|
|
58
|
+
initial_quantity: import("@medusajs/framework/utils").NumberProperty;
|
|
59
|
+
stocked_quantity: import("@medusajs/framework/utils").NumberProperty;
|
|
60
|
+
serial_numbers: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "serial_number">>;
|
|
61
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
62
|
+
}>, "stock_lot">, undefined>;
|
|
63
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
64
|
+
}>, "serial_number">;
|
|
65
|
+
readonly InvalidationReason: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
66
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
67
|
+
value: import("@medusajs/framework/utils").TextProperty;
|
|
68
|
+
serial_numbers: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
69
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
70
|
+
order_id: import("@medusajs/framework/utils").TextProperty;
|
|
71
|
+
value: import("@medusajs/framework/utils").TextProperty;
|
|
72
|
+
invalidated: import("@medusajs/framework/utils").BooleanProperty;
|
|
73
|
+
invalidation_reason: import("@medusajs/framework/utils").RelationNullableModifier<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "invalidation_reason">, import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "invalidation_reason">, undefined>, true>;
|
|
74
|
+
stock_lot: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
75
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
76
|
+
inventory_item_id: import("@medusajs/framework/utils").TextProperty;
|
|
77
|
+
stock_location_id: import("@medusajs/framework/utils").TextProperty;
|
|
78
|
+
lot_number: import("@medusajs/framework/utils").TextProperty;
|
|
79
|
+
description: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
|
|
80
|
+
enabled: import("@medusajs/framework/utils").BooleanProperty;
|
|
81
|
+
initial_quantity: import("@medusajs/framework/utils").NumberProperty;
|
|
82
|
+
stocked_quantity: import("@medusajs/framework/utils").NumberProperty;
|
|
83
|
+
serial_numbers: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "serial_number">>;
|
|
84
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
85
|
+
}>, "stock_lot">, undefined>;
|
|
86
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
87
|
+
}>, "serial_number">>;
|
|
88
|
+
metadata: import("@medusajs/framework/utils").NullableModifier<Record<string, unknown>, import("@medusajs/framework/utils").JSONProperty>;
|
|
89
|
+
}>, "invalidation_reason">;
|
|
90
|
+
}>>;
|
|
91
|
+
export declare class TracingService extends TracingService_base {
|
|
92
|
+
protected logger_: Logger;
|
|
93
|
+
constructor(container: {
|
|
94
|
+
logger: Logger;
|
|
95
|
+
}, _options?: any);
|
|
96
|
+
/**
|
|
97
|
+
* Finds the first available lot for a given inventory item and location.
|
|
98
|
+
* "Available" means stocked_quantity > reserved_quantity.
|
|
99
|
+
* Ordered by expiry_date ascending (FIFO/FEFO logic).
|
|
100
|
+
*/
|
|
101
|
+
findFirstAvailable(inventoryItemId: string, stockLocationId: string): Promise<StockLotType | null>;
|
|
102
|
+
/**
|
|
103
|
+
* Adjusts the stocked_quantity of a lot by the given adjustment value.
|
|
104
|
+
* Pass a negative value to subtract (e.g., on fulfillment).
|
|
105
|
+
* Pass a positive value to add (e.g., on receiving new stock).
|
|
106
|
+
*/
|
|
107
|
+
adjustLotQuantity(lotId: string, adjustment: number): Promise<StockLotType>;
|
|
108
|
+
}
|
|
109
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TracingService = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const stock_lot_1 = require("./models/stock-lot");
|
|
6
|
+
const serial_number_1 = require("./models/serial-number");
|
|
7
|
+
const invalidation_reason_1 = require("./models/invalidation-reason");
|
|
8
|
+
class TracingService extends (0, utils_1.MedusaService)({
|
|
9
|
+
StockLot: stock_lot_1.StockLot,
|
|
10
|
+
SerialNumber: serial_number_1.SerialNumber,
|
|
11
|
+
InvalidationReason: invalidation_reason_1.InvalidationReason
|
|
12
|
+
}) {
|
|
13
|
+
constructor(container, _options) {
|
|
14
|
+
super(...arguments);
|
|
15
|
+
this.logger_ = container.logger;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Finds the first available lot for a given inventory item and location.
|
|
19
|
+
* "Available" means stocked_quantity > reserved_quantity.
|
|
20
|
+
* Ordered by expiry_date ascending (FIFO/FEFO logic).
|
|
21
|
+
*/
|
|
22
|
+
async findFirstAvailable(inventoryItemId, stockLocationId) {
|
|
23
|
+
const [lots] = await this.listAndCountStockLots({
|
|
24
|
+
inventory_item_id: inventoryItemId,
|
|
25
|
+
stock_location_id: stockLocationId
|
|
26
|
+
}, {
|
|
27
|
+
order: { created_at: 'ASC' }
|
|
28
|
+
});
|
|
29
|
+
// Return the first lot where available quantity > 0
|
|
30
|
+
const availableLot = lots.find(lot => lot.stocked_quantity > 0);
|
|
31
|
+
return availableLot ?? null;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Adjusts the stocked_quantity of a lot by the given adjustment value.
|
|
35
|
+
* Pass a negative value to subtract (e.g., on fulfillment).
|
|
36
|
+
* Pass a positive value to add (e.g., on receiving new stock).
|
|
37
|
+
*/
|
|
38
|
+
async adjustLotQuantity(lotId, adjustment) {
|
|
39
|
+
const [lot] = await this.listStockLots({ id: lotId });
|
|
40
|
+
if (!lot) {
|
|
41
|
+
throw new Error(`StockLot with id ${lotId} not found`);
|
|
42
|
+
}
|
|
43
|
+
const updatedLot = await this.updateStockLots({
|
|
44
|
+
id: lotId,
|
|
45
|
+
stocked_quantity: lot.stocked_quantity + adjustment
|
|
46
|
+
});
|
|
47
|
+
this.logger_.info(`Adjusted lot ${lotId} quantity by ${adjustment}. New stocked quantity: ${updatedLot.stocked_quantity}`);
|
|
48
|
+
return updatedLot;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
exports.TracingService = TracingService;
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3RyYWNpbmcvc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBeUQ7QUFFekQsa0RBQTZDO0FBQzdDLDBEQUFxRDtBQUNyRCxzRUFBaUU7QUFJakUsTUFBYSxjQUFlLFNBQVEsSUFBQSxxQkFBYSxFQUFDO0lBQ2pELFFBQVEsRUFBUixvQkFBUTtJQUNSLFlBQVksRUFBWiw0QkFBWTtJQUNaLGtCQUFrQixFQUFsQix3Q0FBa0I7Q0FDbEIsQ0FBQztJQUdELFlBQVksU0FBNkIsRUFBRSxRQUFjO1FBQ3hELEtBQUssQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFBO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQTtJQUNoQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxrQkFBa0IsQ0FDdkIsZUFBdUIsRUFDdkIsZUFBdUI7UUFFdkIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sSUFBSSxDQUFDLHFCQUFxQixDQUM5QztZQUNDLGlCQUFpQixFQUFFLGVBQWU7WUFDbEMsaUJBQWlCLEVBQUUsZUFBZTtTQUNsQyxFQUNEO1lBQ0MsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRTtTQUM1QixDQUNELENBQUE7UUFFRCxvREFBb0Q7UUFDcEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUMsQ0FBQTtRQUUvRCxPQUFPLFlBQVksSUFBSSxJQUFJLENBQUE7SUFDNUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBYSxFQUFFLFVBQWtCO1FBQ3hELE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQTtRQUVyRCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDVixNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixLQUFLLFlBQVksQ0FBQyxDQUFBO1FBQ3ZELENBQUM7UUFFRCxNQUFNLFVBQVUsR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUM7WUFDN0MsRUFBRSxFQUFFLEtBQUs7WUFDVCxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsZ0JBQWdCLEdBQUcsVUFBVTtTQUNuRCxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDaEIsZ0JBQWdCLEtBQUssZ0JBQWdCLFVBQVUsMkJBQTRCLFVBQWtCLENBQUMsZ0JBQWdCLEVBQUUsQ0FDaEgsQ0FBQTtRQUNELE9BQU8sVUFBMEIsQ0FBQTtJQUNsQyxDQUFDO0NBQ0Q7QUExREQsd0NBMERDIn0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SubscriberArgs, type SubscriberConfig } from '@medusajs/framework';
|
|
2
|
+
type FulfillmentCreatedData = {
|
|
3
|
+
order_id: string;
|
|
4
|
+
fulfillment_id: string;
|
|
5
|
+
};
|
|
6
|
+
export default function fulfillmentCreatedHandler({ event: { data }, container, }: SubscriberArgs<FulfillmentCreatedData>): Promise<void>;
|
|
7
|
+
export declare const config: SubscriberConfig;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.config = void 0;
|
|
4
|
+
exports.default = fulfillmentCreatedHandler;
|
|
5
|
+
const crypto_1 = require("crypto");
|
|
6
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
7
|
+
const tracing_1 = require("../modules/tracing");
|
|
8
|
+
async function fulfillmentCreatedHandler({ event: { data }, container, }) {
|
|
9
|
+
const tracingService = container.resolve(tracing_1.TRACING_MODULE);
|
|
10
|
+
const logger = container.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
|
|
11
|
+
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
12
|
+
const { data: fulfillments } = await query.graph({
|
|
13
|
+
entity: 'fulfillment',
|
|
14
|
+
fields: ['id', 'location_id', 'items.*'],
|
|
15
|
+
filters: { id: data.fulfillment_id }
|
|
16
|
+
});
|
|
17
|
+
const fulfillment = fulfillments[0];
|
|
18
|
+
if (!fulfillment) {
|
|
19
|
+
logger.warn(`tracing: fulfillment ${data.fulfillment_id} not found — skipping stock lot tracking`);
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const managedItems = fulfillment.items.filter((item) => !!item.inventory_item_id);
|
|
23
|
+
if (!managedItems.length)
|
|
24
|
+
return;
|
|
25
|
+
const orderId = data.order_id;
|
|
26
|
+
for (const item of managedItems) {
|
|
27
|
+
try {
|
|
28
|
+
const lot = await tracingService.findFirstAvailable(item.inventory_item_id, fulfillment.location_id);
|
|
29
|
+
if (!lot) {
|
|
30
|
+
logger.warn(`tracing: no stock lot available for inventory item ${item.inventory_item_id} ` +
|
|
31
|
+
`at location ${fulfillment.location_id} — skipping lot tracking for fulfillment ${fulfillment.id}`);
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
await tracingService.adjustLotQuantity(lot.id, -item.quantity);
|
|
35
|
+
if (orderId) {
|
|
36
|
+
await Promise.all(Array.from({ length: item.quantity }, () => tracingService.createSerialNumbers({
|
|
37
|
+
order_id: orderId,
|
|
38
|
+
value: (0, crypto_1.randomUUID)(),
|
|
39
|
+
stock_lot_id: lot.id
|
|
40
|
+
})));
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
logger.error(`tracing: failed to process stock lot for inventory item ${item.inventory_item_id} ` +
|
|
45
|
+
`in fulfillment ${fulfillment.id}: ${error.message}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.config = {
|
|
50
|
+
event: 'order.fulfillment_created',
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVsZmlsbG1lbnQtY3JlYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zdWJzY3JpYmVycy9mdWxmaWxsbWVudC1jcmVhdGVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVdBLDRDQTREQztBQXZFRCxtQ0FBbUM7QUFFbkMscURBQXFFO0FBQ3JFLGdEQUFtRDtBQVFwQyxLQUFLLFVBQVUseUJBQXlCLENBQUMsRUFDdkQsS0FBSyxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQ2YsU0FBUyxHQUMrQjtJQUN4QyxNQUFNLGNBQWMsR0FBbUIsU0FBUyxDQUFDLE9BQU8sQ0FBQyx3QkFBYyxDQUFDLENBQUE7SUFDeEUsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNsRSxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBRWhFLE1BQU0sRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ2hELE1BQU0sRUFBRSxhQUFhO1FBQ3JCLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsU0FBUyxDQUFDO1FBQ3hDLE9BQU8sRUFBRSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFO0tBQ3BDLENBQUMsQ0FBQTtJQUVGLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNuQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbEIsTUFBTSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsSUFBSSxDQUFDLGNBQWMsMENBQTBDLENBQUMsQ0FBQTtRQUNsRyxPQUFNO0lBQ1AsQ0FBQztJQUVELE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDdEYsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNO1FBQUUsT0FBTTtJQUVoQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFBO0lBRTdCLEtBQUssTUFBTSxJQUFJLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDO1lBQ0osTUFBTSxHQUFHLEdBQUcsTUFBTSxjQUFjLENBQUMsa0JBQWtCLENBQ2xELElBQUksQ0FBQyxpQkFBa0IsRUFDdkIsV0FBVyxDQUFDLFdBQVcsQ0FDdkIsQ0FBQTtZQUVELElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDVixNQUFNLENBQUMsSUFBSSxDQUNWLHNEQUFzRCxJQUFJLENBQUMsaUJBQWlCLEdBQUc7b0JBQy9FLGVBQWUsV0FBVyxDQUFDLFdBQVcsNENBQTRDLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FDbEcsQ0FBQTtnQkFDRCxTQUFRO1lBQ1QsQ0FBQztZQUVELE1BQU0sY0FBYyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7WUFFOUQsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDYixNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQ2hCLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUMxQyxjQUFjLENBQUMsbUJBQW1CLENBQUM7b0JBQ2xDLFFBQVEsRUFBRSxPQUFPO29CQUNqQixLQUFLLEVBQUUsSUFBQSxtQkFBVSxHQUFFO29CQUNuQixZQUFZLEVBQUUsR0FBRyxDQUFDLEVBQUU7aUJBQ2IsQ0FBQyxDQUNULENBQ0QsQ0FBQTtZQUNGLENBQUM7UUFDRixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNoQixNQUFNLENBQUMsS0FBSyxDQUNYLDJEQUEyRCxJQUFJLENBQUMsaUJBQWlCLEdBQUc7Z0JBQ3BGLGtCQUFrQixXQUFXLENBQUMsRUFBRSxLQUFNLEtBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FDL0QsQ0FBQTtRQUNGLENBQUM7SUFDRixDQUFDO0FBQ0YsQ0FBQztBQUVZLFFBQUEsTUFBTSxHQUFxQjtJQUN2QyxLQUFLLEVBQUUsMkJBQTJCO0NBQ2xDLENBQUEifQ==
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.adjustStockOrderWorkflow = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const tracing_1 = require("../../modules/tracing");
|
|
6
|
+
const adjustStockLotStep = (0, workflows_sdk_1.createStep)('adjust-stock-lot', async ({ order_id }, { container }) => {
|
|
7
|
+
const tracingService = container.resolve(tracing_1.TRACING_MODULE);
|
|
8
|
+
const query = container.resolve('query');
|
|
9
|
+
const { data: orders } = await query.graph({
|
|
10
|
+
entity: 'order',
|
|
11
|
+
fields: [
|
|
12
|
+
'id',
|
|
13
|
+
'items.*',
|
|
14
|
+
'items.variant.*',
|
|
15
|
+
'items.variant.inventory.*',
|
|
16
|
+
'items.variant.inventory.location_levels.*'
|
|
17
|
+
],
|
|
18
|
+
filters: { id: order_id }
|
|
19
|
+
});
|
|
20
|
+
const order = orders[0];
|
|
21
|
+
if (order.items && order.items.length > 0) {
|
|
22
|
+
for (const item of order.items) {
|
|
23
|
+
if (!item?.variant || !item?.variant.inventory)
|
|
24
|
+
continue;
|
|
25
|
+
for (const inv of item.variant?.inventory ?? []) {
|
|
26
|
+
if (!inv?.id)
|
|
27
|
+
continue;
|
|
28
|
+
for (const locLevel of inv?.location_levels ?? []) {
|
|
29
|
+
if (!locLevel?.location_id)
|
|
30
|
+
continue;
|
|
31
|
+
// Find the first available lot for this inventory item + location
|
|
32
|
+
const lot = await tracingService.findFirstAvailable(inv.id, locLevel.location_id);
|
|
33
|
+
if (!lot)
|
|
34
|
+
continue;
|
|
35
|
+
// Adjust the lot's reserved quantity
|
|
36
|
+
await tracingService.adjustLotQuantity(lot.id, -item.quantity);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return new workflows_sdk_1.StepResponse({ order_id });
|
|
42
|
+
});
|
|
43
|
+
exports.adjustStockOrderWorkflow = (0, workflows_sdk_1.createWorkflow)('adjust-stock-order', ({ order_id }) => {
|
|
44
|
+
const result = adjustStockLotStep({ order_id });
|
|
45
|
+
return new workflows_sdk_1.WorkflowResponse(result);
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRqdXN0LXN0b2NrLW9yZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy90cmFjaW5nL2FkanVzdC1zdG9jay1vcmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFLMEM7QUFDMUMsbURBQXNEO0FBT3RELE1BQU0sa0JBQWtCLEdBQUcsSUFBQSwwQkFBVSxFQUNwQyxrQkFBa0IsRUFDbEIsS0FBSyxFQUFFLEVBQUUsUUFBUSxFQUEyQixFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUM5RCxNQUFNLGNBQWMsR0FBbUIsU0FBUyxDQUFDLE9BQU8sQ0FBQyx3QkFBYyxDQUFDLENBQUE7SUFFeEUsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUN4QyxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUMxQyxNQUFNLEVBQUUsT0FBTztRQUNmLE1BQU0sRUFBRTtZQUNQLElBQUk7WUFDSixTQUFTO1lBQ1QsaUJBQWlCO1lBQ2pCLDJCQUEyQjtZQUMzQiwyQ0FBMkM7U0FDM0M7UUFDRCxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFO0tBQ3pCLENBQUMsQ0FBQTtJQUNGLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUV2QixJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDM0MsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDaEMsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFNBQVM7Z0JBQUUsU0FBUTtZQUN4RCxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUNqRCxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQUUsU0FBUTtnQkFDdEIsS0FBSyxNQUFNLFFBQVEsSUFBSSxHQUFHLEVBQUUsZUFBZSxJQUFJLEVBQUUsRUFBRSxDQUFDO29CQUNuRCxJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVc7d0JBQUUsU0FBUTtvQkFDcEMsa0VBQWtFO29CQUNsRSxNQUFNLEdBQUcsR0FBRyxNQUFNLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQTtvQkFDakYsSUFBSSxDQUFDLEdBQUc7d0JBQUUsU0FBUTtvQkFDbEIscUNBQXFDO29CQUNyQyxNQUFNLGNBQWMsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFBO2dCQUMvRCxDQUFDO1lBQ0YsQ0FBQztRQUNGLENBQUM7SUFDRixDQUFDO0lBRUQsT0FBTyxJQUFJLDRCQUFZLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFBO0FBQ3RDLENBQUMsQ0FDRCxDQUFBO0FBTVksUUFBQSx3QkFBd0IsR0FBRyxJQUFBLDhCQUFjLEVBQ3JELG9CQUFvQixFQUNwQixDQUFDLEVBQUUsUUFBUSxFQUFpQyxFQUFFLEVBQUU7SUFDL0MsTUFBTSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFBO0lBQy9DLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNwQyxDQUFDLENBQ0QsQ0FBQSJ9
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export declare const createStockLotWorkflow: import("@medusajs/framework/workflows-sdk").ReturnWorkflow<{
|
|
2
|
+
inventory_item_id: string;
|
|
3
|
+
stock_location_id: string;
|
|
4
|
+
enabled: boolean;
|
|
5
|
+
lot_number: string;
|
|
6
|
+
description?: string | null | undefined;
|
|
7
|
+
initial_quantity?: number | undefined;
|
|
8
|
+
stocked_quantity?: number | undefined;
|
|
9
|
+
metadata?: Record<string, unknown> | null | undefined;
|
|
10
|
+
}, {
|
|
11
|
+
id: string;
|
|
12
|
+
inventory_item_id: string;
|
|
13
|
+
stock_location_id: string;
|
|
14
|
+
lot_number: string;
|
|
15
|
+
description: string | null;
|
|
16
|
+
enabled: boolean;
|
|
17
|
+
initial_quantity: number;
|
|
18
|
+
stocked_quantity: number;
|
|
19
|
+
serial_numbers: {
|
|
20
|
+
id: string;
|
|
21
|
+
order_id: string;
|
|
22
|
+
value: string;
|
|
23
|
+
invalidated: boolean;
|
|
24
|
+
invalidation_reason: {
|
|
25
|
+
id: string;
|
|
26
|
+
value: string;
|
|
27
|
+
serial_numbers: /*elided*/ any[];
|
|
28
|
+
metadata: Record<string, unknown> | null;
|
|
29
|
+
created_at: Date;
|
|
30
|
+
updated_at: Date;
|
|
31
|
+
deleted_at: Date | null;
|
|
32
|
+
};
|
|
33
|
+
stock_lot: /*elided*/ any;
|
|
34
|
+
metadata: Record<string, unknown> | null;
|
|
35
|
+
created_at: Date;
|
|
36
|
+
updated_at: Date;
|
|
37
|
+
deleted_at: Date | null;
|
|
38
|
+
invalidation_reason_id: string | null;
|
|
39
|
+
stock_lot_id: string;
|
|
40
|
+
}[];
|
|
41
|
+
metadata: Record<string, unknown> | null;
|
|
42
|
+
created_at: Date;
|
|
43
|
+
updated_at: Date;
|
|
44
|
+
deleted_at: Date | null;
|
|
45
|
+
}, []>;
|