@lodashventure/medusa-parcel-shipping 0.2.11 → 0.2.18
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/src/admin/index.js +1794 -1289
- package/.medusa/server/src/admin/index.mjs +1797 -1292
- package/.medusa/server/src/api/admin/boxes/[id]/route.js +52 -0
- package/.medusa/server/src/api/admin/boxes/route.js +44 -0
- package/.medusa/server/src/api/admin/distance/route.js +75 -0
- package/.medusa/server/src/api/admin/documents/document-packing-slip-settings/route.js +65 -0
- package/.medusa/server/{api → src/api}/admin/documents/packing-slip/preview/route.js +1 -1
- package/.medusa/server/{api → src/api}/admin/documents/packing-slip/route.js +2 -2
- package/.medusa/server/src/api/admin/material-costs/[id]/route.js +51 -0
- package/.medusa/server/src/api/admin/material-costs/route.js +46 -0
- package/.medusa/server/src/api/admin/packaging-materials/[id]/route.js +50 -0
- package/.medusa/server/src/api/admin/packaging-materials/route.js +52 -0
- package/.medusa/server/src/api/admin/packing-policies/[id]/route.js +41 -0
- package/.medusa/server/src/api/admin/packing-policies/route.js +43 -0
- package/.medusa/server/src/api/admin/rates/[id]/route.js +8 -0
- package/.medusa/server/src/api/admin/rates/route.js +7 -0
- package/.medusa/server/src/api/admin/service-areas/[id]/route.js +36 -0
- package/.medusa/server/src/api/admin/service-areas/route.js +40 -0
- package/.medusa/server/src/api/admin/shipping-rates/[id]/route.js +48 -0
- package/.medusa/server/src/api/admin/shipping-rates/route.js +66 -0
- package/.medusa/server/src/api/store/distance/route.js +75 -0
- package/.medusa/server/src/api/store/quote/route.js +116 -0
- package/.medusa/server/{common → src/common}/types.js +1 -1
- package/.medusa/server/src/common/utils/distance-calculator.js +98 -0
- package/.medusa/server/src/common/utils/geocoding.js +125 -0
- package/.medusa/server/{common → src/common}/utils/osrm-client.js +1 -1
- package/.medusa/server/src/common/utils/packing.js +484 -0
- package/.medusa/server/src/index.js +38 -0
- package/.medusa/server/{links → src/links}/index.js +1 -1
- package/.medusa/server/{links → src/links}/packing-slip-order.js +1 -1
- package/.medusa/server/{modules → src/modules}/documents/index.js +1 -1
- package/.medusa/server/{modules → src/modules}/documents/models/document-invoice.js +1 -1
- package/.medusa/server/{modules → src/modules}/documents/models/document-packing-slip-settings.js +1 -1
- package/.medusa/server/{modules → src/modules}/documents/models/document-packing-slip.js +1 -1
- package/.medusa/server/{modules → src/modules}/documents/models/document-settings.js +1 -1
- package/.medusa/server/{modules → src/modules}/documents/models/index.js +1 -1
- package/.medusa/server/{modules → src/modules}/documents/service.js +1 -1
- package/.medusa/server/{modules → src/modules}/documents/services/generators/invoice-generator.js +1 -1
- package/.medusa/server/{modules → src/modules}/documents/services/generators/packing-slip-generator.js +1 -1
- package/.medusa/server/{modules → src/modules}/documents/services/templates/invoices/basic/basic-logo.js +1 -1
- package/.medusa/server/{modules → src/modules}/documents/services/templates/invoices/basic/basic.js +1 -1
- package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/customer-info.js +69 -0
- package/.medusa/server/{modules → src/modules}/documents/services/templates/invoices/basic/parts/header-for-logo.js +1 -1
- package/.medusa/server/{modules → src/modules}/documents/services/templates/invoices/basic/parts/header-logo.js +1 -1
- package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/header.js +35 -0
- package/.medusa/server/{modules → src/modules}/documents/services/templates/invoices/basic/parts/hr.js +1 -1
- package/.medusa/server/{modules → src/modules}/documents/services/templates/invoices/basic/parts/invoice-info.js +1 -1
- package/.medusa/server/src/modules/documents/services/templates/invoices/basic/parts/table.js +97 -0
- package/.medusa/server/{modules → src/modules}/documents/services/templates/packing-slips/basic/basic.js +1 -1
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/customer-info-small.js +69 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/customer-info.js +65 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/header-small.js +37 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/header.js +37 -0
- package/.medusa/server/{modules → src/modules}/documents/services/templates/packing-slips/basic/parts/hr.js +1 -1
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/table-items-small.js +44 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/table-items.js +44 -0
- package/.medusa/server/src/modules/documents/services/templates/packing-slips/basic/parts/table-order-info-small.js +35 -0
- package/.medusa/server/{modules → src/modules}/documents/services/templates/packing-slips/basic/parts/table-order-info.js +1 -1
- package/.medusa/server/{modules → src/modules}/documents/services/templates/packing-slips/basic/small.js +1 -1
- package/.medusa/server/{modules → src/modules}/documents/types/api.js +1 -1
- package/.medusa/server/{modules → src/modules}/documents/types/constants.js +1 -1
- package/.medusa/server/{modules → src/modules}/documents/types/dto.js +1 -1
- package/.medusa/server/{modules → src/modules}/documents/types/template-kind.js +1 -1
- package/.medusa/server/{modules → src/modules}/documents/utils/currency.js +1 -1
- package/.medusa/server/src/modules/parcel-shipping/index.js +13 -0
- package/.medusa/server/src/modules/parcel-shipping/migrations/Migration20251023000000.js +37 -0
- package/.medusa/server/src/modules/parcel-shipping/models/index.js +16 -0
- package/.medusa/server/src/modules/parcel-shipping/models/material-cost.js +24 -0
- package/.medusa/server/src/modules/parcel-shipping/models/packaging-material.js +41 -0
- package/.medusa/server/src/modules/parcel-shipping/models/packing-policy.js +37 -0
- package/.medusa/server/src/modules/parcel-shipping/models/parcel-box.js +25 -0
- package/.medusa/server/src/modules/parcel-shipping/models/service-area.js +30 -0
- package/.medusa/server/src/modules/parcel-shipping/models/shipping-rate.js +50 -0
- package/.medusa/server/src/modules/parcel-shipping/service.js +485 -0
- package/.medusa/server/{providers → src/providers}/company-truck/index.js +1 -1
- package/.medusa/server/src/providers/company-truck/models/company-truck-rate.js +23 -0
- package/.medusa/server/{providers → src/providers}/company-truck/models/index.js +3 -2
- package/.medusa/server/src/providers/company-truck/models/material-cost.js +24 -0
- package/.medusa/server/src/providers/company-truck/models/parcel-box.js +21 -0
- package/.medusa/server/src/providers/company-truck/models/service-area.js +20 -0
- package/.medusa/server/src/providers/company-truck/service.js +456 -0
- package/.medusa/server/{providers → src/providers}/company-truck/types.js +1 -1
- package/.medusa/server/src/providers/index.js +8 -0
- package/.medusa/server/src/providers/parcel-fulfillment.js +378 -0
- package/.medusa/server/{providers → src/providers}/private-carrier/index.js +1 -1
- package/.medusa/server/{providers → src/providers}/private-carrier/models/index.js +1 -1
- package/.medusa/server/src/providers/private-carrier/models/parcel-box.js +21 -0
- package/.medusa/server/src/providers/private-carrier/models/private-carrier-rate.js +23 -0
- package/.medusa/server/src/providers/private-carrier/models/service-area.js +20 -0
- package/.medusa/server/src/providers/private-carrier/service.js +392 -0
- package/.medusa/server/{providers → src/providers}/private-carrier/types.js +1 -1
- package/.medusa/server/src/types/index.js +11 -0
- package/.medusa/server/src/utils/packing.js +386 -0
- package/.medusa/server/src/workflows/assign-packing-slip.js +35 -0
- package/.medusa/server/{workflows → src/workflows}/index.js +1 -1
- package/package.json +21 -11
- package/.medusa/server/api/admin/documents/document-packing-slip-settings/route.js +0 -62
- package/.medusa/server/api/admin/parcel-boxes/[id]/route.js +0 -45
- package/.medusa/server/api/admin/parcel-boxes/route.js +0 -49
- package/.medusa/server/api/admin/shipping-config/areas/[id]/route.js +0 -42
- package/.medusa/server/api/admin/shipping-config/areas/route.js +0 -49
- package/.medusa/server/api/admin/shipping-config/rates/[id]/route.js +0 -82
- package/.medusa/server/api/admin/shipping-config/rates/route.js +0 -95
- package/.medusa/server/api/shipping/distance/route.js +0 -85
- package/.medusa/server/api/shipping/distance/utils/zodTransform.js +0 -20
- package/.medusa/server/api/store/parcel-box-selector/route.js +0 -55
- package/.medusa/server/api/webhooks/tracking/route.js +0 -48
- package/.medusa/server/common/utils/packing.js +0 -379
- package/.medusa/server/index.js +0 -28
- package/.medusa/server/modules/documents/services/templates/invoices/basic/parts/customer-info.js +0 -69
- package/.medusa/server/modules/documents/services/templates/invoices/basic/parts/header.js +0 -35
- package/.medusa/server/modules/documents/services/templates/invoices/basic/parts/table.js +0 -97
- package/.medusa/server/modules/documents/services/templates/packing-slips/basic/parts/customer-info-small.js +0 -69
- package/.medusa/server/modules/documents/services/templates/packing-slips/basic/parts/customer-info.js +0 -65
- package/.medusa/server/modules/documents/services/templates/packing-slips/basic/parts/header-small.js +0 -37
- package/.medusa/server/modules/documents/services/templates/packing-slips/basic/parts/header.js +0 -37
- package/.medusa/server/modules/documents/services/templates/packing-slips/basic/parts/table-items-small.js +0 -44
- package/.medusa/server/modules/documents/services/templates/packing-slips/basic/parts/table-items.js +0 -44
- package/.medusa/server/modules/documents/services/templates/packing-slips/basic/parts/table-order-info-small.js +0 -35
- package/.medusa/server/providers/company-truck/models/company-truck-rate.js +0 -23
- package/.medusa/server/providers/company-truck/models/parcel-box.js +0 -21
- package/.medusa/server/providers/company-truck/models/service-area.js +0 -20
- package/.medusa/server/providers/company-truck/service.js +0 -456
- package/.medusa/server/providers/private-carrier/models/parcel-box.js +0 -21
- package/.medusa/server/providers/private-carrier/models/private-carrier-rate.js +0 -23
- package/.medusa/server/providers/private-carrier/models/service-area.js +0 -20
- package/.medusa/server/providers/private-carrier/service.js +0 -392
- package/.medusa/server/workflows/assign-packing-slip.js +0 -31
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
exports.PUT = PUT;
|
|
5
|
+
exports.DELETE = DELETE;
|
|
6
|
+
const framework_1 = require("@medusajs/framework");
|
|
7
|
+
const parcel_shipping_1 = require("../../../../modules/parcel-shipping");
|
|
8
|
+
const zod_1 = require("zod");
|
|
9
|
+
const UpdateBoxSchema = zod_1.z.object({
|
|
10
|
+
name: zod_1.z.string().min(1).optional(),
|
|
11
|
+
width_cm: zod_1.z.number().positive().optional(),
|
|
12
|
+
length_cm: zod_1.z.number().positive().optional(),
|
|
13
|
+
height_cm: zod_1.z.number().positive().optional(),
|
|
14
|
+
max_weight_kg: zod_1.z.number().positive().optional(),
|
|
15
|
+
price_thb: zod_1.z.number().nonnegative().optional(),
|
|
16
|
+
active: zod_1.z.boolean().optional(),
|
|
17
|
+
});
|
|
18
|
+
/**
|
|
19
|
+
* GET /admin/boxes/:id
|
|
20
|
+
* Get a single parcel box by ID
|
|
21
|
+
*/
|
|
22
|
+
async function GET(req, res) {
|
|
23
|
+
const parcelService = framework_1.container.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
|
|
24
|
+
const { id } = req.params;
|
|
25
|
+
const boxes = await parcelService.findBoxes({ id });
|
|
26
|
+
if (!boxes || boxes.length === 0) {
|
|
27
|
+
return res.status(404).json({ message: "Box not found" });
|
|
28
|
+
}
|
|
29
|
+
res.json({ box: boxes[0] });
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* PUT /admin/boxes/:id
|
|
33
|
+
* Update a parcel box
|
|
34
|
+
*/
|
|
35
|
+
async function PUT(req, res) {
|
|
36
|
+
const parcelService = framework_1.container.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
|
|
37
|
+
const { id } = req.params;
|
|
38
|
+
const validated = UpdateBoxSchema.parse(req.body);
|
|
39
|
+
const box = await parcelService.updateBox(id, validated);
|
|
40
|
+
res.json({ box });
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* DELETE /admin/boxes/:id
|
|
44
|
+
* Delete a parcel box
|
|
45
|
+
*/
|
|
46
|
+
async function DELETE(req, res) {
|
|
47
|
+
const parcelService = framework_1.container.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
|
|
48
|
+
const { id } = req.params;
|
|
49
|
+
await parcelService.deleteBox(id);
|
|
50
|
+
res.status(204).send();
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2JveGVzL1tpZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFtQkEsa0JBV0M7QUFNRCxrQkFRQztBQU1ELHdCQU9DO0FBeERELG1EQUFnRDtBQUNoRCx5RUFBNkU7QUFDN0UsNkJBQXdCO0FBRXhCLE1BQU0sZUFBZSxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDL0IsSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ2xDLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzFDLFNBQVMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzNDLFNBQVMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzNDLGFBQWEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQy9DLFNBQVMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzlDLE1BQU0sRUFBRSxPQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQy9CLENBQUMsQ0FBQztBQUVIOzs7R0FHRztBQUNJLEtBQUssVUFBVSxHQUFHLENBQUMsR0FBa0IsRUFBRSxHQUFtQjtJQUMvRCxNQUFNLGFBQWEsR0FBUSxxQkFBUyxDQUFDLE9BQU8sQ0FBQyx3Q0FBc0IsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBRTFCLE1BQU0sS0FBSyxHQUFHLE1BQU0sYUFBYSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFcEQsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQzlCLENBQUM7QUFFRDs7O0dBR0c7QUFDSSxLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDL0QsTUFBTSxhQUFhLEdBQVEscUJBQVMsQ0FBQyxPQUFPLENBQUMsd0NBQXNCLENBQUMsQ0FBQztJQUNyRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUUxQixNQUFNLFNBQVMsR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRCxNQUFNLEdBQUcsR0FBRyxNQUFNLGFBQWEsQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRXpELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBQ3BCLENBQUM7QUFFRDs7O0dBR0c7QUFDSSxLQUFLLFVBQVUsTUFBTSxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDbEUsTUFBTSxhQUFhLEdBQVEscUJBQVMsQ0FBQyxPQUFPLENBQUMsd0NBQXNCLENBQUMsQ0FBQztJQUNyRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUUxQixNQUFNLGFBQWEsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFFbEMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztBQUN6QixDQUFDIn0=
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
exports.POST = POST;
|
|
5
|
+
const framework_1 = require("@medusajs/framework");
|
|
6
|
+
const parcel_shipping_1 = require("../../../modules/parcel-shipping");
|
|
7
|
+
const zod_1 = require("zod");
|
|
8
|
+
const CreateBoxSchema = zod_1.z.object({
|
|
9
|
+
name: zod_1.z.string().min(1),
|
|
10
|
+
width_cm: zod_1.z.number().positive(),
|
|
11
|
+
length_cm: zod_1.z.number().positive(),
|
|
12
|
+
height_cm: zod_1.z.number().positive(),
|
|
13
|
+
max_weight_kg: zod_1.z.number().positive(),
|
|
14
|
+
price_thb: zod_1.z.number().nonnegative(),
|
|
15
|
+
active: zod_1.z.boolean().optional().default(true),
|
|
16
|
+
});
|
|
17
|
+
/**
|
|
18
|
+
* GET /admin/boxes
|
|
19
|
+
* List all parcel boxes with optional filters
|
|
20
|
+
*/
|
|
21
|
+
async function GET(req, res) {
|
|
22
|
+
const parcelService = framework_1.container.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
|
|
23
|
+
const { active, name } = req.query;
|
|
24
|
+
const filters = {};
|
|
25
|
+
if (active !== undefined) {
|
|
26
|
+
filters.active = active === "true";
|
|
27
|
+
}
|
|
28
|
+
if (name) {
|
|
29
|
+
filters.name = { $ilike: `%${name}%` };
|
|
30
|
+
}
|
|
31
|
+
const boxes = await parcelService.findBoxes(filters);
|
|
32
|
+
res.json({ boxes });
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* POST /admin/boxes
|
|
36
|
+
* Create a new parcel box
|
|
37
|
+
*/
|
|
38
|
+
async function POST(req, res) {
|
|
39
|
+
const parcelService = framework_1.container.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
|
|
40
|
+
const validated = CreateBoxSchema.parse(req.body);
|
|
41
|
+
const box = await parcelService.createBox(validated);
|
|
42
|
+
res.status(201).json({ box });
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2JveGVzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBbUJBLGtCQWdCQztBQU1ELG9CQU9DO0FBL0NELG1EQUFnRDtBQUNoRCxzRUFBMEU7QUFDMUUsNkJBQXdCO0FBRXhCLE1BQU0sZUFBZSxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDL0IsSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3ZCLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQy9CLFNBQVMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2hDLFNBQVMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2hDLGFBQWEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3BDLFNBQVMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFO0lBQ25DLE1BQU0sRUFBRSxPQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztDQUM3QyxDQUFDLENBQUM7QUFFSDs7O0dBR0c7QUFDSSxLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDL0QsTUFBTSxhQUFhLEdBQVEscUJBQVMsQ0FBQyxPQUFPLENBQUMsd0NBQXNCLENBQUMsQ0FBQztJQUVyRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDbkMsTUFBTSxPQUFPLEdBQVEsRUFBRSxDQUFDO0lBRXhCLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxLQUFLLE1BQU0sQ0FBQztJQUNyQyxDQUFDO0lBQ0QsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNULE9BQU8sQ0FBQyxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLGFBQWEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFckQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7QUFDdEIsQ0FBQztBQUVEOzs7R0FHRztBQUNJLEtBQUssVUFBVSxJQUFJLENBQUMsR0FBa0IsRUFBRSxHQUFtQjtJQUNoRSxNQUFNLGFBQWEsR0FBUSxxQkFBUyxDQUFDLE9BQU8sQ0FBQyx3Q0FBc0IsQ0FBQyxDQUFDO0lBRXJFLE1BQU0sU0FBUyxHQUFHLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xELE1BQU0sR0FBRyxHQUFHLE1BQU0sYUFBYSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUVyRCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7QUFDaEMsQ0FBQyJ9
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = POST;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const distance_calculator_1 = require("../../../common/utils/distance-calculator");
|
|
6
|
+
const AddressSchema = zod_1.z.object({
|
|
7
|
+
address_line_1: zod_1.z.string().optional(), // House number, building, floor
|
|
8
|
+
address_line_2: zod_1.z.string().optional(), // Additional address info
|
|
9
|
+
street: zod_1.z.string().optional(), // Street name (ถนน)
|
|
10
|
+
sub_district: zod_1.z.string().optional(), // Sub-district (ตำบล/แขวง)
|
|
11
|
+
district: zod_1.z.string().optional(), // District (อำเภอ/เขต)
|
|
12
|
+
city: zod_1.z.string().optional(), // City
|
|
13
|
+
province: zod_1.z.string().optional(), // Province (จังหวัด)
|
|
14
|
+
postcode: zod_1.z.string().optional(), // Postal code
|
|
15
|
+
country: zod_1.z.string().optional(),
|
|
16
|
+
});
|
|
17
|
+
const DistanceRequestSchema = zod_1.z.object({
|
|
18
|
+
origin: AddressSchema,
|
|
19
|
+
destination: AddressSchema,
|
|
20
|
+
});
|
|
21
|
+
/**
|
|
22
|
+
* POST /admin/distance
|
|
23
|
+
* Calculate distance between two addresses using OpenStreetMap
|
|
24
|
+
*
|
|
25
|
+
* Request Body:
|
|
26
|
+
* - origin: Origin address with optional components (street, city, province, postcode, country)
|
|
27
|
+
* - destination: Destination address with optional components
|
|
28
|
+
*
|
|
29
|
+
* Returns:
|
|
30
|
+
* - distance_km: Distance in kilometers
|
|
31
|
+
* - duration_minutes: Estimated driving duration in minutes
|
|
32
|
+
* - origin_coordinates: Geocoded coordinates of origin
|
|
33
|
+
* - destination_coordinates: Geocoded coordinates of destination
|
|
34
|
+
*
|
|
35
|
+
* Example:
|
|
36
|
+
* {
|
|
37
|
+
* "origin": {
|
|
38
|
+
* "city": "Bangkok",
|
|
39
|
+
* "province": "Bangkok",
|
|
40
|
+
* "country": "Thailand"
|
|
41
|
+
* },
|
|
42
|
+
* "destination": {
|
|
43
|
+
* "city": "Chiang Mai",
|
|
44
|
+
* "province": "Chiang Mai",
|
|
45
|
+
* "country": "Thailand"
|
|
46
|
+
* }
|
|
47
|
+
* }
|
|
48
|
+
*/
|
|
49
|
+
async function POST(req, res) {
|
|
50
|
+
try {
|
|
51
|
+
const validated = DistanceRequestSchema.parse(req.body);
|
|
52
|
+
const calculator = new distance_calculator_1.DistanceCalculator();
|
|
53
|
+
const result = await calculator.calculateDistance(validated.origin, validated.destination);
|
|
54
|
+
res.json({
|
|
55
|
+
distance_km: result.distance_km,
|
|
56
|
+
duration_minutes: result.duration_minutes,
|
|
57
|
+
origin_coordinates: result.origin_coordinates,
|
|
58
|
+
destination_coordinates: result.destination_coordinates,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
if (error.name === "ZodError") {
|
|
63
|
+
return res.status(400).json({
|
|
64
|
+
code: "invalid_request",
|
|
65
|
+
message: "Invalid request data",
|
|
66
|
+
errors: error.errors,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return res.status(400).json({
|
|
70
|
+
code: error.code || "distance_calculation_failed",
|
|
71
|
+
message: error.message || "Failed to calculate distance",
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2Rpc3RhbmNlL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBaURBLG9CQStCQztBQS9FRCw2QkFBd0I7QUFDeEIsbUZBQStFO0FBRS9FLE1BQU0sYUFBYSxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDN0IsY0FBYyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxnQ0FBZ0M7SUFDdkUsY0FBYyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSwwQkFBMEI7SUFDakUsTUFBTSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxvQkFBb0I7SUFDbkQsWUFBWSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSwyQkFBMkI7SUFDaEUsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSx1QkFBdUI7SUFDeEQsSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPO0lBQ3BDLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUscUJBQXFCO0lBQ3RELFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsY0FBYztJQUMvQyxPQUFPLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUMvQixDQUFDLENBQUM7QUFFSCxNQUFNLHFCQUFxQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDckMsTUFBTSxFQUFFLGFBQWE7SUFDckIsV0FBVyxFQUFFLGFBQWE7Q0FDM0IsQ0FBQyxDQUFDO0FBRUg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUNJLEtBQUssVUFBVSxJQUFJLENBQUMsR0FBa0IsRUFBRSxHQUFtQjtJQUNoRSxJQUFJLENBQUM7UUFDSCxNQUFNLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXhELE1BQU0sVUFBVSxHQUFHLElBQUksd0NBQWtCLEVBQUUsQ0FBQztRQUU1QyxNQUFNLE1BQU0sR0FBRyxNQUFNLFVBQVUsQ0FBQyxpQkFBaUIsQ0FDL0MsU0FBUyxDQUFDLE1BQU0sRUFDaEIsU0FBUyxDQUFDLFdBQVcsQ0FDdEIsQ0FBQztRQUVGLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDUCxXQUFXLEVBQUUsTUFBTSxDQUFDLFdBQVc7WUFDL0IsZ0JBQWdCLEVBQUUsTUFBTSxDQUFDLGdCQUFnQjtZQUN6QyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsa0JBQWtCO1lBQzdDLHVCQUF1QixFQUFFLE1BQU0sQ0FBQyx1QkFBdUI7U0FDeEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sS0FBVSxFQUFFLENBQUM7UUFDcEIsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQzlCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLE9BQU8sRUFBRSxzQkFBc0I7Z0JBQy9CLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTthQUNyQixDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUMxQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSw2QkFBNkI7WUFDakQsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPLElBQUksOEJBQThCO1NBQ3pELENBQUMsQ0FBQztJQUNMLENBQUM7QUFDSCxDQUFDIn0=
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2024 RSC-Labs, https://rsoftcon.com/
|
|
4
|
+
*
|
|
5
|
+
* MIT License
|
|
6
|
+
*
|
|
7
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
8
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
9
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
10
|
+
* See the License for the specific language governing permissions and
|
|
11
|
+
* limitations under the License.
|
|
12
|
+
*/
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.POST = exports.GET = void 0;
|
|
15
|
+
const documents_1 = require("../../../../modules/documents");
|
|
16
|
+
const GET = async (req, res) => {
|
|
17
|
+
const documentsModuleService = req.scope.resolve(documents_1.DOCUMENTS_MODULE);
|
|
18
|
+
try {
|
|
19
|
+
const lastDocumentPackingSlipSettings = await documentsModuleService.listDocumentPackingSlipSettings({}, {
|
|
20
|
+
order: {
|
|
21
|
+
created_at: "DESC",
|
|
22
|
+
},
|
|
23
|
+
take: 1,
|
|
24
|
+
});
|
|
25
|
+
res.status(200).json({
|
|
26
|
+
settings: lastDocumentPackingSlipSettings &&
|
|
27
|
+
lastDocumentPackingSlipSettings.length
|
|
28
|
+
? lastDocumentPackingSlipSettings[0]
|
|
29
|
+
: undefined,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
catch (e) {
|
|
33
|
+
res.status(400).json({
|
|
34
|
+
message: e.message,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
exports.GET = GET;
|
|
39
|
+
const POST = async (req, res) => {
|
|
40
|
+
const body = req.body;
|
|
41
|
+
const formatNumber = body.formatNumber;
|
|
42
|
+
const forcedNumber = body.forcedNumber;
|
|
43
|
+
const template = body.template;
|
|
44
|
+
const documentsModuleService = req.scope.resolve(documents_1.DOCUMENTS_MODULE);
|
|
45
|
+
try {
|
|
46
|
+
const newSettings = await documentsModuleService.updatePackingSlipSettings(formatNumber, forcedNumber, template);
|
|
47
|
+
if (newSettings !== undefined) {
|
|
48
|
+
res.status(201).json({
|
|
49
|
+
settings: newSettings,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
res.status(400).json({
|
|
54
|
+
message: "Cant update invoice settings",
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
catch (e) {
|
|
59
|
+
res.status(400).json({
|
|
60
|
+
message: e.message,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
exports.POST = POST;
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2RvY3VtZW50cy9kb2N1bWVudC1wYWNraW5nLXNsaXAtc2V0dGluZ3Mvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7O0dBVUc7OztBQUlILDZEQUFpRTtBQU8xRCxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQUUsR0FBa0IsRUFBRSxHQUFtQixFQUFFLEVBQUU7SUFDbkUsTUFBTSxzQkFBc0IsR0FDMUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsNEJBQWdCLENBQUMsQ0FBQztJQUV0QyxJQUFJLENBQUM7UUFDSCxNQUFNLCtCQUErQixHQUNuQyxNQUFNLHNCQUFzQixDQUFDLCtCQUErQixDQUMxRCxFQUFFLEVBQ0Y7WUFDRSxLQUFLLEVBQUU7Z0JBQ0wsVUFBVSxFQUFFLE1BQU07YUFDbkI7WUFDRCxJQUFJLEVBQUUsQ0FBQztTQUNSLENBQ0YsQ0FBQztRQUNKLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ25CLFFBQVEsRUFDTiwrQkFBK0I7Z0JBQy9CLCtCQUErQixDQUFDLE1BQU07Z0JBQ3BDLENBQUMsQ0FBQywrQkFBK0IsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLENBQUMsQ0FBQyxTQUFTO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDbkIsT0FBTyxFQUFFLENBQUMsQ0FBQyxPQUFPO1NBQ25CLENBQUMsQ0FBQztJQUNMLENBQUM7QUFDSCxDQUFDLENBQUM7QUEzQlcsUUFBQSxHQUFHLE9BMkJkO0FBRUssTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ3BFLE1BQU0sSUFBSSxHQUFRLEdBQUcsQ0FBQyxJQUFXLENBQUM7SUFDbEMsTUFBTSxZQUFZLEdBQXVCLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0QsTUFBTSxZQUFZLEdBQXVCLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0QsTUFBTSxRQUFRLEdBQXVCLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDbkQsTUFBTSxzQkFBc0IsR0FDMUIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsNEJBQWdCLENBQUMsQ0FBQztJQUV0QyxJQUFJLENBQUM7UUFDSCxNQUFNLFdBQVcsR0FBRyxNQUFNLHNCQUFzQixDQUFDLHlCQUF5QixDQUN4RSxZQUFZLEVBQ1osWUFBWSxFQUNaLFFBQW1DLENBQ3BDLENBQUM7UUFDRixJQUFJLFdBQVcsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUM5QixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDbkIsUUFBUSxFQUFFLFdBQVc7YUFDdEIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDbkIsT0FBTyxFQUFFLDhCQUE4QjthQUN4QyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNuQixPQUFPLEVBQUUsQ0FBQyxDQUFDLE9BQU87U0FDbkIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMsQ0FBQztBQTVCVyxRQUFBLElBQUksUUE0QmYifQ==
|
|
@@ -44,4 +44,4 @@ const GET = async (req, res) => {
|
|
|
44
44
|
}
|
|
45
45
|
};
|
|
46
46
|
exports.GET = GET;
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2RvY3VtZW50cy9wYWNraW5nLXNsaXAvcHJldmlldy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7R0FVRzs7O0FBR0gscURBQXdEO0FBR3hELGdFQUFvRTtBQUVwRSxxREFBb0Q7QUFFN0MsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ25FLE1BQU0sc0JBQXNCLEdBQzFCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLDRCQUFnQixDQUFDLENBQUM7SUFFdEMsTUFBTSxrQkFBa0IsR0FBd0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQy9ELGVBQU8sQ0FBQyxLQUFLLENBQ2QsQ0FBQztJQUVGLE1BQU0sVUFBVSxHQUFlLE1BQU0sa0JBQWtCLENBQUMsVUFBVSxDQUNoRSxFQUFFLEVBQ0Y7UUFDRSxLQUFLLEVBQUU7WUFDTCxVQUFVLEVBQUUsTUFBTTtTQUNuQjtRQUNELElBQUksRUFBRSxDQUFDO1FBQ1AsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLENBQUM7UUFDMUQsU0FBUyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxDQUFDO0tBQzVELENBQ0YsQ0FBQztJQUNGLElBQUksQ0FBQztRQUNILElBQUksVUFBVSxJQUFJLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNwQyxNQUFNLFVBQVUsR0FBRyxHQUFxQixDQUFDO1lBQ3pDLE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDO1lBQy9DLE1BQU0sTUFBTSxHQUFHLE1BQU0sc0JBQXNCLENBQUMsdUJBQXVCLENBQ2pFLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFDYixZQUF1QyxDQUN4QyxDQUFDO1lBQ0YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDL0IsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixvREFBb0QsQ0FDckQsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ25CLE9BQU8sRUFBRSxDQUFDLENBQUMsT0FBTztTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBdkNXLFFBQUEsR0FBRyxPQXVDZCJ9
|
|
@@ -19,7 +19,7 @@ const utils_1 = require("@medusajs/framework/utils");
|
|
|
19
19
|
const documents_1 = require("../../../../modules/documents");
|
|
20
20
|
const utils_2 = require("@medusajs/framework/utils");
|
|
21
21
|
const utils_3 = require("@medusajs/framework/utils");
|
|
22
|
-
const assign_packing_slip_1 = __importDefault(require("
|
|
22
|
+
const assign_packing_slip_1 = __importDefault(require("../../../../workflows/assign-packing-slip"));
|
|
23
23
|
const POST = async (req, res) => {
|
|
24
24
|
const documentsModuleService = req.scope.resolve(documents_1.DOCUMENTS_MODULE);
|
|
25
25
|
const orderModuleService = req.scope.resolve(utils_2.Modules.ORDER);
|
|
@@ -102,4 +102,4 @@ const GET = async (req, res) => {
|
|
|
102
102
|
}
|
|
103
103
|
};
|
|
104
104
|
exports.GET = GET;
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2RvY3VtZW50cy9wYWNraW5nLXNsaXAvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7O0dBVUc7Ozs7OztBQUlILHFEQUF3RDtBQUV4RCw2REFBaUU7QUFDakUscURBQW9EO0FBQ3BELHFEQUFzRTtBQUN0RSxvR0FBeUY7QUFFbEYsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ3BFLE1BQU0sc0JBQXNCLEdBQzFCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLDRCQUFnQixDQUFDLENBQUM7SUFDdEMsTUFBTSxrQkFBa0IsR0FBd0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQy9ELGVBQU8sQ0FBQyxLQUFLLENBQ2QsQ0FBQztJQUVGLElBQUksQ0FBQztRQUNILE1BQU0sSUFBSSxHQUFRLEdBQUcsQ0FBQyxJQUFXLENBQUM7UUFDbEMsTUFBTSxLQUFLLEdBQWEsTUFBTSxrQkFBa0IsQ0FBQyxhQUFhLENBQzVELElBQUksQ0FBQyxRQUFRLEVBQ2I7WUFDRSxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFFLFdBQVcsQ0FBQztZQUMxRCxTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxPQUFPLENBQUM7U0FDNUQsQ0FDRixDQUFDO1FBQ0YsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLE1BQU0sTUFBTSxHQUNWLE1BQU0sc0JBQXNCLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEUsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ3ZCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUss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
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
exports.PUT = PUT;
|
|
5
|
+
exports.DELETE = DELETE;
|
|
6
|
+
const parcel_shipping_1 = require("../../../../modules/parcel-shipping");
|
|
7
|
+
const zod_1 = require("zod");
|
|
8
|
+
const UpdateMaterialCostSchema = zod_1.z.object({
|
|
9
|
+
name: zod_1.z.string().min(1).optional(),
|
|
10
|
+
unit: zod_1.z.string().min(1).optional(),
|
|
11
|
+
cost_per_unit: zod_1.z.number().nonnegative().optional(),
|
|
12
|
+
currency: zod_1.z.string().optional(),
|
|
13
|
+
category: zod_1.z.string().optional(),
|
|
14
|
+
description: zod_1.z.string().optional(),
|
|
15
|
+
active: zod_1.z.boolean().optional(),
|
|
16
|
+
});
|
|
17
|
+
/**
|
|
18
|
+
* GET /admin/material-costs/:id
|
|
19
|
+
* Get a single material cost by ID
|
|
20
|
+
*/
|
|
21
|
+
async function GET(req, res) {
|
|
22
|
+
const parcelService = req.scope.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
|
|
23
|
+
const { id } = req.params;
|
|
24
|
+
const materialCosts = await parcelService.findMaterialCosts({ id });
|
|
25
|
+
if (!materialCosts || materialCosts.length === 0) {
|
|
26
|
+
return res.status(404).json({ message: "Material cost not found" });
|
|
27
|
+
}
|
|
28
|
+
res.json({ material_cost: materialCosts[0] });
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* PUT /admin/material-costs/:id
|
|
32
|
+
* Update a material cost
|
|
33
|
+
*/
|
|
34
|
+
async function PUT(req, res) {
|
|
35
|
+
const parcelService = req.scope.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
|
|
36
|
+
const { id } = req.params;
|
|
37
|
+
const validated = UpdateMaterialCostSchema.parse(req.body);
|
|
38
|
+
const materialCost = await parcelService.updateMaterialCost(id, validated);
|
|
39
|
+
res.json({ material_cost: materialCost });
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* DELETE /admin/material-costs/:id
|
|
43
|
+
* Delete a material cost
|
|
44
|
+
*/
|
|
45
|
+
async function DELETE(req, res) {
|
|
46
|
+
const parcelService = req.scope.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
|
|
47
|
+
const { id } = req.params;
|
|
48
|
+
await parcelService.deleteMaterialCost(id);
|
|
49
|
+
res.status(204).send();
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL21hdGVyaWFsLWNvc3RzL1tpZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFrQkEsa0JBV0M7QUFNRCxrQkFTQztBQU1ELHdCQU9DO0FBeERELHlFQUE2RTtBQUM3RSw2QkFBd0I7QUFFeEIsTUFBTSx3QkFBd0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3hDLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNsQyxJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsYUFBYSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEQsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDL0IsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDL0IsV0FBVyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsTUFBTSxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDL0IsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0ksS0FBSyxVQUFVLEdBQUcsQ0FBQyxHQUFrQixFQUFFLEdBQW1CO0lBQy9ELE1BQU0sYUFBYSxHQUFRLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLHdDQUFzQixDQUFDLENBQUM7SUFDckUsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFFMUIsTUFBTSxhQUFhLEdBQUcsTUFBTSxhQUFhLENBQUMsaUJBQWlCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRXBFLElBQUksQ0FBQyxhQUFhLElBQUksYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNqRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHlCQUF5QixFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRDs7O0dBR0c7QUFDSSxLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDL0QsTUFBTSxhQUFhLEdBQVEsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsd0NBQXNCLENBQUMsQ0FBQztJQUNyRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUUxQixNQUFNLFNBQVMsR0FBRyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTNELE1BQU0sWUFBWSxHQUFHLE1BQU0sYUFBYSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUUzRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUVEOzs7R0FHRztBQUNJLEtBQUssVUFBVSxNQUFNLENBQUMsR0FBa0IsRUFBRSxHQUFtQjtJQUNsRSxNQUFNLGFBQWEsR0FBUSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyx3Q0FBc0IsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBRTFCLE1BQU0sYUFBYSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRTNDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDekIsQ0FBQyJ9
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
exports.POST = POST;
|
|
5
|
+
const parcel_shipping_1 = require("../../../modules/parcel-shipping");
|
|
6
|
+
const zod_1 = require("zod");
|
|
7
|
+
const CreateMaterialCostSchema = zod_1.z.object({
|
|
8
|
+
name: zod_1.z.string().min(1),
|
|
9
|
+
unit: zod_1.z.string().min(1),
|
|
10
|
+
cost_per_unit: zod_1.z.number().nonnegative(),
|
|
11
|
+
currency: zod_1.z.string().optional().default("THB"),
|
|
12
|
+
category: zod_1.z.string().optional(),
|
|
13
|
+
description: zod_1.z.string().optional(),
|
|
14
|
+
active: zod_1.z.boolean().optional().default(true),
|
|
15
|
+
});
|
|
16
|
+
/**
|
|
17
|
+
* GET /admin/material-costs
|
|
18
|
+
* List all material costs with optional filters
|
|
19
|
+
*/
|
|
20
|
+
async function GET(req, res) {
|
|
21
|
+
const parcelService = req.scope.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
|
|
22
|
+
const { active, category, name } = req.query;
|
|
23
|
+
const filters = {};
|
|
24
|
+
if (active !== undefined) {
|
|
25
|
+
filters.active = active === "true";
|
|
26
|
+
}
|
|
27
|
+
if (category) {
|
|
28
|
+
filters.category = category;
|
|
29
|
+
}
|
|
30
|
+
if (name) {
|
|
31
|
+
filters.name = { $ilike: `%${name}%` };
|
|
32
|
+
}
|
|
33
|
+
const materialCosts = await parcelService.findMaterialCosts(filters);
|
|
34
|
+
res.json({ material_costs: materialCosts });
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* POST /admin/material-costs
|
|
38
|
+
* Create a new material cost
|
|
39
|
+
*/
|
|
40
|
+
async function POST(req, res) {
|
|
41
|
+
const parcelService = req.scope.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
|
|
42
|
+
const validated = CreateMaterialCostSchema.parse(req.body);
|
|
43
|
+
const materialCost = await parcelService.createMaterialCost(validated);
|
|
44
|
+
res.status(201).json({ material_cost: materialCost });
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL21hdGVyaWFsLWNvc3RzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBa0JBLGtCQW1CQztBQU1ELG9CQVFDO0FBbERELHNFQUEwRTtBQUMxRSw2QkFBd0I7QUFFeEIsTUFBTSx3QkFBd0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3hDLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2QixJQUFJLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdkIsYUFBYSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUU7SUFDdkMsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzlDLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQy9CLFdBQVcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2xDLE1BQU0sRUFBRSxPQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztDQUM3QyxDQUFDLENBQUM7QUFFSDs7O0dBR0c7QUFDSSxLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDL0QsTUFBTSxhQUFhLEdBQVEsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsd0NBQXNCLENBQUMsQ0FBQztJQUVyRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO0lBRTdDLE1BQU0sT0FBTyxHQUFRLEVBQUUsQ0FBQztJQUN4QixJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN6QixPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sS0FBSyxNQUFNLENBQUM7SUFDckMsQ0FBQztJQUNELElBQUksUUFBUSxFQUFFLENBQUM7UUFDYixPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztJQUM5QixDQUFDO0lBQ0QsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNULE9BQU8sQ0FBQyxJQUFJLEdBQUcsRUFBRSxNQUFNLEVBQUUsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxNQUFNLGFBQWEsR0FBRyxNQUFNLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVyRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUVEOzs7R0FHRztBQUNJLEtBQUssVUFBVSxJQUFJLENBQUMsR0FBa0IsRUFBRSxHQUFtQjtJQUNoRSxNQUFNLGFBQWEsR0FBUSxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyx3Q0FBc0IsQ0FBQyxDQUFDO0lBRXJFLE1BQU0sU0FBUyxHQUFHLHdCQUF3QixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFM0QsTUFBTSxZQUFZLEdBQUcsTUFBTSxhQUFhLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFdkUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLENBQUMsQ0FBQztBQUN4RCxDQUFDIn0=
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
exports.PUT = PUT;
|
|
5
|
+
exports.DELETE = DELETE;
|
|
6
|
+
const framework_1 = require("@medusajs/framework");
|
|
7
|
+
const parcel_shipping_1 = require("../../../../modules/parcel-shipping");
|
|
8
|
+
const zod_1 = require("zod");
|
|
9
|
+
const UpdateMaterialSchema = zod_1.z.object({
|
|
10
|
+
name: zod_1.z.string().min(1).optional(),
|
|
11
|
+
material_type: zod_1.z
|
|
12
|
+
.enum([
|
|
13
|
+
"BUBBLE_WRAP",
|
|
14
|
+
"FOAM_PADDING",
|
|
15
|
+
"VOID_FILL",
|
|
16
|
+
"CORNER_PROTECTOR",
|
|
17
|
+
"FRAGILE_TAPE",
|
|
18
|
+
])
|
|
19
|
+
.optional(),
|
|
20
|
+
cost_per_unit: zod_1.z.number().nonnegative().optional(),
|
|
21
|
+
unit_type: zod_1.z.enum(["PER_ITEM", "PER_KG", "PER_M2", "FLAT"]).optional(),
|
|
22
|
+
currency: zod_1.z.string().optional(),
|
|
23
|
+
active: zod_1.z.boolean().optional(),
|
|
24
|
+
auto_apply_for_fragile: zod_1.z.boolean().optional(),
|
|
25
|
+
auto_apply_for_heavy: zod_1.z.boolean().optional(),
|
|
26
|
+
heavy_threshold_kg: zod_1.z.number().optional(),
|
|
27
|
+
});
|
|
28
|
+
async function GET(req, res) {
|
|
29
|
+
const parcelService = framework_1.container.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
|
|
30
|
+
const { id } = req.params;
|
|
31
|
+
const materials = await parcelService.findPackagingMaterials({ id });
|
|
32
|
+
if (!materials || materials.length === 0) {
|
|
33
|
+
return res.status(404).json({ message: "Packaging material not found" });
|
|
34
|
+
}
|
|
35
|
+
res.json({ packaging_material: materials[0] });
|
|
36
|
+
}
|
|
37
|
+
async function PUT(req, res) {
|
|
38
|
+
const parcelService = framework_1.container.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
|
|
39
|
+
const { id } = req.params;
|
|
40
|
+
const validated = UpdateMaterialSchema.parse(req.body);
|
|
41
|
+
const material = await parcelService.updatePackagingMaterial(id, validated);
|
|
42
|
+
res.json({ packaging_material: material });
|
|
43
|
+
}
|
|
44
|
+
async function DELETE(req, res) {
|
|
45
|
+
const parcelService = framework_1.container.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
|
|
46
|
+
const { id } = req.params;
|
|
47
|
+
await parcelService.deletePackagingMaterial(id);
|
|
48
|
+
res.status(204).send();
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3BhY2thZ2luZy1tYXRlcmlhbHMvW2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXlCQSxrQkFXQztBQUVELGtCQVFDO0FBRUQsd0JBT0M7QUF0REQsbURBQWdEO0FBQ2hELHlFQUE2RTtBQUM3RSw2QkFBd0I7QUFFeEIsTUFBTSxvQkFBb0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3BDLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNsQyxhQUFhLEVBQUUsT0FBQztTQUNiLElBQUksQ0FBQztRQUNKLGFBQWE7UUFDYixjQUFjO1FBQ2QsV0FBVztRQUNYLGtCQUFrQjtRQUNsQixjQUFjO0tBQ2YsQ0FBQztTQUNELFFBQVEsRUFBRTtJQUNiLGFBQWEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2xELFNBQVMsRUFBRSxPQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDdEUsUUFBUSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDL0IsTUFBTSxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDOUIsc0JBQXNCLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM5QyxvQkFBb0IsRUFBRSxPQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzVDLGtCQUFrQixFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDMUMsQ0FBQyxDQUFDO0FBRUksS0FBSyxVQUFVLEdBQUcsQ0FBQyxHQUFrQixFQUFFLEdBQW1CO0lBQy9ELE1BQU0sYUFBYSxHQUFRLHFCQUFTLENBQUMsT0FBTyxDQUFDLHdDQUFzQixDQUFDLENBQUM7SUFDckUsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFFMUIsTUFBTSxTQUFTLEdBQUcsTUFBTSxhQUFhLENBQUMsc0JBQXNCLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRXJFLElBQUksQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6QyxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDakQsQ0FBQztBQUVNLEtBQUssVUFBVSxHQUFHLENBQUMsR0FBa0IsRUFBRSxHQUFtQjtJQUMvRCxNQUFNLGFBQWEsR0FBUSxxQkFBUyxDQUFDLE9BQU8sQ0FBQyx3Q0FBc0IsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBRTFCLE1BQU0sU0FBUyxHQUFHLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkQsTUFBTSxRQUFRLEdBQUcsTUFBTSxhQUFhLENBQUMsdUJBQXVCLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRTVFLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFFTSxLQUFLLFVBQVUsTUFBTSxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDbEUsTUFBTSxhQUFhLEdBQVEscUJBQVMsQ0FBQyxPQUFPLENBQUMsd0NBQXNCLENBQUMsQ0FBQztJQUNyRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUUxQixNQUFNLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUVoRCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQ3pCLENBQUMifQ==
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
exports.POST = POST;
|
|
5
|
+
const framework_1 = require("@medusajs/framework");
|
|
6
|
+
const parcel_shipping_1 = require("../../../modules/parcel-shipping");
|
|
7
|
+
const zod_1 = require("zod");
|
|
8
|
+
const CreateMaterialSchema = zod_1.z.object({
|
|
9
|
+
name: zod_1.z.string().min(1),
|
|
10
|
+
material_type: zod_1.z.enum([
|
|
11
|
+
"BUBBLE_WRAP",
|
|
12
|
+
"FOAM_PADDING",
|
|
13
|
+
"VOID_FILL",
|
|
14
|
+
"CORNER_PROTECTOR",
|
|
15
|
+
"FRAGILE_TAPE",
|
|
16
|
+
]),
|
|
17
|
+
cost_per_unit: zod_1.z.number().nonnegative(),
|
|
18
|
+
unit_type: zod_1.z.enum(["PER_ITEM", "PER_KG", "PER_M2", "FLAT"]),
|
|
19
|
+
currency: zod_1.z.string().optional().default("THB"),
|
|
20
|
+
active: zod_1.z.boolean().optional().default(true),
|
|
21
|
+
auto_apply_for_fragile: zod_1.z.boolean().optional().default(false),
|
|
22
|
+
auto_apply_for_heavy: zod_1.z.boolean().optional().default(false),
|
|
23
|
+
heavy_threshold_kg: zod_1.z.number().optional(),
|
|
24
|
+
});
|
|
25
|
+
/**
|
|
26
|
+
* GET /admin/packaging-materials
|
|
27
|
+
* List all packaging materials with optional filters
|
|
28
|
+
*/
|
|
29
|
+
async function GET(req, res) {
|
|
30
|
+
const parcelService = framework_1.container.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
|
|
31
|
+
const { material_type, active } = req.query;
|
|
32
|
+
const filters = {};
|
|
33
|
+
if (material_type) {
|
|
34
|
+
filters.material_type = material_type;
|
|
35
|
+
}
|
|
36
|
+
if (active !== undefined) {
|
|
37
|
+
filters.active = active === "true";
|
|
38
|
+
}
|
|
39
|
+
const materials = await parcelService.findPackagingMaterials(filters);
|
|
40
|
+
res.json({ packaging_materials: materials });
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* POST /admin/packaging-materials
|
|
44
|
+
* Create a new packaging material
|
|
45
|
+
*/
|
|
46
|
+
async function POST(req, res) {
|
|
47
|
+
const parcelService = framework_1.container.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
|
|
48
|
+
const validated = CreateMaterialSchema.parse(req.body);
|
|
49
|
+
const material = await parcelService.createPackagingMaterial(validated);
|
|
50
|
+
res.status(201).json({ packaging_material: material });
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3BhY2thZ2luZy1tYXRlcmlhbHMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUEyQkEsa0JBZ0JDO0FBTUQsb0JBT0M7QUF2REQsbURBQWdEO0FBQ2hELHNFQUEwRTtBQUMxRSw2QkFBd0I7QUFFeEIsTUFBTSxvQkFBb0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3BDLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN2QixhQUFhLEVBQUUsT0FBQyxDQUFDLElBQUksQ0FBQztRQUNwQixhQUFhO1FBQ2IsY0FBYztRQUNkLFdBQVc7UUFDWCxrQkFBa0I7UUFDbEIsY0FBYztLQUNmLENBQUM7SUFDRixhQUFhLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRTtJQUN2QyxTQUFTLEVBQUUsT0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNELFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUM5QyxNQUFNLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDNUMsc0JBQXNCLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDN0Qsb0JBQW9CLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDM0Qsa0JBQWtCLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUMxQyxDQUFDLENBQUM7QUFFSDs7O0dBR0c7QUFDSSxLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDL0QsTUFBTSxhQUFhLEdBQVEscUJBQVMsQ0FBQyxPQUFPLENBQUMsd0NBQXNCLENBQUMsQ0FBQztJQUVyRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDNUMsTUFBTSxPQUFPLEdBQVEsRUFBRSxDQUFDO0lBRXhCLElBQUksYUFBYSxFQUFFLENBQUM7UUFDbEIsT0FBTyxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7SUFDeEMsQ0FBQztJQUNELElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3pCLE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxLQUFLLE1BQU0sQ0FBQztJQUNyQyxDQUFDO0lBRUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxhQUFhLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFdEUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7QUFDL0MsQ0FBQztBQUVEOzs7R0FHRztBQUNJLEtBQUssVUFBVSxJQUFJLENBQUMsR0FBa0IsRUFBRSxHQUFtQjtJQUNoRSxNQUFNLGFBQWEsR0FBUSxxQkFBUyxDQUFDLE9BQU8sQ0FBQyx3Q0FBc0IsQ0FBQyxDQUFDO0lBRXJFLE1BQU0sU0FBUyxHQUFHLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkQsTUFBTSxRQUFRLEdBQUcsTUFBTSxhQUFhLENBQUMsdUJBQXVCLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFeEUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0FBQ3pELENBQUMifQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
exports.PUT = PUT;
|
|
5
|
+
exports.DELETE = DELETE;
|
|
6
|
+
const framework_1 = require("@medusajs/framework");
|
|
7
|
+
const parcel_shipping_1 = require("../../../../modules/parcel-shipping");
|
|
8
|
+
const zod_1 = require("zod");
|
|
9
|
+
const UpdatePackingPolicySchema = zod_1.z.object({
|
|
10
|
+
no_stack: zod_1.z.boolean().optional(),
|
|
11
|
+
fragile: zod_1.z.boolean().optional(),
|
|
12
|
+
stackable_max_layers: zod_1.z.number().int().min(0).optional(),
|
|
13
|
+
orientation_lock: zod_1.z.string().optional(),
|
|
14
|
+
});
|
|
15
|
+
async function GET(req, res) {
|
|
16
|
+
const parcelService = framework_1.container.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
|
|
17
|
+
const { id } = req.params;
|
|
18
|
+
const policies = await parcelService.findPackingPolicies({ id });
|
|
19
|
+
if (!policies || policies.length === 0) {
|
|
20
|
+
return res.status(404).json({ message: "Packing policy not found" });
|
|
21
|
+
}
|
|
22
|
+
res.json({ packing_policy: policies[0] });
|
|
23
|
+
}
|
|
24
|
+
async function PUT(req, res) {
|
|
25
|
+
const parcelService = framework_1.container.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
|
|
26
|
+
const { id } = req.params;
|
|
27
|
+
const validated = UpdatePackingPolicySchema.parse(req.body);
|
|
28
|
+
// Validation: If no_stack is being set to true, force stackable_max_layers = 1
|
|
29
|
+
if (validated.no_stack) {
|
|
30
|
+
validated.stackable_max_layers = 1;
|
|
31
|
+
}
|
|
32
|
+
const policy = await parcelService.updatePackingPolicy(id, validated);
|
|
33
|
+
res.json({ packing_policy: policy });
|
|
34
|
+
}
|
|
35
|
+
async function DELETE(req, res) {
|
|
36
|
+
const parcelService = framework_1.container.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
|
|
37
|
+
const { id } = req.params;
|
|
38
|
+
await parcelService.deletePackingPolicy(id);
|
|
39
|
+
res.status(204).send();
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3BhY2tpbmctcG9saWNpZXMvW2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVlBLGtCQVdDO0FBRUQsa0JBY0M7QUFFRCx3QkFPQztBQS9DRCxtREFBZ0Q7QUFDaEQseUVBQTZFO0FBQzdFLDZCQUF3QjtBQUV4QixNQUFNLHlCQUF5QixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDekMsUUFBUSxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDaEMsT0FBTyxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDL0Isb0JBQW9CLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDeEQsZ0JBQWdCLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUN4QyxDQUFDLENBQUM7QUFFSSxLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDL0QsTUFBTSxhQUFhLEdBQVEscUJBQVMsQ0FBQyxPQUFPLENBQUMsd0NBQXNCLENBQUMsQ0FBQztJQUNyRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUUxQixNQUFNLFFBQVEsR0FBRyxNQUFNLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFFakUsSUFBSSxDQUFDLFFBQVEsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsY0FBYyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUVNLEtBQUssVUFBVSxHQUFHLENBQUMsR0FBa0IsRUFBRSxHQUFtQjtJQUMvRCxNQUFNLGFBQWEsR0FBUSxxQkFBUyxDQUFDLE9BQU8sQ0FBQyx3Q0FBc0IsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBRTFCLE1BQU0sU0FBUyxHQUFHLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFNUQsK0VBQStFO0lBQy9FLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZCLFNBQVMsQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sYUFBYSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztJQUV0RSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUVNLEtBQUssVUFBVSxNQUFNLENBQUMsR0FBa0IsRUFBRSxHQUFtQjtJQUNsRSxNQUFNLGFBQWEsR0FBUSxxQkFBUyxDQUFDLE9BQU8sQ0FBQyx3Q0FBc0IsQ0FBQyxDQUFDO0lBQ3JFLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBRTFCLE1BQU0sYUFBYSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBRTVDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7QUFDekIsQ0FBQyJ9
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
exports.POST = POST;
|
|
5
|
+
const framework_1 = require("@medusajs/framework");
|
|
6
|
+
const parcel_shipping_1 = require("../../../modules/parcel-shipping");
|
|
7
|
+
const zod_1 = require("zod");
|
|
8
|
+
const CreatePackingPolicySchema = zod_1.z.object({
|
|
9
|
+
product_id: zod_1.z.string().min(1),
|
|
10
|
+
no_stack: zod_1.z.boolean().optional().default(false),
|
|
11
|
+
fragile: zod_1.z.boolean().optional().default(false),
|
|
12
|
+
stackable_max_layers: zod_1.z.number().int().min(0).optional().default(0), // 0 = unlimited
|
|
13
|
+
orientation_lock: zod_1.z.string().optional(),
|
|
14
|
+
});
|
|
15
|
+
/**
|
|
16
|
+
* GET /admin/packing-policies
|
|
17
|
+
* List all packing policies with optional filters
|
|
18
|
+
*/
|
|
19
|
+
async function GET(req, res) {
|
|
20
|
+
const parcelService = framework_1.container.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
|
|
21
|
+
const { product_id } = req.query;
|
|
22
|
+
const filters = {};
|
|
23
|
+
if (product_id) {
|
|
24
|
+
filters.product_id = product_id;
|
|
25
|
+
}
|
|
26
|
+
const policies = await parcelService.findPackingPolicies(filters);
|
|
27
|
+
res.json({ packing_policies: policies });
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* POST /admin/packing-policies
|
|
31
|
+
* Create a new packing policy
|
|
32
|
+
*/
|
|
33
|
+
async function POST(req, res) {
|
|
34
|
+
const parcelService = framework_1.container.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
|
|
35
|
+
const validated = CreatePackingPolicySchema.parse(req.body);
|
|
36
|
+
// Validation: If no_stack is true, force stackable_max_layers = 1
|
|
37
|
+
if (validated.no_stack) {
|
|
38
|
+
validated.stackable_max_layers = 1;
|
|
39
|
+
}
|
|
40
|
+
const policy = await parcelService.createPackingPolicy(validated);
|
|
41
|
+
res.status(201).json({ packing_policy: policy });
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3BhY2tpbmctcG9saWNpZXMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFpQkEsa0JBYUM7QUFNRCxvQkFhQztBQWhERCxtREFBZ0Q7QUFDaEQsc0VBQTBFO0FBQzFFLDZCQUF3QjtBQUV4QixNQUFNLHlCQUF5QixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDekMsVUFBVSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzdCLFFBQVEsRUFBRSxPQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztJQUMvQyxPQUFPLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDOUMsb0JBQW9CLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCO0lBQ3JGLGdCQUFnQixFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDeEMsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0ksS0FBSyxVQUFVLEdBQUcsQ0FBQyxHQUFrQixFQUFFLEdBQW1CO0lBQy9ELE1BQU0sYUFBYSxHQUFRLHFCQUFTLENBQUMsT0FBTyxDQUFDLHdDQUFzQixDQUFDLENBQUM7SUFFckUsTUFBTSxFQUFFLFVBQVUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7SUFDakMsTUFBTSxPQUFPLEdBQVEsRUFBRSxDQUFDO0lBRXhCLElBQUksVUFBVSxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsTUFBTSxhQUFhLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFbEUsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQUVEOzs7R0FHRztBQUNJLEtBQUssVUFBVSxJQUFJLENBQUMsR0FBa0IsRUFBRSxHQUFtQjtJQUNoRSxNQUFNLGFBQWEsR0FBUSxxQkFBUyxDQUFDLE9BQU8sQ0FBQyx3Q0FBc0IsQ0FBQyxDQUFDO0lBRXJFLE1BQU0sU0FBUyxHQUFHLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFNUQsa0VBQWtFO0lBQ2xFLElBQUksU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZCLFNBQVMsQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFHLE1BQU0sYUFBYSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRWxFLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7QUFDbkQsQ0FBQyJ9
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DELETE = exports.PUT = exports.GET = void 0;
|
|
4
|
+
var route_1 = require("../../shipping-rates/[id]/route");
|
|
5
|
+
Object.defineProperty(exports, "GET", { enumerable: true, get: function () { return route_1.GET; } });
|
|
6
|
+
Object.defineProperty(exports, "PUT", { enumerable: true, get: function () { return route_1.PUT; } });
|
|
7
|
+
Object.defineProperty(exports, "DELETE", { enumerable: true, get: function () { return route_1.DELETE; } });
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3JhdGVzL1tpZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseURBQW1FO0FBQTFELDRGQUFBLEdBQUcsT0FBQTtBQUFFLDRGQUFBLEdBQUcsT0FBQTtBQUFFLCtGQUFBLE1BQU0sT0FBQSJ9
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.POST = exports.GET = void 0;
|
|
4
|
+
var route_1 = require("../shipping-rates/route");
|
|
5
|
+
Object.defineProperty(exports, "GET", { enumerable: true, get: function () { return route_1.GET; } });
|
|
6
|
+
Object.defineProperty(exports, "POST", { enumerable: true, get: function () { return route_1.POST; } });
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3JhdGVzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlEQUFvRDtBQUEzQyw0RkFBQSxHQUFHLE9BQUE7QUFBRSw2RkFBQSxJQUFJLE9BQUEifQ==
|