@lodashventure/medusa-parcel-shipping 0.0.3

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.
Files changed (22) hide show
  1. package/.medusa/server/src/admin/index.js +1165 -0
  2. package/.medusa/server/src/admin/index.mjs +1166 -0
  3. package/.medusa/server/src/api/admin/parcel-boxes/[id]/route.js +47 -0
  4. package/.medusa/server/src/api/admin/parcel-boxes/route.js +48 -0
  5. package/.medusa/server/src/api/admin/shipping-config/areas/[id]/route.js +44 -0
  6. package/.medusa/server/src/api/admin/shipping-config/areas/route.js +48 -0
  7. package/.medusa/server/src/api/admin/shipping-config/rates/[id]/route.js +53 -0
  8. package/.medusa/server/src/api/admin/shipping-config/rates/route.js +55 -0
  9. package/.medusa/server/src/api/store/parcel-box-selector/route.js +53 -0
  10. package/.medusa/server/src/index.js +24 -0
  11. package/.medusa/server/src/modules/parcel-shipping/index.js +28 -0
  12. package/.medusa/server/src/modules/parcel-shipping/migrations/Migration20251015120000.js +70 -0
  13. package/.medusa/server/src/modules/parcel-shipping/models/parcel-box.js +21 -0
  14. package/.medusa/server/src/modules/parcel-shipping/models/service-area.js +20 -0
  15. package/.medusa/server/src/modules/parcel-shipping/models/shipping-rate.js +20 -0
  16. package/.medusa/server/src/modules/parcel-shipping/service.js +172 -0
  17. package/.medusa/server/src/modules/parcel-shipping/types.js +3 -0
  18. package/.medusa/server/src/modules/parcel-shipping/utils/packing.js +319 -0
  19. package/.medusa/server/src/providers/company-truck/index.js +19 -0
  20. package/.medusa/server/src/providers/parcel-fulfillment-base.js +180 -0
  21. package/.medusa/server/src/providers/private-carrier/index.js +19 -0
  22. package/package.json +81 -0
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PUT = PUT;
4
+ exports.DELETE = DELETE;
5
+ const parcel_shipping_1 = require("../../../../modules/parcel-shipping");
6
+ const zod_1 = require("zod");
7
+ const updateBoxSchema = zod_1.z.object({
8
+ name: zod_1.z.string().min(1).optional(),
9
+ width_cm: zod_1.z.number().positive().optional(),
10
+ length_cm: zod_1.z.number().positive().optional(),
11
+ height_cm: zod_1.z.number().positive().optional(),
12
+ max_weight_kg: zod_1.z.number().positive().optional(),
13
+ price_thb: zod_1.z.number().nonnegative().optional(),
14
+ active: zod_1.z.boolean().optional(),
15
+ });
16
+ async function PUT(req, res) {
17
+ const { id } = req.params;
18
+ const moduleService = req.scope.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
19
+ try {
20
+ const payload = updateBoxSchema.parse(req.body);
21
+ const updated = await moduleService.updateParcelBoxes([
22
+ {
23
+ id,
24
+ ...payload,
25
+ },
26
+ ]);
27
+ moduleService.invalidateCache(["boxes"]);
28
+ res.status(200).json({ box: updated[0] });
29
+ }
30
+ catch (error) {
31
+ if (error instanceof zod_1.ZodError) {
32
+ return res.status(400).json({
33
+ code: "invalid_payload",
34
+ issues: error.issues,
35
+ });
36
+ }
37
+ throw error;
38
+ }
39
+ }
40
+ async function DELETE(req, res) {
41
+ const { id } = req.params;
42
+ const moduleService = req.scope.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
43
+ await moduleService.deleteParcelBoxes([id]);
44
+ moduleService.invalidateCache(["boxes"]);
45
+ res.status(204).send();
46
+ }
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3BhcmNlbC1ib3hlcy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZUEsa0JBZ0NDO0FBRUQsd0JBYUM7QUE1REQseUVBQTRFO0FBQzVFLDZCQUFpQztBQUVqQyxNQUFNLGVBQWUsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQy9CLElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNsQyxRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMxQyxTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQyxTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQyxhQUFhLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMvQyxTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM5QyxNQUFNLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRTtDQUMvQixDQUFDLENBQUE7QUFFSyxLQUFLLFVBQVUsR0FBRyxDQUN2QixHQUFrQixFQUNsQixHQUFtQjtJQUVuQixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUN6QixNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDckMsd0NBQXNCLENBQ1EsQ0FBQTtJQUVoQyxJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUUvQyxNQUFNLE9BQU8sR0FBRyxNQUFNLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztZQUNwRDtnQkFDRSxFQUFFO2dCQUNGLEdBQUcsT0FBTzthQUNYO1NBQ0YsQ0FBQyxDQUFBO1FBRUYsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7UUFFeEMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLElBQUksS0FBSyxZQUFZLGNBQVEsRUFBRSxDQUFDO1lBQzlCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTthQUNyQixDQUFDLENBQUE7UUFDSixDQUFDO1FBRUQsTUFBTSxLQUFLLENBQUE7SUFDYixDQUFDO0FBQ0gsQ0FBQztBQUVNLEtBQUssVUFBVSxNQUFNLENBQzFCLEdBQWtCLEVBQ2xCLEdBQW1CO0lBRW5CLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBQ3pCLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUNyQyx3Q0FBc0IsQ0FDUSxDQUFBO0lBRWhDLE1BQU0sYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUMzQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtJQUV4QyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO0FBQ3hCLENBQUMifQ==
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ exports.POST = POST;
5
+ const zod_1 = require("zod");
6
+ const parcel_shipping_1 = require("../../../modules/parcel-shipping");
7
+ const createBoxSchema = zod_1.z.object({
8
+ name: zod_1.z.string().min(1),
9
+ width_cm: zod_1.z.number().positive(),
10
+ length_cm: zod_1.z.number().positive(),
11
+ height_cm: zod_1.z.number().positive(),
12
+ max_weight_kg: zod_1.z.number().positive(),
13
+ price_thb: zod_1.z.number().nonnegative(),
14
+ active: zod_1.z.boolean().optional().default(true),
15
+ });
16
+ async function GET(req, res) {
17
+ const moduleService = req.scope.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
18
+ const filters = {};
19
+ const { active } = req.query;
20
+ if (typeof active === "string") {
21
+ filters.active = active === "true";
22
+ }
23
+ const boxes = await moduleService.listParcelBoxes(filters, {
24
+ order: { name: "ASC" },
25
+ });
26
+ res.status(200).json({ boxes });
27
+ }
28
+ async function POST(req, res) {
29
+ const moduleService = req.scope.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
30
+ try {
31
+ const payload = createBoxSchema.parse(req.body);
32
+ const created = await moduleService.createParcelBoxes([
33
+ payload,
34
+ ]);
35
+ moduleService.invalidateCache(["boxes"]);
36
+ res.status(201).json({ box: created[0] });
37
+ }
38
+ catch (error) {
39
+ if (error instanceof zod_1.ZodError) {
40
+ return res.status(400).json({
41
+ code: "invalid_payload",
42
+ issues: error.issues,
43
+ });
44
+ }
45
+ throw error;
46
+ }
47
+ }
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3BhcmNlbC1ib3hlcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWVBLGtCQXVCQztBQUVELG9CQTRCQztBQW5FRCw2QkFBaUM7QUFFakMsc0VBQXlFO0FBRXpFLE1BQU0sZUFBZSxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDL0IsSUFBSSxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3ZCLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQy9CLFNBQVMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2hDLFNBQVMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2hDLGFBQWEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3BDLFNBQVMsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFO0lBQ25DLE1BQU0sRUFBRSxPQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztDQUM3QyxDQUFDLENBQUE7QUFFSyxLQUFLLFVBQVUsR0FBRyxDQUN2QixHQUFrQixFQUNsQixHQUFtQjtJQUVuQixNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDckMsd0NBQXNCLENBQ1EsQ0FBQTtJQUVoQyxNQUFNLE9BQU8sR0FBNEIsRUFBRSxDQUFBO0lBQzNDLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFBO0lBRTVCLElBQUksT0FBTyxNQUFNLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDL0IsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLEtBQUssTUFBTSxDQUFBO0lBQ3BDLENBQUM7SUFFRCxNQUFNLEtBQUssR0FBRyxNQUFNLGFBQWEsQ0FBQyxlQUFlLENBQy9DLE9BQU8sRUFDUDtRQUNFLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUU7S0FDdkIsQ0FDRixDQUFBO0lBRUQsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO0FBQ2pDLENBQUM7QUFFTSxLQUFLLFVBQVUsSUFBSSxDQUN4QixHQUFrQixFQUNsQixHQUFtQjtJQUVuQixNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDckMsd0NBQXNCLENBQ1EsQ0FBQTtJQUVoQyxJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUUvQyxNQUFNLE9BQU8sR0FBRyxNQUFNLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztZQUNwRCxPQUFPO1NBQ1IsQ0FBQyxDQUFBO1FBRUYsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7UUFFeEMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLElBQUksS0FBSyxZQUFZLGNBQVEsRUFBRSxDQUFDO1lBQzlCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTthQUNyQixDQUFDLENBQUE7UUFDSixDQUFDO1FBRUQsTUFBTSxLQUFLLENBQUE7SUFDYixDQUFDO0FBQ0gsQ0FBQyJ9
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PUT = PUT;
4
+ exports.DELETE = DELETE;
5
+ const zod_1 = require("zod");
6
+ const parcel_shipping_1 = require("../../../../../modules/parcel-shipping");
7
+ const kindEnum = zod_1.z.enum(["PROVINCE", "POSTCODE_PREFIX"]);
8
+ const updateAreaSchema = zod_1.z.object({
9
+ kind: kindEnum.optional(),
10
+ value: zod_1.z.string().min(1).optional(),
11
+ active: zod_1.z.boolean().optional(),
12
+ });
13
+ async function PUT(req, res) {
14
+ const { id } = req.params;
15
+ const moduleService = req.scope.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
16
+ try {
17
+ const payload = updateAreaSchema.parse(req.body);
18
+ const updated = await moduleService.updateServiceAreas([
19
+ {
20
+ id,
21
+ ...payload,
22
+ },
23
+ ]);
24
+ moduleService.invalidateCache(["areas"]);
25
+ res.status(200).json({ area: updated[0] });
26
+ }
27
+ catch (error) {
28
+ if (error instanceof zod_1.ZodError) {
29
+ return res.status(400).json({
30
+ code: "invalid_payload",
31
+ issues: error.issues,
32
+ });
33
+ }
34
+ throw error;
35
+ }
36
+ }
37
+ async function DELETE(req, res) {
38
+ const { id } = req.params;
39
+ const moduleService = req.scope.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
40
+ await moduleService.deleteServiceAreas([id]);
41
+ moduleService.invalidateCache(["areas"]);
42
+ res.status(204).send();
43
+ }
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3NoaXBwaW5nLWNvbmZpZy9hcmVhcy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBYUEsa0JBZ0NDO0FBRUQsd0JBYUM7QUEzREQsNkJBQWlDO0FBRWpDLDRFQUErRTtBQUUvRSxNQUFNLFFBQVEsR0FBRyxPQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQTtBQUV4RCxNQUFNLGdCQUFnQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDaEMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUU7SUFDekIsS0FBSyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ25DLE1BQU0sRUFBRSxPQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQy9CLENBQUMsQ0FBQTtBQUVLLEtBQUssVUFBVSxHQUFHLENBQ3ZCLEdBQWtCLEVBQ2xCLEdBQW1CO0lBRW5CLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFBO0lBQ3pCLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUNyQyx3Q0FBc0IsQ0FDUSxDQUFBO0lBRWhDLElBQUksQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFaEQsTUFBTSxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUMsa0JBQWtCLENBQUM7WUFDckQ7Z0JBQ0UsRUFBRTtnQkFDRixHQUFHLE9BQU87YUFDWDtTQUNGLENBQUMsQ0FBQTtRQUVGLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBRXhDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFJLEtBQUssWUFBWSxjQUFRLEVBQUUsQ0FBQztZQUM5QixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUMxQixJQUFJLEVBQUUsaUJBQWlCO2dCQUN2QixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07YUFDckIsQ0FBQyxDQUFBO1FBQ0osQ0FBQztRQUVELE1BQU0sS0FBSyxDQUFBO0lBQ2IsQ0FBQztBQUNILENBQUM7QUFFTSxLQUFLLFVBQVUsTUFBTSxDQUMxQixHQUFrQixFQUNsQixHQUFtQjtJQUVuQixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUN6QixNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDckMsd0NBQXNCLENBQ1EsQ0FBQTtJQUVoQyxNQUFNLGFBQWEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDNUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFFeEMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtBQUN4QixDQUFDIn0=
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ exports.POST = POST;
5
+ const zod_1 = require("zod");
6
+ const parcel_shipping_1 = require("../../../../modules/parcel-shipping");
7
+ const kindEnum = zod_1.z.enum(["PROVINCE", "POSTCODE_PREFIX"]);
8
+ const createAreaSchema = zod_1.z.object({
9
+ kind: kindEnum,
10
+ value: zod_1.z.string().min(1),
11
+ active: zod_1.z.boolean().optional().default(true),
12
+ });
13
+ async function GET(req, res) {
14
+ const moduleService = req.scope.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
15
+ const filters = {};
16
+ const { kind, active } = req.query;
17
+ if (typeof kind === "string" && kindEnum.safeParse(kind).success) {
18
+ filters.kind = kind;
19
+ }
20
+ if (typeof active === "string") {
21
+ filters.active = active === "true";
22
+ }
23
+ const areas = await moduleService.listServiceAreas(filters, {
24
+ order: { kind: "ASC", value: "ASC" },
25
+ });
26
+ res.status(200).json({ areas });
27
+ }
28
+ async function POST(req, res) {
29
+ const moduleService = req.scope.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
30
+ try {
31
+ const payload = createAreaSchema.parse(req.body);
32
+ const created = await moduleService.createServiceAreas([
33
+ payload,
34
+ ]);
35
+ moduleService.invalidateCache(["areas"]);
36
+ res.status(201).json({ area: created[0] });
37
+ }
38
+ catch (error) {
39
+ if (error instanceof zod_1.ZodError) {
40
+ return res.status(400).json({
41
+ code: "invalid_payload",
42
+ issues: error.issues,
43
+ });
44
+ }
45
+ throw error;
46
+ }
47
+ }
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3NoaXBwaW5nLWNvbmZpZy9hcmVhcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWFBLGtCQXdCQztBQUVELG9CQTRCQztBQWxFRCw2QkFBaUM7QUFFakMseUVBQTRFO0FBRTVFLE1BQU0sUUFBUSxHQUFHLE9BQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFBO0FBRXhELE1BQU0sZ0JBQWdCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNoQyxJQUFJLEVBQUUsUUFBUTtJQUNkLEtBQUssRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN4QixNQUFNLEVBQUUsT0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Q0FDN0MsQ0FBQyxDQUFBO0FBRUssS0FBSyxVQUFVLEdBQUcsQ0FDdkIsR0FBa0IsRUFDbEIsR0FBbUI7SUFFbkIsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQ3JDLHdDQUFzQixDQUNRLENBQUE7SUFFaEMsTUFBTSxPQUFPLEdBQTRCLEVBQUUsQ0FBQTtJQUMzQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUE7SUFFbEMsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksUUFBUSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNqRSxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQTtJQUNyQixDQUFDO0lBRUQsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztRQUMvQixPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sS0FBSyxNQUFNLENBQUE7SUFDcEMsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUFHLE1BQU0sYUFBYSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRTtRQUMxRCxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUU7S0FDckMsQ0FBQyxDQUFBO0lBRUYsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFBO0FBQ2pDLENBQUM7QUFFTSxLQUFLLFVBQVUsSUFBSSxDQUN4QixHQUFrQixFQUNsQixHQUFtQjtJQUVuQixNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDckMsd0NBQXNCLENBQ1EsQ0FBQTtJQUVoQyxJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBRWhELE1BQU0sT0FBTyxHQUFHLE1BQU0sYUFBYSxDQUFDLGtCQUFrQixDQUFDO1lBQ3JELE9BQU87U0FDUixDQUFDLENBQUE7UUFFRixhQUFhLENBQUMsZUFBZSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQTtRQUV4QyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQzVDLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsSUFBSSxLQUFLLFlBQVksY0FBUSxFQUFFLENBQUM7WUFDOUIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDMUIsSUFBSSxFQUFFLGlCQUFpQjtnQkFDdkIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO2FBQ3JCLENBQUMsQ0FBQTtRQUNKLENBQUM7UUFFRCxNQUFNLEtBQUssQ0FBQTtJQUNiLENBQUM7QUFDSCxDQUFDIn0=
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PUT = PUT;
4
+ exports.DELETE = DELETE;
5
+ const zod_1 = require("zod");
6
+ const utils_1 = require("@medusajs/framework/utils");
7
+ const parcel_shipping_1 = require("../../../../../modules/parcel-shipping");
8
+ const carrierEnum = zod_1.z.enum(["COMPANY_TRUCK", "PRIVATE_CARRIER"]);
9
+ const updateRateSchema = zod_1.z.object({
10
+ carrier: carrierEnum.optional(),
11
+ min_weight_kg: zod_1.z.number().nonnegative().optional(),
12
+ max_weight_kg: zod_1.z.number().positive().optional(),
13
+ price_thb: zod_1.z.number().nonnegative().optional(),
14
+ currency: zod_1.z.string().min(1).optional(),
15
+ active: zod_1.z.boolean().optional(),
16
+ });
17
+ async function PUT(req, res) {
18
+ const { id } = req.params;
19
+ const moduleService = req.scope.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
20
+ try {
21
+ const payload = updateRateSchema.parse(req.body);
22
+ if (payload.max_weight_kg !== undefined &&
23
+ payload.min_weight_kg !== undefined &&
24
+ payload.max_weight_kg <= payload.min_weight_kg) {
25
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "max_weight_kg must be greater than min_weight_kg");
26
+ }
27
+ const updated = await moduleService.updateShippingRates([
28
+ {
29
+ id,
30
+ ...payload,
31
+ },
32
+ ]);
33
+ moduleService.invalidateCache(["rates"]);
34
+ res.status(200).json({ rate: updated[0] });
35
+ }
36
+ catch (error) {
37
+ if (error instanceof zod_1.ZodError) {
38
+ return res.status(400).json({
39
+ code: "invalid_payload",
40
+ issues: error.issues,
41
+ });
42
+ }
43
+ throw error;
44
+ }
45
+ }
46
+ async function DELETE(req, res) {
47
+ const { id } = req.params;
48
+ const moduleService = req.scope.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
49
+ await moduleService.deleteShippingRates([id]);
50
+ moduleService.invalidateCache(["rates"]);
51
+ res.status(204).send();
52
+ }
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3NoaXBwaW5nLWNvbmZpZy9yYXRlcy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBaUJBLGtCQTJDQztBQUVELHdCQWFDO0FBMUVELDZCQUFpQztBQUNqQyxxREFBdUQ7QUFFdkQsNEVBQStFO0FBRS9FLE1BQU0sV0FBVyxHQUFHLE9BQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFBO0FBRWhFLE1BQU0sZ0JBQWdCLEdBQUcsT0FBQyxDQUFDLE1BQU0sQ0FBQztJQUNoQyxPQUFPLEVBQUUsV0FBVyxDQUFDLFFBQVEsRUFBRTtJQUMvQixhQUFhLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNsRCxhQUFhLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMvQyxTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM5QyxRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDdEMsTUFBTSxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDL0IsQ0FBQyxDQUFBO0FBRUssS0FBSyxVQUFVLEdBQUcsQ0FDdkIsR0FBa0IsRUFDbEIsR0FBbUI7SUFFbkIsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUE7SUFDekIsTUFBTSxhQUFhLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQ3JDLHdDQUFzQixDQUNRLENBQUE7SUFFaEMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUVoRCxJQUNFLE9BQU8sQ0FBQyxhQUFhLEtBQUssU0FBUztZQUNuQyxPQUFPLENBQUMsYUFBYSxLQUFLLFNBQVM7WUFDbkMsT0FBTyxDQUFDLGFBQWEsSUFBSSxPQUFPLENBQUMsYUFBYSxFQUM5QyxDQUFDO1lBQ0QsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsa0RBQWtELENBQ25ELENBQUE7UUFDSCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxhQUFhLENBQUMsbUJBQW1CLENBQUM7WUFDdEQ7Z0JBQ0UsRUFBRTtnQkFDRixHQUFHLE9BQU87YUFDWDtTQUNGLENBQUMsQ0FBQTtRQUVGLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBRXhDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDNUMsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFJLEtBQUssWUFBWSxjQUFRLEVBQUUsQ0FBQztZQUM5QixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUMxQixJQUFJLEVBQUUsaUJBQWlCO2dCQUN2QixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07YUFDckIsQ0FBQyxDQUFBO1FBQ0osQ0FBQztRQUVELE1BQU0sS0FBSyxDQUFBO0lBQ2IsQ0FBQztBQUNILENBQUM7QUFFTSxLQUFLLFVBQVUsTUFBTSxDQUMxQixHQUFrQixFQUNsQixHQUFtQjtJQUVuQixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUN6QixNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDckMsd0NBQXNCLENBQ1EsQ0FBQTtJQUVoQyxNQUFNLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUE7SUFDN0MsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7SUFFeEMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtBQUN4QixDQUFDIn0=
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ exports.POST = POST;
5
+ const zod_1 = require("zod");
6
+ const parcel_shipping_1 = require("../../../../modules/parcel-shipping");
7
+ const utils_1 = require("@medusajs/framework/utils");
8
+ const carrierEnum = zod_1.z.enum(["COMPANY_TRUCK", "PRIVATE_CARRIER"]);
9
+ const createRateSchema = zod_1.z.object({
10
+ carrier: carrierEnum,
11
+ min_weight_kg: zod_1.z.number().nonnegative().default(0),
12
+ max_weight_kg: zod_1.z.number().positive(),
13
+ price_thb: zod_1.z.number().nonnegative(),
14
+ currency: zod_1.z.string().min(1).default("THB"),
15
+ active: zod_1.z.boolean().optional().default(true),
16
+ });
17
+ async function GET(req, res) {
18
+ const moduleService = req.scope.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
19
+ const filters = {};
20
+ const { carrier, active } = req.query;
21
+ if (typeof carrier === "string" && carrierEnum.safeParse(carrier).success) {
22
+ filters.carrier = carrier;
23
+ }
24
+ if (typeof active === "string") {
25
+ filters.active = active === "true";
26
+ }
27
+ const rates = await moduleService.listShippingRates(filters, {
28
+ order: { carrier: "ASC", max_weight_kg: "ASC" },
29
+ });
30
+ res.status(200).json({ rates });
31
+ }
32
+ async function POST(req, res) {
33
+ const moduleService = req.scope.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
34
+ try {
35
+ const payload = createRateSchema.parse(req.body);
36
+ if (payload.max_weight_kg <= payload.min_weight_kg) {
37
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "max_weight_kg must be greater than min_weight_kg");
38
+ }
39
+ const created = await moduleService.createShippingRates([
40
+ payload,
41
+ ]);
42
+ moduleService.invalidateCache(["rates"]);
43
+ res.status(201).json({ rate: created[0] });
44
+ }
45
+ catch (error) {
46
+ if (error instanceof zod_1.ZodError) {
47
+ return res.status(400).json({
48
+ code: "invalid_payload",
49
+ issues: error.issues,
50
+ });
51
+ }
52
+ throw error;
53
+ }
54
+ }
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3NoaXBwaW5nLWNvbmZpZy9yYXRlcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSxrQkF3QkM7QUFFRCxvQkFtQ0M7QUE3RUQsNkJBQWlDO0FBRWpDLHlFQUE0RTtBQUM1RSxxREFBdUQ7QUFFdkQsTUFBTSxXQUFXLEdBQUcsT0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUE7QUFFaEUsTUFBTSxnQkFBZ0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2hDLE9BQU8sRUFBRSxXQUFXO0lBQ3BCLGFBQWEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNsRCxhQUFhLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNwQyxTQUFTLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLFdBQVcsRUFBRTtJQUNuQyxRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQzFDLE1BQU0sRUFBRSxPQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztDQUM3QyxDQUFDLENBQUE7QUFFSyxLQUFLLFVBQVUsR0FBRyxDQUN2QixHQUFrQixFQUNsQixHQUFtQjtJQUVuQixNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDckMsd0NBQXNCLENBQ1EsQ0FBQTtJQUVoQyxNQUFNLE9BQU8sR0FBNEIsRUFBRSxDQUFBO0lBQzNDLE1BQU0sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQTtJQUVyQyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVEsSUFBSSxXQUFXLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzFFLE9BQU8sQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFBO0lBQzNCLENBQUM7SUFFRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQy9CLE9BQU8sQ0FBQyxNQUFNLEdBQUcsTUFBTSxLQUFLLE1BQU0sQ0FBQTtJQUNwQyxDQUFDO0lBRUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxhQUFhLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFO1FBQzNELEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRTtLQUNoRCxDQUFDLENBQUE7SUFFRixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUE7QUFDakMsQ0FBQztBQUVNLEtBQUssVUFBVSxJQUFJLENBQ3hCLEdBQWtCLEVBQ2xCLEdBQW1CO0lBRW5CLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUNyQyx3Q0FBc0IsQ0FDUSxDQUFBO0lBRWhDLElBQUksQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFaEQsSUFBSSxPQUFPLENBQUMsYUFBYSxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNuRCxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixrREFBa0QsQ0FDbkQsQ0FBQTtRQUNILENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxNQUFNLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQztZQUN0RCxPQUFPO1NBQ1IsQ0FBQyxDQUFBO1FBRUYsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUE7UUFFeEMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUM1QyxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLElBQUksS0FBSyxZQUFZLGNBQVEsRUFBRSxDQUFDO1lBQzlCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTthQUNyQixDQUFDLENBQUE7UUFDSixDQUFDO1FBRUQsTUFBTSxLQUFLLENBQUE7SUFDYixDQUFDO0FBQ0gsQ0FBQyJ9
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = POST;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const zod_1 = require("zod");
6
+ const parcel_shipping_1 = require("../../../modules/parcel-shipping");
7
+ const itemSchema = zod_1.z.object({
8
+ sku: zod_1.z.string().min(1),
9
+ width: zod_1.z.number().positive(),
10
+ length: zod_1.z.number().positive(),
11
+ height: zod_1.z.number().positive(),
12
+ weight: zod_1.z.number().nonnegative(),
13
+ quantity: zod_1.z.number().int().positive(),
14
+ attributes: zod_1.z
15
+ .object({
16
+ noStack: zod_1.z.boolean().optional(),
17
+ })
18
+ .optional(),
19
+ });
20
+ const bodySchema = zod_1.z.object({
21
+ items: zod_1.z.array(itemSchema).min(1),
22
+ shipping_address: zod_1.z.object({
23
+ province: zod_1.z.string().min(1),
24
+ postcode: zod_1.z.string().min(1),
25
+ country: zod_1.z.string().min(1),
26
+ }),
27
+ });
28
+ async function POST(req, res) {
29
+ const moduleService = req.scope.resolve(parcel_shipping_1.PARCEL_SHIPPING_MODULE);
30
+ try {
31
+ const payload = bodySchema.parse(req.body);
32
+ const result = await moduleService.quote(payload);
33
+ if (result.success) {
34
+ return res.status(200).json(result);
35
+ }
36
+ return res.status(200).json(result);
37
+ }
38
+ catch (error) {
39
+ if (error instanceof zod_1.ZodError) {
40
+ return res.status(400).json({
41
+ code: "invalid_payload",
42
+ issues: error.issues,
43
+ });
44
+ }
45
+ if (error instanceof utils_1.MedusaError) {
46
+ return res.status(error.type === utils_1.MedusaError.Types.NOT_ALLOWED ? 403 : 400).json({
47
+ code: error.message,
48
+ });
49
+ }
50
+ throw error;
51
+ }
52
+ }
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3BhcmNlbC1ib3gtc2VsZWN0b3Ivcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUE2QkEsb0JBbUNDO0FBL0RELHFEQUF1RDtBQUN2RCw2QkFBaUM7QUFFakMsc0VBQXlFO0FBRXpFLE1BQU0sVUFBVSxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDMUIsR0FBRyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3RCLEtBQUssRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzVCLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzdCLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzdCLE1BQU0sRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFO0lBQ2hDLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3JDLFVBQVUsRUFBRSxPQUFDO1NBQ1YsTUFBTSxDQUFDO1FBQ04sT0FBTyxFQUFFLE9BQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLEVBQUU7S0FDaEMsQ0FBQztTQUNELFFBQVEsRUFBRTtDQUNkLENBQUMsQ0FBQTtBQUVGLE1BQU0sVUFBVSxHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDMUIsS0FBSyxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNqQyxnQkFBZ0IsRUFBRSxPQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3pCLFFBQVEsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzQixRQUFRLEVBQUUsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0IsT0FBTyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQzNCLENBQUM7Q0FDSCxDQUFDLENBQUE7QUFFSyxLQUFLLFVBQVUsSUFBSSxDQUN4QixHQUFrQixFQUNsQixHQUFtQjtJQUVuQixNQUFNLGFBQWEsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDckMsd0NBQXNCLENBQ1EsQ0FBQTtJQUVoQyxJQUFJLENBQUM7UUFDSCxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUMxQyxNQUFNLE1BQU0sR0FBRyxNQUFNLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUE7UUFFakQsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbkIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUNyQyxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUNyQyxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLElBQUksS0FBSyxZQUFZLGNBQVEsRUFBRSxDQUFDO1lBQzlCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7Z0JBQzFCLElBQUksRUFBRSxpQkFBaUI7Z0JBQ3ZCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTthQUNyQixDQUFDLENBQUE7UUFDSixDQUFDO1FBRUQsSUFBSSxLQUFLLFlBQVksbUJBQVcsRUFBRSxDQUFDO1lBQ2pDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FDZixLQUFLLENBQUMsSUFBSSxLQUFLLG1CQUFXLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQ3pELENBQUMsSUFBSSxDQUFDO2dCQUNMLElBQUksRUFBRSxLQUFLLENBQUMsT0FBTzthQUNwQixDQUFDLENBQUE7UUFDSixDQUFDO1FBRUQsTUFBTSxLQUFLLENBQUE7SUFDYixDQUFDO0FBQ0gsQ0FBQyJ9
@@ -0,0 +1,24 @@
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.PARCEL_SHIPPING_MODULE = void 0;
18
+ __exportStar(require("./modules/parcel-shipping"), exports);
19
+ __exportStar(require("./providers/parcel-fulfillment-base"), exports);
20
+ __exportStar(require("./providers/company-truck"), exports);
21
+ __exportStar(require("./providers/private-carrier"), exports);
22
+ var parcel_shipping_1 = require("./modules/parcel-shipping");
23
+ Object.defineProperty(exports, "PARCEL_SHIPPING_MODULE", { enumerable: true, get: function () { return parcel_shipping_1.PARCEL_SHIPPING_MODULE; } });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0REFBMEM7QUFDMUMsc0VBQW9EO0FBQ3BELDREQUEwQztBQUMxQyw4REFBNEM7QUFDNUMsNkRBQW1FO0FBQTFELHlIQUFBLHNCQUFzQixPQUFBIn0=
@@ -0,0 +1,28 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
17
+ return (mod && mod.__esModule) ? mod : { "default": mod };
18
+ };
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.PARCEL_SHIPPING_MODULE = void 0;
21
+ const utils_1 = require("@medusajs/framework/utils");
22
+ const service_1 = __importDefault(require("./service"));
23
+ exports.PARCEL_SHIPPING_MODULE = "parcelShipping";
24
+ exports.default = (0, utils_1.Module)(exports.PARCEL_SHIPPING_MODULE, {
25
+ service: service_1.default,
26
+ });
27
+ __exportStar(require("./types"), exports);
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9wYXJjZWwtc2hpcHBpbmcvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBa0Q7QUFDbEQsd0RBQW1EO0FBRXRDLFFBQUEsc0JBQXNCLEdBQUcsZ0JBQWdCLENBQUE7QUFFdEQsa0JBQWUsSUFBQSxjQUFNLEVBQUMsOEJBQXNCLEVBQUU7SUFDNUMsT0FBTyxFQUFFLGlCQUEyQjtDQUNyQyxDQUFDLENBQUE7QUFFRiwwQ0FBdUIifQ==
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20251015120000 = void 0;
4
+ const migrations_1 = require("@mikro-orm/migrations");
5
+ class Migration20251015120000 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql(`
8
+ create table if not exists "parcel_box" (
9
+ "id" text not null,
10
+ "name" text not null,
11
+ "width_cm" double precision not null,
12
+ "length_cm" double precision not null,
13
+ "height_cm" double precision not null,
14
+ "max_weight_kg" double precision not null,
15
+ "price_thb" double precision not null,
16
+ "active" boolean not null default true,
17
+ "created_at" timestamptz not null default now(),
18
+ "updated_at" timestamptz not null default now(),
19
+ "deleted_at" timestamptz null,
20
+ constraint "parcel_box_pkey" primary key ("id")
21
+ );
22
+ `);
23
+ this.addSql(`
24
+ CREATE INDEX IF NOT EXISTS "IDX_parcel_box_active" ON "parcel_box" (active) WHERE deleted_at IS NULL;
25
+ `);
26
+ this.addSql(`
27
+ create table if not exists "parcel_shipping_rate" (
28
+ "id" text not null,
29
+ "carrier" text check ("carrier" in ('COMPANY_TRUCK', 'PRIVATE_CARRIER')) not null,
30
+ "min_weight_kg" double precision not null default 0,
31
+ "max_weight_kg" double precision not null,
32
+ "price_thb" double precision not null,
33
+ "currency" text not null default 'THB',
34
+ "active" boolean not null default true,
35
+ "created_at" timestamptz not null default now(),
36
+ "updated_at" timestamptz not null default now(),
37
+ "deleted_at" timestamptz null,
38
+ constraint "parcel_shipping_rate_pkey" primary key ("id")
39
+ );
40
+ `);
41
+ this.addSql(`
42
+ CREATE INDEX IF NOT EXISTS "IDX_parcel_shipping_rate_carrier_active" ON "parcel_shipping_rate" (carrier, active) WHERE deleted_at IS NULL;
43
+ `);
44
+ this.addSql(`
45
+ create table if not exists "parcel_service_area" (
46
+ "id" text not null,
47
+ "kind" text check ("kind" in ('PROVINCE', 'POSTCODE_PREFIX')) not null,
48
+ "value" text not null,
49
+ "active" boolean not null default true,
50
+ "created_at" timestamptz not null default now(),
51
+ "updated_at" timestamptz not null default now(),
52
+ "deleted_at" timestamptz null,
53
+ constraint "parcel_service_area_pkey" primary key ("id")
54
+ );
55
+ `);
56
+ this.addSql(`
57
+ CREATE INDEX IF NOT EXISTS "IDX_parcel_service_area_kind_value" ON "parcel_service_area" (kind, value) WHERE deleted_at IS NULL;
58
+ `);
59
+ this.addSql(`
60
+ CREATE INDEX IF NOT EXISTS "IDX_parcel_service_area_active" ON "parcel_service_area" (active) WHERE deleted_at IS NULL;
61
+ `);
62
+ }
63
+ async down() {
64
+ this.addSql(`drop table if exists "parcel_service_area" cascade;`);
65
+ this.addSql(`drop table if exists "parcel_shipping_rate" cascade;`);
66
+ this.addSql(`drop table if exists "parcel_box" cascade;`);
67
+ }
68
+ }
69
+ exports.Migration20251015120000 = Migration20251015120000;
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTEwMTUxMjAwMDAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9wYXJjZWwtc2hpcHBpbmcvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI1MTAxNTEyMDAwMC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxzREFBaUQ7QUFFakQsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUMzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7OztLQWVYLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxNQUFNLENBQUM7O0tBRVgsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7S0FjWCxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsTUFBTSxDQUFDOztLQUVYLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxNQUFNLENBQUM7Ozs7Ozs7Ozs7O0tBV1gsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7S0FFWCxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsTUFBTSxDQUFDOztLQUVYLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFUSxLQUFLLENBQUMsSUFBSTtRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLHFEQUFxRCxDQUFDLENBQUE7UUFDbEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxzREFBc0QsQ0FBQyxDQUFBO1FBQ25FLElBQUksQ0FBQyxNQUFNLENBQUMsNENBQTRDLENBQUMsQ0FBQTtJQUMzRCxDQUFDO0NBQ0Y7QUF0RUQsMERBc0VDIn0=
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ParcelBox = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ exports.ParcelBox = utils_1.model
6
+ .define("parcel_box", {
7
+ id: utils_1.model.id().primaryKey(),
8
+ name: utils_1.model.text(),
9
+ width_cm: utils_1.model.float(),
10
+ length_cm: utils_1.model.float(),
11
+ height_cm: utils_1.model.float(),
12
+ max_weight_kg: utils_1.model.float(),
13
+ price_thb: utils_1.model.float(),
14
+ active: utils_1.model.boolean().default(true),
15
+ })
16
+ .indexes([
17
+ {
18
+ on: ["active"],
19
+ },
20
+ ]);
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyY2VsLWJveC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3BhcmNlbC1zaGlwcGluZy9tb2RlbHMvcGFyY2VsLWJveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBaUQ7QUFFcEMsUUFBQSxTQUFTLEdBQUcsYUFBSztLQUMzQixNQUFNLENBQUMsWUFBWSxFQUFFO0lBQ3BCLEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQzNCLElBQUksRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQ2xCLFFBQVEsRUFBRSxhQUFLLENBQUMsS0FBSyxFQUFFO0lBQ3ZCLFNBQVMsRUFBRSxhQUFLLENBQUMsS0FBSyxFQUFFO0lBQ3hCLFNBQVMsRUFBRSxhQUFLLENBQUMsS0FBSyxFQUFFO0lBQ3hCLGFBQWEsRUFBRSxhQUFLLENBQUMsS0FBSyxFQUFFO0lBQzVCLFNBQVMsRUFBRSxhQUFLLENBQUMsS0FBSyxFQUFFO0lBQ3hCLE1BQU0sRUFBRSxhQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztDQUN0QyxDQUFDO0tBQ0QsT0FBTyxDQUFDO0lBQ1A7UUFDRSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUM7S0FDZjtDQUNGLENBQUMsQ0FBQSJ9
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ServiceArea = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ exports.ServiceArea = utils_1.model
6
+ .define("parcel_service_area", {
7
+ id: utils_1.model.id().primaryKey(),
8
+ kind: utils_1.model.enum(["PROVINCE", "POSTCODE_PREFIX"]),
9
+ value: utils_1.model.text(),
10
+ active: utils_1.model.boolean().default(true),
11
+ })
12
+ .indexes([
13
+ {
14
+ on: ["kind", "value"],
15
+ },
16
+ {
17
+ on: ["active"],
18
+ },
19
+ ]);
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1hcmVhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvcGFyY2VsLXNoaXBwaW5nL21vZGVscy9zZXJ2aWNlLWFyZWEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQWlEO0FBRXBDLFFBQUEsV0FBVyxHQUFHLGFBQUs7S0FDN0IsTUFBTSxDQUFDLHFCQUFxQixFQUFFO0lBQzdCLEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQzNCLElBQUksRUFBRSxhQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDakQsS0FBSyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUU7SUFDbkIsTUFBTSxFQUFFLGFBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0NBQ3RDLENBQUM7S0FDRCxPQUFPLENBQUM7SUFDUDtRQUNFLEVBQUUsRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUM7S0FDdEI7SUFDRDtRQUNFLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQztLQUNmO0NBQ0YsQ0FBQyxDQUFBIn0=
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ShippingRate = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ exports.ShippingRate = utils_1.model
6
+ .define("parcel_shipping_rate", {
7
+ id: utils_1.model.id().primaryKey(),
8
+ carrier: utils_1.model.enum(["COMPANY_TRUCK", "PRIVATE_CARRIER"]),
9
+ min_weight_kg: utils_1.model.float().default(0),
10
+ max_weight_kg: utils_1.model.float(),
11
+ price_thb: utils_1.model.float(),
12
+ currency: utils_1.model.text().default("THB"),
13
+ active: utils_1.model.boolean().default(true),
14
+ })
15
+ .indexes([
16
+ {
17
+ on: ["carrier", "active"],
18
+ },
19
+ ]);
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpcHBpbmctcmF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3BhcmNlbC1zaGlwcGluZy9tb2RlbHMvc2hpcHBpbmctcmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBaUQ7QUFFcEMsUUFBQSxZQUFZLEdBQUcsYUFBSztLQUM5QixNQUFNLENBQUMsc0JBQXNCLEVBQUU7SUFDOUIsRUFBRSxFQUFFLGFBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLEVBQUU7SUFDM0IsT0FBTyxFQUFFLGFBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxlQUFlLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztJQUN6RCxhQUFhLEVBQUUsYUFBSyxDQUFDLEtBQUssRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdkMsYUFBYSxFQUFFLGFBQUssQ0FBQyxLQUFLLEVBQUU7SUFDNUIsU0FBUyxFQUFFLGFBQUssQ0FBQyxLQUFLLEVBQUU7SUFDeEIsUUFBUSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQ3JDLE1BQU0sRUFBRSxhQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQztDQUN0QyxDQUFDO0tBQ0QsT0FBTyxDQUFDO0lBQ1A7UUFDRSxFQUFFLEVBQUUsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDO0tBQzFCO0NBQ0YsQ0FBQyxDQUFBIn0=