@lodashventure/medusa-membership 0.1.2 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/.medusa/server/src/api/middlewares.js +15 -1
  2. package/.medusa/server/src/api/store/customers/me/member-tier/route.js +74 -4
  3. package/.medusa/server/src/api/store/customers/me/wishlist/route.js +1 -1
  4. package/.medusa/server/src/api/store/promotion-codes/[id]/collect/route.js +116 -0
  5. package/.medusa/server/src/api/store/promotion-codes/[id]/route.js +123 -0
  6. package/.medusa/server/src/api/store/promotion-codes/route.js +62 -9
  7. package/.medusa/server/src/modules/membership/migrations/Migration20250416034358.js +2 -2
  8. package/.medusa/server/src/modules/membership/migrations/Migration20250416231624.js +2 -2
  9. package/.medusa/server/src/modules/membership/migrations/Migration20250418020235.js +2 -2
  10. package/.medusa/server/src/modules/membership/migrations/Migration20250420014232.js +2 -2
  11. package/.medusa/server/src/modules/membership/migrations/Migration20250420050937.js +2 -2
  12. package/.medusa/server/src/modules/membership/migrations/Migration20250421010109.js +2 -2
  13. package/.medusa/server/src/modules/membership/migrations/Migration20250421011451.js +2 -2
  14. package/.medusa/server/src/modules/membership/migrations/Migration20250422230822.js +2 -2
  15. package/.medusa/server/src/modules/membership/migrations/Migration20250423021328.js +2 -2
  16. package/.medusa/server/src/modules/membership/migrations/Migration20250423021925.js +2 -2
  17. package/.medusa/server/src/modules/membership/migrations/Migration20250424011144.js +2 -2
  18. package/.medusa/server/src/modules/membership/migrations/Migration20250507013347.js +2 -2
  19. package/.medusa/server/src/modules/promotion-cache/service.js +5 -1
  20. package/.medusa/server/src/modules/usable-promo/migrations/Migration20250504044646.js +2 -2
  21. package/.medusa/server/src/modules/wishlist/migrations/Migration20250424011114.js +2 -2
  22. package/.medusa/server/src/subscribers/customer-created.js +33 -4
  23. package/.medusa/server/src/subscribers/order-canceled.js +48 -0
  24. package/.medusa/server/src/subscribers/order-completed.js +62 -16
  25. package/.medusa/server/src/subscribers/order-fulfilled.js +68 -0
  26. package/.medusa/server/src/subscribers/order-payment-captured.js +111 -0
  27. package/.medusa/server/src/subscribers/order-placed.js +83 -9
  28. package/.medusa/server/src/subscribers/return-received.js +48 -0
  29. package/.medusa/server/src/workflows/membership/create-membership.js +27 -6
  30. package/.medusa/server/src/workflows/membership/void-membership-points.js +110 -0
  31. package/.medusa/server/src/workflows/usable-promo/invalidateUsedPromotionWorkflow.js +8 -2
  32. package/package.json +14 -28
@@ -8,6 +8,15 @@ const member_tiers_1 = require("./middlewares/member-tiers");
8
8
  const wishlist_1 = require("./middlewares/wishlist");
9
9
  const notifications_1 = require("./middlewares/notifications");
10
10
  const consent_1 = require("./middlewares/consent");
11
+ // Middleware to strip invalid 'id' parameter from promotion list queries
12
+ // The admin panel sends id[0] and id[$nin][0] which are not valid for the promotion list endpoint
13
+ const removeInvalidPromotionIdParam = (req, res, next) => {
14
+ if (req.query && 'id' in req.query) {
15
+ console.log('[Middleware] Removing invalid id parameter from promotion query:', req.query.id);
16
+ delete req.query.id;
17
+ }
18
+ next();
19
+ };
11
20
  exports.default = (0, framework_1.defineMiddlewares)({
12
21
  routes: [
13
22
  ...(promotion_codes_1.promotionCodesMiddleware.routes ?? []),
@@ -16,6 +25,11 @@ exports.default = (0, framework_1.defineMiddlewares)({
16
25
  ...(wishlist_1.wishlistMiddleware.routes ?? []),
17
26
  ...(notifications_1.notificationsMiddleware.routes ?? []),
18
27
  ...(consent_1.consentMiddleware.routes ?? []),
28
+ {
29
+ method: ["GET"],
30
+ matcher: "/admin/promotions",
31
+ middlewares: [removeInvalidPromotionIdParam],
32
+ },
19
33
  {
20
34
  method: ["PATCH"],
21
35
  matcher: "/admin/membership/config/[store_id]",
@@ -23,4 +37,4 @@ exports.default = (0, framework_1.defineMiddlewares)({
23
37
  },
24
38
  ],
25
39
  });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbURBRzZCO0FBRTdCLHFGQUE2RjtBQUM3RixtRUFBeUU7QUFDekUsdURBQThEO0FBQzlELDZEQUFtRTtBQUNuRSxxREFBNEQ7QUFDNUQsK0RBQXNFO0FBQ3RFLG1EQUEwRDtBQUUxRCxrQkFBZSxJQUFBLDZCQUFpQixFQUFDO0lBQy9CLE1BQU0sRUFBRTtRQUNOLEdBQUcsQ0FBQywwQ0FBd0IsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQzFDLEdBQUcsQ0FBQywrQkFBbUIsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ3JDLEdBQUcsQ0FBQyxvQ0FBcUIsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ3ZDLEdBQUcsQ0FBQyw2QkFBa0IsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ3BDLEdBQUcsQ0FBQyx1Q0FBdUIsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ3pDLEdBQUcsQ0FBQywyQkFBaUIsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO1FBQ25DO1lBQ0UsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDO1lBQ2pCLE9BQU8sRUFBRSxxQ0FBcUM7WUFDOUMsV0FBVyxFQUFFLENBQUMsSUFBQSxvQ0FBd0IsRUFBQyxnREFBbUMsQ0FBQyxDQUFDO1NBQzdFO0tBQ0Y7Q0FDRixDQUFDLENBQUMifQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbURBTzZCO0FBRTdCLHFGQUE2RjtBQUM3RixtRUFBeUU7QUFDekUsdURBQThEO0FBQzlELDZEQUFtRTtBQUNuRSxxREFBNEQ7QUFDNUQsK0RBQXNFO0FBQ3RFLG1EQUEwRDtBQUUxRCx5RUFBeUU7QUFDekUsa0dBQWtHO0FBQ2xHLE1BQU0sNkJBQTZCLEdBQUcsQ0FDcEMsR0FBa0IsRUFDbEIsR0FBbUIsRUFDbkIsSUFBd0IsRUFDeEIsRUFBRTtJQUNGLElBQUksR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLElBQUksR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25DLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0VBQWtFLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5RixPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFDRCxJQUFJLEVBQUUsQ0FBQztBQUNULENBQUMsQ0FBQztBQUVGLGtCQUFlLElBQUEsNkJBQWlCLEVBQUM7SUFDL0IsTUFBTSxFQUFFO1FBQ04sR0FBRyxDQUFDLDBDQUF3QixDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDMUMsR0FBRyxDQUFDLCtCQUFtQixDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDckMsR0FBRyxDQUFDLG9DQUFxQixDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDdkMsR0FBRyxDQUFDLDZCQUFrQixDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDcEMsR0FBRyxDQUFDLHVDQUF1QixDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDekMsR0FBRyxDQUFDLDJCQUFpQixDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDbkM7WUFDRSxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDZixPQUFPLEVBQUUsbUJBQW1CO1lBQzVCLFdBQVcsRUFBRSxDQUFDLDZCQUE2QixDQUFDO1NBQzdDO1FBQ0Q7WUFDRSxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUM7WUFDakIsT0FBTyxFQUFFLHFDQUFxQztZQUM5QyxXQUFXLEVBQUUsQ0FBQyxJQUFBLG9DQUF3QixFQUFDLGdEQUFtQyxDQUFDLENBQUM7U0FDN0U7S0FDRjtDQUNGLENBQUMsQ0FBQyJ9
@@ -15,6 +15,68 @@ const GET = async (req, res) => {
15
15
  },
16
16
  });
17
17
  const typedResult = result;
18
+ // Get query resolver
19
+ const query = req.scope.resolve("query");
20
+ // Calculate total spending and savings from membership transactions
21
+ let totalSpending = 0;
22
+ let totalSavings = 0;
23
+ if (typedResult.membership) {
24
+ const { data: transactions } = await query.graph({
25
+ entity: "membership_transaction",
26
+ fields: ["id", "points", "source"],
27
+ filters: {
28
+ customer_id: customerId,
29
+ },
30
+ });
31
+ if (transactions && transactions.length > 0) {
32
+ // Sum up spending from order transactions (positive points)
33
+ totalSpending = transactions
34
+ .filter((t) => t.source?.startsWith("order:") && t.points > 0)
35
+ .reduce((sum, t) => sum + t.points, 0);
36
+ // Get order IDs from transactions
37
+ const orderIds = transactions
38
+ .filter((t) => t.source?.startsWith("order:"))
39
+ .map((t) => t.source.replace("order: ", ""));
40
+ console.log(`[Membership API] Found ${orderIds.length} order IDs from transactions:`, orderIds);
41
+ // Calculate total savings from order line items discounts
42
+ if (orderIds.length > 0) {
43
+ const { data: orders } = await query.graph({
44
+ entity: "order",
45
+ fields: ["id", "discount_total", "item_discount_total", "items.*"],
46
+ filters: {
47
+ id: orderIds,
48
+ customer_id: customerId,
49
+ },
50
+ });
51
+ console.log(`[Membership API] Fetched ${orders?.length || 0} orders for discount calculation`);
52
+ console.log(`[Membership API] Orders data:`, JSON.stringify(orders, null, 2));
53
+ if (orders && orders.length > 0) {
54
+ // Sum up item_discount_total from all orders
55
+ totalSavings = orders.reduce((sum, order) => {
56
+ const orderDiscount = order.item_discount_total || order.discount_total || 0;
57
+ console.log(`[Membership API] Order ${order.id}: item_discount_total = ${order.item_discount_total}, discount_total = ${order.discount_total}, using: ${orderDiscount}`);
58
+ return sum + orderDiscount;
59
+ }, 0);
60
+ console.log(`[Membership API] Final total_savings: ${totalSavings}`);
61
+ }
62
+ }
63
+ }
64
+ }
65
+ // Get all membership tiers
66
+ const { data: allTiers } = await query.graph({
67
+ entity: "member_tier",
68
+ fields: [
69
+ "id",
70
+ "name",
71
+ "description",
72
+ "privilege_description",
73
+ "min_points",
74
+ "created_at",
75
+ "updated_at",
76
+ "deleted_at",
77
+ ],
78
+ filters: {},
79
+ });
18
80
  if (!typedResult.membership) {
19
81
  // If create flag is set, create a new membership with 0 points
20
82
  if (createIfNotExists) {
@@ -34,19 +96,27 @@ const GET = async (req, res) => {
34
96
  return res.json({
35
97
  membership: typedNewResult.membership,
36
98
  member_tier: typedNewResult.member_tier,
99
+ all_tiers: allTiers || [],
37
100
  created: true, // Indicate that a new membership was created
38
101
  });
39
102
  }
40
- // Return a more informative response for customers without memberships
103
+ // This case should rarely happen since memberships are now created on customer creation
104
+ // But we handle it for edge cases (e.g., existing customers before this change)
41
105
  return res.json({
42
106
  membership: null,
43
107
  member_tier: null,
44
- message: "No membership exists for this customer yet. Memberships are created after your first purchase.",
108
+ all_tiers: allTiers || [],
109
+ message: "No membership exists for this customer. Please contact support if this persists.",
45
110
  });
46
111
  }
47
112
  return res.json({
48
- membership: typedResult.membership,
113
+ membership: {
114
+ ...typedResult.membership,
115
+ total_spending: totalSpending,
116
+ total_savings: totalSavings,
117
+ },
49
118
  member_tier: typedResult.member_tier,
119
+ all_tiers: allTiers || [],
50
120
  });
51
121
  }
52
122
  catch (error) {
@@ -58,4 +128,4 @@ const GET = async (req, res) => {
58
128
  }
59
129
  };
60
130
  exports.GET = GET;
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2N1c3RvbWVycy9tZS9tZW1iZXItdGllci9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSw2SEFBK0g7QUFDL0gsNkZBQWlHO0FBd0IxRixNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQStCLEVBQy9CLEdBQW1CLEVBQ25CLEVBQUU7SUFDRixJQUFJLENBQUM7UUFDSCxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUM3QyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxDQUFDLDRDQUE0QztRQUVuRyxrRUFBa0U7UUFDbEUsK0NBQStDO1FBQy9DLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsMEVBQXNDLEVBQzdELEdBQUcsQ0FBQyxLQUFLLENBQ1YsQ0FBQyxHQUFHLENBQUM7WUFDSixLQUFLLEVBQUU7Z0JBQ0wsV0FBVyxFQUFFLFVBQVU7YUFDeEI7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLFdBQVcsR0FBRyxNQUE4QyxDQUFDO1FBRW5FLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDNUIsK0RBQStEO1lBQy9ELElBQUksaUJBQWlCLEVBQUUsQ0FBQztnQkFDdEIsTUFBTSxJQUFBLDRDQUF3QixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7b0JBQzVDLEtBQUssRUFBRTt3QkFDTCxXQUFXLEVBQUUsVUFBVTt3QkFDdkIsTUFBTSxFQUFFLENBQUM7cUJBQ1Y7aUJBQ0YsQ0FBQyxDQUFDO2dCQUVILGtEQUFrRDtnQkFDbEQsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FDekIsTUFBTSxJQUFBLDBFQUFzQyxFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7b0JBQzFELEtBQUssRUFBRTt3QkFDTCxXQUFXLEVBQUUsVUFBVTtxQkFDeEI7aUJBQ0YsQ0FBQyxDQUFDO2dCQUVMLE1BQU0sY0FBYyxHQUNsQixTQUFpRCxDQUFDO2dCQUVwRCxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUM7b0JBQ2QsVUFBVSxFQUFFLGNBQWMsQ0FBQyxVQUFVO29CQUNyQyxXQUFXLEVBQUUsY0FBYyxDQUFDLFdBQVc7b0JBQ3ZDLE9BQU8sRUFBRSxJQUFJLEVBQUUsNkNBQTZDO2lCQUM3RCxDQUFDLENBQUM7WUFDTCxDQUFDO1lBRUQsdUVBQXVFO1lBQ3ZFLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDZCxVQUFVLEVBQUUsSUFBSTtnQkFDaEIsV0FBVyxFQUFFLElBQUk7Z0JBQ2pCLE9BQU8sRUFDTCxnR0FBZ0c7YUFDbkcsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztZQUNkLFVBQVUsRUFBRSxXQUFXLENBQUMsVUFBVTtZQUNsQyxXQUFXLEVBQUUsV0FBVyxDQUFDLFdBQVc7U0FDckMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsS0FBSyxDQUFDLDZCQUE2QixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDMUIsT0FBTyxFQUFFLDZCQUE2QjtZQUN0QyxLQUFLLEVBQUcsS0FBZSxDQUFDLE9BQU87U0FDaEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztBQUNILENBQUMsQ0FBQztBQXBFVyxRQUFBLEdBQUcsT0FvRWQifQ==
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2N1c3RvbWVycy9tZS9tZW1iZXItdGllci9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSw2SEFBK0g7QUFDL0gsNkZBQWlHO0FBMkIxRixNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQStCLEVBQy9CLEdBQW1CLEVBQ25CLEVBQUU7SUFDRixJQUFJLENBQUM7UUFDSCxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUM3QyxNQUFNLGlCQUFpQixHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxLQUFLLE1BQU0sQ0FBQyxDQUFDLDRDQUE0QztRQUVuRyxrRUFBa0U7UUFDbEUsK0NBQStDO1FBQy9DLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsMEVBQXNDLEVBQzdELEdBQUcsQ0FBQyxLQUFLLENBQ1YsQ0FBQyxHQUFHLENBQUM7WUFDSixLQUFLLEVBQUU7Z0JBQ0wsV0FBVyxFQUFFLFVBQVU7YUFDeEI7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLFdBQVcsR0FBRyxNQUE4QyxDQUFDO1FBRW5FLHFCQUFxQjtRQUNyQixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV6QyxvRUFBb0U7UUFDcEUsSUFBSSxhQUFhLEdBQUcsQ0FBQyxDQUFDO1FBQ3RCLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUMzQixNQUFNLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztnQkFDL0MsTUFBTSxFQUFFLHdCQUF3QjtnQkFDaEMsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFF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
@@ -36,7 +36,7 @@ const GET = async (req, res) => {
36
36
  "product_variant.prices.*",
37
37
  ],
38
38
  filters: {
39
- customer_id: customerId,
39
+ wishlist_id: customerId,
40
40
  },
41
41
  pagination: {
42
42
  order: {
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = void 0;
4
+ const framework_1 = require("@medusajs/framework");
5
+ const utils_1 = require("@medusajs/framework/utils");
6
+ const promotion_cache_1 = require("../../../../../modules/promotion-cache");
7
+ const usable_promo_1 = require("../../../../../modules/usable-promo");
8
+ /**
9
+ * POST handler for collecting/claiming a specific promotion code by ID
10
+ *
11
+ * Allows authenticated customers to collect a promotion to their account.
12
+ * Once collected, the promotion code can be used during checkout.
13
+ *
14
+ * Validation:
15
+ * - Promotion must exist and be enabled for collection
16
+ * - Customer must be authenticated
17
+ * - Customer cannot collect the same promotion twice
18
+ */
19
+ const POST = async (req, res) => {
20
+ const { id: promotion_id } = req.params;
21
+ if (!promotion_id) {
22
+ return res.status(400).json({
23
+ message: "promotion_id is required",
24
+ });
25
+ }
26
+ const customerId = req.auth_context.actor_id;
27
+ if (!customerId) {
28
+ return res.status(401).json({
29
+ message: "Customer must be authenticated",
30
+ });
31
+ }
32
+ try {
33
+ // Check if promotion exists and is enabled for collection
34
+ const usablePromoService = framework_1.container.resolve(usable_promo_1.USABLE_PROMO_MODULE);
35
+ const [usablePromotion] = await usablePromoService.listUsablePromotions({
36
+ promotion_id: promotion_id,
37
+ });
38
+ if (!usablePromotion) {
39
+ return res.status(404).json({
40
+ message: "Promotion not found or not available for collection",
41
+ });
42
+ }
43
+ if (!usablePromotion.enabled) {
44
+ return res.status(400).json({
45
+ message: "This promotion is not enabled for collection",
46
+ });
47
+ }
48
+ // Verify promotion exists in the system
49
+ const promotionService = framework_1.container.resolve(utils_1.Modules.PROMOTION);
50
+ const promotion = await promotionService.retrievePromotion(promotion_id, {
51
+ relations: [
52
+ "campaign",
53
+ "application_method",
54
+ ],
55
+ });
56
+ if (!promotion) {
57
+ return res.status(404).json({
58
+ message: "Promotion not found",
59
+ });
60
+ }
61
+ // Check if customer already has this promotion
62
+ const promoCacheService = framework_1.container.resolve(promotion_cache_1.PROMOTION_CACHE_MODULE);
63
+ const cacheKey = `user:${customerId}:promotion:${promotion_id}`;
64
+ const alreadyCollected = await promoCacheService.exists(cacheKey);
65
+ if (alreadyCollected) {
66
+ return res.status(400).json({
67
+ message: "You have already collected this promotion",
68
+ promotion: {
69
+ id: promotion.id,
70
+ code: promotion.code,
71
+ type: promotion.type,
72
+ },
73
+ });
74
+ }
75
+ // Add promotion to customer's cache
76
+ await promoCacheService.set(cacheKey, promotion_id);
77
+ // Return detailed promotion information
78
+ const applicationMethod = promotion.application_method;
79
+ const campaign = promotion.campaign;
80
+ res.status(201).json({
81
+ message: "Promotion collected successfully",
82
+ promotion: {
83
+ id: promotion.id,
84
+ code: promotion.code,
85
+ type: promotion.type,
86
+ is_automatic: promotion.is_automatic,
87
+ campaign: campaign
88
+ ? {
89
+ id: campaign.id,
90
+ name: campaign.name,
91
+ description: campaign.description,
92
+ starts_at: campaign.starts_at,
93
+ ends_at: campaign.ends_at,
94
+ }
95
+ : null,
96
+ application_method: applicationMethod
97
+ ? {
98
+ type: applicationMethod.type,
99
+ target_type: applicationMethod.target_type,
100
+ allocation: applicationMethod.allocation,
101
+ value: applicationMethod.value,
102
+ }
103
+ : null,
104
+ },
105
+ });
106
+ }
107
+ catch (error) {
108
+ console.error("Error collecting promotion:", error);
109
+ res.status(500).json({
110
+ message: "Failed to collect promotion",
111
+ error: error instanceof Error ? error.message : String(error),
112
+ });
113
+ }
114
+ };
115
+ exports.POST = POST;
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3Byb21vdGlvbi1jb2Rlcy9baWRdL2NvbGxlY3Qvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbURBSTZCO0FBQzdCLHFEQUFvRDtBQUNwRCw0RUFBZ0Y7QUFFaEYsc0VBQTBFO0FBRzFFOzs7Ozs7Ozs7O0dBVUc7QUFDSSxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3ZCLEdBQStCLEVBQy9CLEdBQW1CLEVBQ25CLEVBQUU7SUFDRixNQUFNLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFFeEMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ2xCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDMUIsT0FBTyxFQUFFLDBCQUEwQjtTQUNwQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDN0MsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2hCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDMUIsT0FBTyxFQUFFLGdDQUFnQztTQUMxQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsMERBQTBEO1FBQzFELE1BQU0sa0JBQWtCLEdBQ3RCLHFCQUFTLENBQUMsT0FBTyxDQUEyQixrQ0FBbUIsQ0FBQyxDQUFDO1FBQ25FLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxNQUFNLGtCQUFrQixDQUFDLG9CQUFvQixDQUFDO1lBQ3RFLFlBQVksRUFBRSxZQUFZO1NBQzNCLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNyQixP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
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = void 0;
4
+ const framework_1 = require("@medusajs/framework");
5
+ const utils_1 = require("@medusajs/framework/utils");
6
+ const promotion_cache_1 = require("../../../../modules/promotion-cache");
7
+ const usable_promo_1 = require("../../../../modules/usable-promo");
8
+ /**
9
+ * GET handler for fetching a single promotion by ID with full information
10
+ *
11
+ * Returns detailed promotion information including:
12
+ * - Basic promotion details (id, code, type, is_automatic)
13
+ * - Campaign information (name, description, start/end dates)
14
+ * - Application method details (type, value, allocation, rules)
15
+ * - Promotion rules with attributes, operators, and values
16
+ * - Collection status (is_collected flag)
17
+ * - Timestamps (created_at, updated_at)
18
+ */
19
+ const GET = async (req, res) => {
20
+ const { id } = req.params;
21
+ if (!id) {
22
+ return res.status(400).json({
23
+ message: "Promotion ID is required",
24
+ });
25
+ }
26
+ const customerId = req.auth_context.actor_id;
27
+ if (!customerId) {
28
+ return res.status(401).json({
29
+ message: "Customer must be authenticated",
30
+ });
31
+ }
32
+ try {
33
+ // Check if promotion exists and is enabled for collection
34
+ const usablePromoService = framework_1.container.resolve(usable_promo_1.USABLE_PROMO_MODULE);
35
+ const [usablePromotion] = await usablePromoService.listUsablePromotions({
36
+ promotion_id: id,
37
+ });
38
+ if (!usablePromotion) {
39
+ return res.status(404).json({
40
+ message: "Promotion not found or not available for collection",
41
+ });
42
+ }
43
+ if (!usablePromotion.enabled) {
44
+ return res.status(404).json({
45
+ message: "This promotion is not enabled for collection",
46
+ });
47
+ }
48
+ // Get full promotion details with all relations
49
+ const promotionService = framework_1.container.resolve(utils_1.Modules.PROMOTION);
50
+ const promotion = await promotionService.retrievePromotion(id, {
51
+ relations: [
52
+ "campaign",
53
+ "application_method",
54
+ "application_method.target_rules",
55
+ "application_method.buy_rules",
56
+ "rules",
57
+ "rules.values",
58
+ ],
59
+ });
60
+ if (!promotion) {
61
+ return res.status(404).json({
62
+ message: "Promotion not found",
63
+ });
64
+ }
65
+ // Check if customer has already collected this promotion
66
+ const promoCacheService = framework_1.container.resolve(promotion_cache_1.PROMOTION_CACHE_MODULE);
67
+ const cacheKey = `user:${customerId}:promotion:${id}`;
68
+ const isCollected = await promoCacheService.exists(cacheKey);
69
+ // Extract detailed information
70
+ const applicationMethod = promotion.application_method;
71
+ const rules = promotion.rules || [];
72
+ const campaign = promotion.campaign;
73
+ const promotionWithFullInfo = {
74
+ id: promotion.id,
75
+ code: promotion.code,
76
+ type: promotion.type,
77
+ is_automatic: promotion.is_automatic,
78
+ campaign: campaign
79
+ ? {
80
+ id: campaign.id,
81
+ name: campaign.name,
82
+ description: campaign.description,
83
+ starts_at: campaign.starts_at,
84
+ ends_at: campaign.ends_at,
85
+ }
86
+ : null,
87
+ application_method: applicationMethod
88
+ ? {
89
+ type: applicationMethod.type,
90
+ target_type: applicationMethod.target_type,
91
+ allocation: applicationMethod.allocation,
92
+ value: applicationMethod.value,
93
+ max_quantity: applicationMethod.max_quantity,
94
+ apply_to_quantity: applicationMethod.apply_to_quantity,
95
+ buy_rules_min_quantity: applicationMethod.buy_rules_min_quantity,
96
+ target_rules: applicationMethod.target_rules || [],
97
+ buy_rules: applicationMethod.buy_rules || [],
98
+ }
99
+ : null,
100
+ rules: rules.map((rule) => ({
101
+ id: rule.id,
102
+ attribute: rule.attribute,
103
+ operator: rule.operator,
104
+ values: rule.values || [],
105
+ })),
106
+ is_collected: isCollected,
107
+ created_at: promotion.created_at,
108
+ updated_at: promotion.updated_at,
109
+ };
110
+ res.status(200).json({
111
+ promotion: promotionWithFullInfo,
112
+ });
113
+ }
114
+ catch (error) {
115
+ console.error("Error fetching promotion:", error);
116
+ res.status(500).json({
117
+ message: "Failed to fetch promotion",
118
+ error: error instanceof Error ? error.message : String(error),
119
+ });
120
+ }
121
+ };
122
+ exports.GET = GET;
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3Byb21vdGlvbi1jb2Rlcy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLG1EQUk2QjtBQUM3QixxREFBb0Q7QUFDcEQseUVBQTZFO0FBRTdFLG1FQUF1RTtBQUd2RTs7Ozs7Ozs7OztHQVVHO0FBQ0ksTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUErQixFQUMvQixHQUFtQixFQUNuQixFQUFFO0lBQ0YsTUFBTSxFQUFFLEVBQUUsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFFMUIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ1IsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUMxQixPQUFPLEVBQUUsMEJBQTBCO1NBQ3BDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUM3QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUMxQixPQUFPLEVBQUUsZ0NBQWdDO1NBQzFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCwwREFBMEQ7UUFDMUQsTUFBTSxrQkFBa0IsR0FDdEIscUJBQVMsQ0FBQyxPQUFPLENBQTJCLGtDQUFtQixDQUFDLENBQUM7UUFDbkUsTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLE1BQU0sa0JBQWtCLENBQUMsb0JBQW9CLENBQUM7WUFDdEUsWUFBWSxFQUFFLEVBQUU7U0FDakIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FB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
@@ -75,8 +75,17 @@ const POST = async (req, res) => {
75
75
  };
76
76
  exports.POST = POST;
77
77
  /**
78
- * GET handler for listing all available promotions for collection
79
- * Returns promotions that are enabled for collection but not yet collected by the customer
78
+ * GET handler for listing all available promotions for collection with full information
79
+ *
80
+ * Returns promotions with comprehensive details including:
81
+ * - Basic promotion details (id, code, type, is_automatic)
82
+ * - Campaign information (name, description, start/end dates)
83
+ * - Application method details (type, value, allocation, rules)
84
+ * - Promotion rules with attributes, operators, and values
85
+ * - Collection status (is_collected flag)
86
+ * - Timestamps (created_at, updated_at)
87
+ *
88
+ * Only returns promotions that are enabled for collection but not yet collected by the customer
80
89
  */
81
90
  const GET = async (req, res) => {
82
91
  const customerId = req.auth_context.actor_id;
@@ -98,30 +107,74 @@ const GET = async (req, res) => {
98
107
  });
99
108
  }
100
109
  const promotionIds = usablePromotions.map((up) => up.promotion_id);
101
- // Get full promotion details
110
+ // Get full promotion details with all relations
102
111
  const promotionService = framework_1.container.resolve(utils_1.Modules.PROMOTION);
103
112
  const promotions = await promotionService.listPromotions({
104
113
  id: promotionIds,
105
114
  }, {
106
- relations: ["campaign"],
115
+ relations: [
116
+ "campaign",
117
+ "application_method",
118
+ "application_method.target_rules",
119
+ "application_method.buy_rules",
120
+ "rules",
121
+ "rules.values",
122
+ ],
107
123
  });
108
124
  // Check which ones the customer has already collected
109
125
  const promoCacheService = framework_1.container.resolve(promotion_cache_1.PROMOTION_CACHE_MODULE);
110
- const promotionsWithStatus = await Promise.all(promotions.map(async (promotion) => {
126
+ const promotionsWithFullInfo = await Promise.all(promotions.map(async (promotion) => {
111
127
  const cacheKey = `user:${customerId}:promotion:${promotion.id}`;
112
128
  const isCollected = await promoCacheService.exists(cacheKey);
129
+ // Extract detailed information
130
+ const applicationMethod = promotion.application_method;
131
+ const rules = promotion.rules || [];
132
+ const campaign = promotion.campaign;
113
133
  return {
114
- ...promotion,
134
+ id: promotion.id,
135
+ code: promotion.code,
136
+ type: promotion.type,
137
+ is_automatic: promotion.is_automatic,
138
+ campaign: campaign
139
+ ? {
140
+ id: campaign.id,
141
+ name: campaign.name,
142
+ description: campaign.description,
143
+ starts_at: campaign.starts_at,
144
+ ends_at: campaign.ends_at,
145
+ }
146
+ : null,
147
+ application_method: applicationMethod
148
+ ? {
149
+ type: applicationMethod.type,
150
+ target_type: applicationMethod.target_type,
151
+ allocation: applicationMethod.allocation,
152
+ value: applicationMethod.value,
153
+ max_quantity: applicationMethod.max_quantity,
154
+ apply_to_quantity: applicationMethod.apply_to_quantity,
155
+ buy_rules_min_quantity: applicationMethod.buy_rules_min_quantity,
156
+ target_rules: applicationMethod.target_rules || [],
157
+ buy_rules: applicationMethod.buy_rules || [],
158
+ }
159
+ : null,
160
+ rules: rules.map((rule) => ({
161
+ id: rule.id,
162
+ attribute: rule.attribute,
163
+ operator: rule.operator,
164
+ values: rule.values || [],
165
+ })),
115
166
  is_collected: isCollected,
167
+ created_at: promotion.created_at,
168
+ updated_at: promotion.updated_at,
116
169
  };
117
170
  }));
118
171
  // Filter to only show uncollected promotions (optional - depends on UX requirements)
119
172
  // You can remove this filter if you want to show all promotions with collected status
120
- const availablePromotions = promotionsWithStatus.filter((p) => !p.is_collected);
173
+ const availablePromotions = promotionsWithFullInfo.filter((p) => !p.is_collected);
121
174
  res.status(200).json({
122
175
  promotions: availablePromotions,
123
176
  count: availablePromotions.length,
124
- total: promotionsWithStatus.length,
177
+ total: promotionsWithFullInfo.length,
125
178
  });
126
179
  }
127
180
  catch (error) {
@@ -133,4 +186,4 @@ const GET = async (req, res) => {
133
186
  }
134
187
  };
135
188
  exports.GET = GET;
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3Byb21vdGlvbi1jb2Rlcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFLNkI7QUFDN0IscURBQW9EO0FBQ3BELHNFQUEwRTtBQUUxRSxnRUFBb0U7QUFHcEU7OztHQUdHO0FBQ0ksTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUErQixFQUMvQixHQUFtQixFQUNuQixFQUFFO0lBQ0YsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLEdBQUcsQ0FBQyxJQUFnQyxDQUFDO0lBRTlELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsQixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzFCLE9BQU8sRUFBRSwwQkFBMEI7U0FDcEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBRTdDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzFCLE9BQU8sRUFBRSxnQ0FBZ0M7U0FDMUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILDBEQUEwRDtRQUMxRCxNQUFNLGtCQUFrQixHQUN0QixxQkFBUyxDQUFDLE9BQU8sQ0FBMkIsa0NBQW1CLENBQUMsQ0FBQztRQUVuRSxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQztZQUN0RSxZQUFZLEVBQUUsWUFBWTtTQUMzQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxD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
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3Byb21vdGlvbi1jb2Rlcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFLNkI7QUFDN0IscURBQW9EO0FBQ3BELHNFQUEwRTtBQUUxRSxnRUFBb0U7QUFHcEU7OztHQUdHO0FBQ0ksTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUErQixFQUMvQixHQUFtQixFQUNuQixFQUFFO0lBQ0YsTUFBTSxFQUFFLFlBQVksRUFBRSxHQUFHLEdBQUcsQ0FBQyxJQUFnQyxDQUFDO0lBRTlELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsQixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzFCLE9BQU8sRUFBRSwwQkFBMEI7U0FDcEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBRTdDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQzFCLE9BQU8sRUFBRSxnQ0FBZ0M7U0FDMUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILDBEQUEwRDtRQUMxRCxNQUFNLGtCQUFrQixHQUN0QixxQkFBUyxDQUFDLE9BQU8sQ0FBMkIsa0NBQW1CLENBQUMsQ0FBQztRQUVuRSxNQUFNLENBQUMsZUFBZSxDQUFDLEdBQUcsTUFBTSxrQkFBa0IsQ0FBQyxvQkFBb0IsQ0FBQztZQUN0RSxZQUFZLEVBQUUsWUFBWTtTQUMzQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDckIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxD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
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Migration20250416034358 = void 0;
4
- const migrations_1 = require("@mikro-orm/migrations");
4
+ const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
5
5
  class Migration20250416034358 extends migrations_1.Migration {
6
6
  async up() {
7
7
  this.addSql(`alter table if exists "member_tier" drop constraint if exists "member_tier_min_points_unique";`);
@@ -16,4 +16,4 @@ class Migration20250416034358 extends migrations_1.Migration {
16
16
  }
17
17
  }
18
18
  exports.Migration20250416034358 = Migration20250416034358;
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA0MTYwMzQzNTguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tZW1iZXJzaGlwL21pZ3JhdGlvbnMvTWlncmF0aW9uMjAyNTA0MTYwMzQzNTgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0RBQWtEO0FBRWxELE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFFM0MsS0FBSyxDQUFDLEVBQUU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLGdHQUFnRyxDQUFDLENBQUM7UUFDOUcsSUFBSSxDQUFDLE1BQU0sQ0FBQywwRkFBMEYsQ0FBQyxDQUFDO1FBQ3hHLElBQUksQ0FBQyxNQUFNLENBQUMsaVVBQWlVLENBQUMsQ0FBQztRQUMvVSxJQUFJLENBQUMsTUFBTSxDQUFDLG1IQUFtSCxDQUFDLENBQUM7UUFDakksSUFBSSxDQUFDLE1BQU0sQ0FBQywrSEFBK0gsQ0FBQyxDQUFDO1FBQzdJLElBQUksQ0FBQyxNQUFNLENBQUMsaUhBQWlILENBQUMsQ0FBQztJQUNqSSxDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO0lBQzdELENBQUM7Q0FFRjtBQWZELDBEQWVDIn0=
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA0MTYwMzQzNTguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tZW1iZXJzaGlwL21pZ3JhdGlvbnMvTWlncmF0aW9uMjAyNTA0MTYwMzQzNTgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBQXFFO0FBRXJFLE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFFM0MsS0FBSyxDQUFDLEVBQUU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLGdHQUFnRyxDQUFDLENBQUM7UUFDOUcsSUFBSSxDQUFDLE1BQU0sQ0FBQywwRkFBMEYsQ0FBQyxDQUFDO1FBQ3hHLElBQUksQ0FBQyxNQUFNLENBQUMsaVVBQWlVLENBQUMsQ0FBQztRQUMvVSxJQUFJLENBQUMsTUFBTSxDQUFDLG1IQUFtSCxDQUFDLENBQUM7UUFDakksSUFBSSxDQUFDLE1BQU0sQ0FBQywrSEFBK0gsQ0FBQyxDQUFDO1FBQzdJLElBQUksQ0FBQyxNQUFNLENBQUMsaUhBQWlILENBQUMsQ0FBQztJQUNqSSxDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyw2Q0FBNkMsQ0FBQyxDQUFDO0lBQzdELENBQUM7Q0FFRjtBQWZELDBEQWVDIn0=
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Migration20250416231624 = void 0;
4
- const migrations_1 = require("@mikro-orm/migrations");
4
+ const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
5
5
  class Migration20250416231624 extends migrations_1.Migration {
6
6
  async up() {
7
7
  this.addSql(`create table if not exists "membership" ("id" text not null, "membership_points" integer not null, "member_tier_id" text not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "membership_pkey" primary key ("id"));`);
@@ -12,4 +12,4 @@ class Migration20250416231624 extends migrations_1.Migration {
12
12
  }
13
13
  }
14
14
  exports.Migration20250416231624 = Migration20250416231624;
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA0MTYyMzE2MjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tZW1iZXJzaGlwL21pZ3JhdGlvbnMvTWlncmF0aW9uMjAyNTA0MTYyMzE2MjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0RBQWtEO0FBRWxELE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFFM0MsS0FBSyxDQUFDLEVBQUU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLHVUQUF1VCxDQUFDLENBQUM7UUFDclUsSUFBSSxDQUFDLE1BQU0sQ0FBQywrR0FBK0csQ0FBQyxDQUFDO0lBQy9ILENBQUM7SUFFUSxLQUFLLENBQUMsSUFBSTtRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLDRDQUE0QyxDQUFDLENBQUM7SUFDNUQsQ0FBQztDQUVGO0FBWEQsMERBV0MifQ==
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA0MTYyMzE2MjQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tZW1iZXJzaGlwL21pZ3JhdGlvbnMvTWlncmF0aW9uMjAyNTA0MTYyMzE2MjQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBQXFFO0FBRXJFLE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFFM0MsS0FBSyxDQUFDLEVBQUU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLHVUQUF1VCxDQUFDLENBQUM7UUFDclUsSUFBSSxDQUFDLE1BQU0sQ0FBQywrR0FBK0csQ0FBQyxDQUFDO0lBQy9ILENBQUM7SUFFUSxLQUFLLENBQUMsSUFBSTtRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLDRDQUE0QyxDQUFDLENBQUM7SUFDNUQsQ0FBQztDQUVGO0FBWEQsMERBV0MifQ==
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Migration20250418020235 = void 0;
4
- const migrations_1 = require("@mikro-orm/migrations");
4
+ const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
5
5
  class Migration20250418020235 extends migrations_1.Migration {
6
6
  async up() {
7
7
  this.addSql(`alter table if exists "member_tier" add column if not exists "privilege_description" text null;`);
@@ -11,4 +11,4 @@ class Migration20250418020235 extends migrations_1.Migration {
11
11
  }
12
12
  }
13
13
  exports.Migration20250418020235 = Migration20250418020235;
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA0MTgwMjAyMzUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tZW1iZXJzaGlwL21pZ3JhdGlvbnMvTWlncmF0aW9uMjAyNTA0MTgwMjAyMzUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0RBQWtEO0FBRWxELE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFFM0MsS0FBSyxDQUFDLEVBQUU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLGlHQUFpRyxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsb0ZBQW9GLENBQUMsQ0FBQztJQUNwRyxDQUFDO0NBRUY7QUFWRCwwREFVQyJ9
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA0MTgwMjAyMzUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tZW1iZXJzaGlwL21pZ3JhdGlvbnMvTWlncmF0aW9uMjAyNTA0MTgwMjAyMzUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBQXFFO0FBRXJFLE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFFM0MsS0FBSyxDQUFDLEVBQUU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLGlHQUFpRyxDQUFDLENBQUM7SUFDakgsQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsb0ZBQW9GLENBQUMsQ0FBQztJQUNwRyxDQUFDO0NBRUY7QUFWRCwwREFVQyJ9
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Migration20250420014232 = void 0;
4
- const migrations_1 = require("@mikro-orm/migrations");
4
+ const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
5
5
  class Migration20250420014232 extends migrations_1.Migration {
6
6
  async up() {
7
7
  this.addSql(`alter table if exists "membership_config" drop constraint if exists "membership_config_store_id_unique";`);
@@ -14,4 +14,4 @@ class Migration20250420014232 extends migrations_1.Migration {
14
14
  }
15
15
  }
16
16
  exports.Migration20250420014232 = Migration20250420014232;
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA0MjAwMTQyMzIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tZW1iZXJzaGlwL21pZ3JhdGlvbnMvTWlncmF0aW9uMjAyNTA0MjAwMTQyMzIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsc0RBQWtEO0FBRWxELE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFFM0MsS0FBSyxDQUFDLEVBQUU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLDBHQUEwRyxDQUFDLENBQUM7UUFDeEgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxWUFBcVksQ0FBQyxDQUFDO1FBQ25aLElBQUksQ0FBQyxNQUFNLENBQUMsdUlBQXVJLENBQUMsQ0FBQztRQUNySixJQUFJLENBQUMsTUFBTSxDQUFDLDZIQUE2SCxDQUFDLENBQUM7SUFDN0ksQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUNuRSxDQUFDO0NBRUY7QUFiRCwwREFhQyJ9
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTA0MjAwMTQyMzIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9tZW1iZXJzaGlwL21pZ3JhdGlvbnMvTWlncmF0aW9uMjAyNTA0MjAwMTQyMzIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBQXFFO0FBRXJFLE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFFM0MsS0FBSyxDQUFDLEVBQUU7UUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLDBHQUEwRyxDQUFDLENBQUM7UUFDeEgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxxWUFBcVksQ0FBQyxDQUFDO1FBQ25aLElBQUksQ0FBQyxNQUFNLENBQUMsdUlBQXVJLENBQUMsQ0FBQztRQUNySixJQUFJLENBQUMsTUFBTSxDQUFDLDZIQUE2SCxDQUFDLENBQUM7SUFDN0ksQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsbURBQW1ELENBQUMsQ0FBQztJQUNuRSxDQUFDO0NBRUY7QUFiRCwwREFhQyJ9