@hartl-services/medusa-affiliate 0.3.0

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 (169) hide show
  1. package/.medusa/server/src/admin/index.js +3739 -0
  2. package/.medusa/server/src/admin/index.mjs +3738 -0
  3. package/.medusa/server/src/api/admin/affiliate-applications/[id]/approve/route.js +28 -0
  4. package/.medusa/server/src/api/admin/affiliate-applications/[id]/reject/route.js +19 -0
  5. package/.medusa/server/src/api/admin/affiliate-applications/route.js +23 -0
  6. package/.medusa/server/src/api/admin/affiliate-distribution-reports/query.js +171 -0
  7. package/.medusa/server/src/api/admin/affiliate-distribution-reports/route.js +13 -0
  8. package/.medusa/server/src/api/admin/affiliate-program-settings/route.js +27 -0
  9. package/.medusa/server/src/api/admin/affiliate-reports/[id]/route.js +45 -0
  10. package/.medusa/server/src/api/admin/affiliate-reports/route.js +27 -0
  11. package/.medusa/server/src/api/admin/affiliates/[id]/consignment-reminders/route.js +31 -0
  12. package/.medusa/server/src/api/admin/affiliates/[id]/consignment-transfers/route.js +41 -0
  13. package/.medusa/server/src/api/admin/affiliates/[id]/coupon-codes/[coupon_id]/reconcile/route.js +34 -0
  14. package/.medusa/server/src/api/admin/affiliates/[id]/coupon-codes/[coupon_id]/revoke/route.js +36 -0
  15. package/.medusa/server/src/api/admin/affiliates/[id]/coupon-codes/[coupon_id]/rotate/route.js +40 -0
  16. package/.medusa/server/src/api/admin/affiliates/[id]/coupon-codes/route.js +56 -0
  17. package/.medusa/server/src/api/admin/affiliates/[id]/distribution/route.js +45 -0
  18. package/.medusa/server/src/api/admin/affiliates/[id]/inactive/route.js +20 -0
  19. package/.medusa/server/src/api/admin/affiliates/[id]/route.js +50 -0
  20. package/.medusa/server/src/api/admin/affiliates/[id]/slugs/[slug_id]/route.js +19 -0
  21. package/.medusa/server/src/api/admin/affiliates/[id]/slugs/route.js +26 -0
  22. package/.medusa/server/src/api/admin/affiliates/route.js +43 -0
  23. package/.medusa/server/src/api/admin/consignment-report-response.js +36 -0
  24. package/.medusa/server/src/api/admin/consignment-reports/[id]/approve/route.js +25 -0
  25. package/.medusa/server/src/api/admin/consignment-reports/[id]/correct/route.js +18 -0
  26. package/.medusa/server/src/api/admin/consignment-reports/[id]/reject/route.js +15 -0
  27. package/.medusa/server/src/api/admin/consignment-reports/[id]/route.js +11 -0
  28. package/.medusa/server/src/api/admin/consignment-reports/route.js +27 -0
  29. package/.medusa/server/src/api/admin/customers/[id]/affiliate/route.js +50 -0
  30. package/.medusa/server/src/api/admin/orders/[id]/affiliate-attribution/route.js +30 -0
  31. package/.medusa/server/src/api/affiliate-coupon-http.js +152 -0
  32. package/.medusa/server/src/api/affiliate-referral-cookie.js +34 -0
  33. package/.medusa/server/src/api/affiliate-self-service-http.js +37 -0
  34. package/.medusa/server/src/api/middlewares.js +786 -0
  35. package/.medusa/server/src/api/store/affiliate-referrals/apply-coupon/route.js +47 -0
  36. package/.medusa/server/src/api/store/affiliate-referrals/capture/route.js +76 -0
  37. package/.medusa/server/src/api/store/affiliate-referrals/carts/[cart_id]/route.js +20 -0
  38. package/.medusa/server/src/api/store/affiliates/consignment-inventory/route.js +53 -0
  39. package/.medusa/server/src/api/store/affiliates/consignment-report-response.js +31 -0
  40. package/.medusa/server/src/api/store/affiliates/consignment-reports/[id]/submit/route.js +40 -0
  41. package/.medusa/server/src/api/store/affiliates/consignment-reports/route.js +43 -0
  42. package/.medusa/server/src/api/store/affiliates/coupon-labels/route.js +14 -0
  43. package/.medusa/server/src/api/store/affiliates/me/commissions/route.js +35 -0
  44. package/.medusa/server/src/api/store/affiliates/me/coupon-codes/[coupon_id]/revoke/route.js +36 -0
  45. package/.medusa/server/src/api/store/affiliates/me/coupon-codes/[coupon_id]/rotate/route.js +40 -0
  46. package/.medusa/server/src/api/store/affiliates/me/coupon-codes/route.js +55 -0
  47. package/.medusa/server/src/api/store/affiliates/me/dashboard/route.js +15 -0
  48. package/.medusa/server/src/api/store/affiliates/me/route.js +85 -0
  49. package/.medusa/server/src/api/store/affiliates/me/slugs/[slug_id]/route.js +29 -0
  50. package/.medusa/server/src/api/store/affiliates/me/slugs/route.js +34 -0
  51. package/.medusa/server/src/api/store/affiliates/own-order-discount/route.js +22 -0
  52. package/.medusa/server/src/api/store/affiliates/own-order-promotion/route.js +30 -0
  53. package/.medusa/server/src/api/store/affiliates/register/route.js +27 -0
  54. package/.medusa/server/src/api/store/affiliates/resolve-referral/route.js +34 -0
  55. package/.medusa/server/src/api/validators.js +52 -0
  56. package/.medusa/server/src/api/wire-response.js +10 -0
  57. package/.medusa/server/src/integration/email-events.js +51 -0
  58. package/.medusa/server/src/integrations/inventory-transfer/batch-management-transfer-adapter.js +36 -0
  59. package/.medusa/server/src/integrations/inventory-transfer/native-inventory-transfer-adapter.js +30 -0
  60. package/.medusa/server/src/integrations/inventory-transfer/resolve-inventory-transfer-adapter.js +46 -0
  61. package/.medusa/server/src/integrations/inventory-transfer/types.js +3 -0
  62. package/.medusa/server/src/jobs/affiliate-attribution-expiry.js +20 -0
  63. package/.medusa/server/src/jobs/affiliate-consignment-report-reminders.js +15 -0
  64. package/.medusa/server/src/jobs/affiliate-promotion-freshness.js +24 -0
  65. package/.medusa/server/src/lib/query-string.js +15 -0
  66. package/.medusa/server/src/modules/affiliate/domain/affiliate-attribution-policy.js +81 -0
  67. package/.medusa/server/src/modules/affiliate/domain/affiliate-coupon-policy.js +61 -0
  68. package/.medusa/server/src/modules/affiliate/domain/commission-policy.js +33 -0
  69. package/.medusa/server/src/modules/affiliate/domain/consignment-reminder-rules.js +74 -0
  70. package/.medusa/server/src/modules/affiliate/domain/email-normalization.js +20 -0
  71. package/.medusa/server/src/modules/affiliate/domain/own-order-coupon-code.js +37 -0
  72. package/.medusa/server/src/modules/affiliate/domain/plugin-options.js +40 -0
  73. package/.medusa/server/src/modules/affiliate/index.js +13 -0
  74. package/.medusa/server/src/modules/affiliate/migrations/Migration20260827085154.js +423 -0
  75. package/.medusa/server/src/modules/affiliate/models/affiliate-application.js +38 -0
  76. package/.medusa/server/src/modules/affiliate/models/affiliate-cart-referral.js +65 -0
  77. package/.medusa/server/src/modules/affiliate/models/affiliate-code-redemption.js +41 -0
  78. package/.medusa/server/src/modules/affiliate/models/affiliate-coupon.js +55 -0
  79. package/.medusa/server/src/modules/affiliate/models/affiliate-distribution-settings.js +22 -0
  80. package/.medusa/server/src/modules/affiliate/models/affiliate-order-attribution.js +49 -0
  81. package/.medusa/server/src/modules/affiliate/models/affiliate-program-settings.js +28 -0
  82. package/.medusa/server/src/modules/affiliate/models/affiliate-referral-session.js +34 -0
  83. package/.medusa/server/src/modules/affiliate/models/affiliate-slug.js +27 -0
  84. package/.medusa/server/src/modules/affiliate/models/affiliate.js +49 -0
  85. package/.medusa/server/src/modules/affiliate/models/commission-entry.js +62 -0
  86. package/.medusa/server/src/modules/affiliate/models/consignment-report-line.js +21 -0
  87. package/.medusa/server/src/modules/affiliate/models/consignment-report.js +31 -0
  88. package/.medusa/server/src/modules/affiliate/models/consignment-transfer-line.js +16 -0
  89. package/.medusa/server/src/modules/affiliate/models/consignment-transfer.js +20 -0
  90. package/.medusa/server/src/modules/affiliate/models/customer-affiliate-assignment.js +58 -0
  91. package/.medusa/server/src/modules/affiliate/service.js +2321 -0
  92. package/.medusa/server/src/modules/affiliate/services/affiliate-application-manager.js +171 -0
  93. package/.medusa/server/src/modules/affiliate/services/affiliate-coupon-manager.js +441 -0
  94. package/.medusa/server/src/modules/affiliate/services/affiliate-discount.service.js +55 -0
  95. package/.medusa/server/src/modules/affiliate/services/affiliate-manager.js +242 -0
  96. package/.medusa/server/src/modules/affiliate/services/affiliate-partner-portal.service.js +138 -0
  97. package/.medusa/server/src/modules/affiliate/services/affiliate-report.service.js +436 -0
  98. package/.medusa/server/src/modules/affiliate/services/affiliate-slug-manager.js +163 -0
  99. package/.medusa/server/src/modules/affiliate/services/commission-ledger.service.js +729 -0
  100. package/.medusa/server/src/modules/affiliate/services/customer-affiliate-assignment-manager.js +350 -0
  101. package/.medusa/server/src/modules/affiliate/services/order-attribution-manager.js +1051 -0
  102. package/.medusa/server/src/modules/affiliate/services/referral-lifecycle-manager.js +1420 -0
  103. package/.medusa/server/src/modules/affiliate/services/utils.js +49 -0
  104. package/.medusa/server/src/modules/affiliate/types/internal.js +3 -0
  105. package/.medusa/server/src/paths/affiliate.js +7 -0
  106. package/.medusa/server/src/paths/index.js +18 -0
  107. package/.medusa/server/src/schemas/index.js +18 -0
  108. package/.medusa/server/src/schemas/store.js +24 -0
  109. package/.medusa/server/src/subscribers/affiliate-cart-updated.js +92 -0
  110. package/.medusa/server/src/subscribers/affiliate-order-canceled.js +70 -0
  111. package/.medusa/server/src/subscribers/affiliate-order-placed.js +63 -0
  112. package/.medusa/server/src/subscribers/affiliate-order-return-received.js +67 -0
  113. package/.medusa/server/src/subscribers/affiliate-product-eligibility-updated.js +87 -0
  114. package/.medusa/server/src/types/admin-api.js +3 -0
  115. package/.medusa/server/src/types/enums.js +53 -0
  116. package/.medusa/server/src/types/index.js +32 -0
  117. package/.medusa/server/src/types/public.js +3 -0
  118. package/.medusa/server/src/types/store-api.js +3 -0
  119. package/.medusa/server/src/utils/affiliate-cart-operation-lock.js +316 -0
  120. package/.medusa/server/src/utils/affiliate-promotion-mutation-authorization.js +49 -0
  121. package/.medusa/server/src/utils/cart-promotions.js +9 -0
  122. package/.medusa/server/src/utils/money.js +79 -0
  123. package/.medusa/server/src/utils/promotion-code-availability.js +34 -0
  124. package/.medusa/server/src/utils/registered-email-checkout.js +101 -0
  125. package/.medusa/server/src/utils/resolve-services.js +7 -0
  126. package/.medusa/server/src/utils/settle-cart-promotions.js +44 -0
  127. package/.medusa/server/src/workflows/affiliate/affiliate-coupon-cart.js +215 -0
  128. package/.medusa/server/src/workflows/affiliate/affiliate-coupon-command-authorization.js +20 -0
  129. package/.medusa/server/src/workflows/affiliate/apply-affiliate-coupon.js +174 -0
  130. package/.medusa/server/src/workflows/affiliate/apply-own-order-promotion.js +89 -0
  131. package/.medusa/server/src/workflows/affiliate/approve-consignment-report.js +186 -0
  132. package/.medusa/server/src/workflows/affiliate/correct-approved-consignment-report.js +263 -0
  133. package/.medusa/server/src/workflows/affiliate/create-affiliate-coupon.js +35 -0
  134. package/.medusa/server/src/workflows/affiliate/create-commission-correction-for-cancellation.js +21 -0
  135. package/.medusa/server/src/workflows/affiliate/create-commission-correction-for-refund.js +24 -0
  136. package/.medusa/server/src/workflows/affiliate/create-commission-for-order.js +17 -0
  137. package/.medusa/server/src/workflows/affiliate/deactivate-affiliate.js +89 -0
  138. package/.medusa/server/src/workflows/affiliate/enable-distribution.js +120 -0
  139. package/.medusa/server/src/workflows/affiliate/enrich-affiliate-report.js +75 -0
  140. package/.medusa/server/src/workflows/affiliate/ensure-affiliate-coupon-promotion.js +410 -0
  141. package/.medusa/server/src/workflows/affiliate/ensure-affiliate-own-order-promotion.js +240 -0
  142. package/.medusa/server/src/workflows/affiliate/ensure-default-affiliate-coupon.js +32 -0
  143. package/.medusa/server/src/workflows/affiliate/expire-affiliate-attribution-state.js +131 -0
  144. package/.medusa/server/src/workflows/affiliate/finalize-affiliate-order-attribution.js +82 -0
  145. package/.medusa/server/src/workflows/affiliate/payment-authorization.js +33 -0
  146. package/.medusa/server/src/workflows/affiliate/promotion-eligibility.js +179 -0
  147. package/.medusa/server/src/workflows/affiliate/reconcile-affiliate-cart-referral.js +219 -0
  148. package/.medusa/server/src/workflows/affiliate/reconcile-affiliate-coupon.js +388 -0
  149. package/.medusa/server/src/workflows/affiliate/refresh-affiliate-promotions.js +114 -0
  150. package/.medusa/server/src/workflows/affiliate/resolve-coupon-labels.js +40 -0
  151. package/.medusa/server/src/workflows/affiliate/revoke-affiliate-coupon.js +29 -0
  152. package/.medusa/server/src/workflows/affiliate/rotate-affiliate-coupon.js +36 -0
  153. package/.medusa/server/src/workflows/affiliate/run-consignment-report-reminders.js +58 -0
  154. package/.medusa/server/src/workflows/affiliate/submit-consignment-report.js +279 -0
  155. package/.medusa/server/src/workflows/affiliate/transfer-batch-aware-inventory.js +172 -0
  156. package/.medusa/server/src/workflows/affiliate/transfer-consignment-stock.js +106 -0
  157. package/.medusa/server/src/workflows/affiliate/update-affiliate-coupon-discounts.js +129 -0
  158. package/.medusa/server/src/workflows/affiliate/utils.js +118 -0
  159. package/.medusa/server/src/workflows/hooks/complete-cart-affiliate-attribution.js +57 -0
  160. package/.medusa/server/src/workflows/hooks/complete-cart-order-created-composition.js +111 -0
  161. package/.medusa/server/src/workflows/hooks/complete-cart-own-order-discount.js +75 -0
  162. package/.medusa/server/src/workflows/hooks/enforce-unique-promotion-codes.js +33 -0
  163. package/.medusa/server/src/workflows/hooks/validate-affiliate-customer-code.js +239 -0
  164. package/.medusa/server/src/workflows/hooks/validate-complete-cart-affiliate-referral.js +137 -0
  165. package/LICENSE +21 -0
  166. package/README.md +799 -0
  167. package/dist/integration/email-events.d.ts +20 -0
  168. package/dist/integration/email-events.js +50 -0
  169. package/package.json +84 -0
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = exports.GET = void 0;
4
+ const affiliate_1 = require("@hartl-services/medusa-food-supplements-contracts/schemas/affiliate");
5
+ const resolve_services_1 = require("../../../../../utils/resolve-services");
6
+ const create_affiliate_coupon_1 = require("../../../../../workflows/affiliate/create-affiliate-coupon");
7
+ const affiliate_coupon_http_1 = require("../../../../affiliate-coupon-http");
8
+ const wire_response_1 = require("../../../../wire-response");
9
+ const GET = async (req, res) => {
10
+ const affiliateService = (0, resolve_services_1.resolveAffiliateService)(req.scope);
11
+ const affiliate = await (0, affiliate_coupon_http_1.requireAdminCouponAffiliate)(affiliateService, req.params.id);
12
+ const { lifecycle_status, provisioning_status, limit, offset } = req.validatedQuery;
13
+ const [couponCodes, count] = await affiliateService.listAffiliateCouponRecordsWithCount({
14
+ affiliate_id: affiliate.id,
15
+ lifecycle_status,
16
+ provisioning_status,
17
+ limit,
18
+ offset,
19
+ });
20
+ res.json((0, wire_response_1.toWireResponse)(affiliate_1.ListAdminAffiliateCouponCodesResponseSchema, {
21
+ coupon_codes: couponCodes.map((coupon) => (0, affiliate_coupon_http_1.toAdminAffiliateCouponCode)(coupon, affiliate)),
22
+ count,
23
+ limit,
24
+ offset,
25
+ }));
26
+ };
27
+ exports.GET = GET;
28
+ const POST = async (req, res) => {
29
+ const affiliateService = (0, resolve_services_1.resolveAffiliateService)(req.scope);
30
+ const affiliate = await (0, affiliate_coupon_http_1.requireAdminCouponAffiliate)(affiliateService, req.params.id);
31
+ try {
32
+ const { result: couponCode } = await (0, create_affiliate_coupon_1.createAffiliateCouponWorkflow)(req.scope).run({
33
+ input: {
34
+ affiliate_id: affiliate.id,
35
+ code: req.validatedBody.code,
36
+ creation_idempotency_key: req.validatedBody.idempotency_key,
37
+ created_by_type: "admin",
38
+ created_by_id: req.auth_context.actor_id,
39
+ },
40
+ });
41
+ res.status(201).json((0, wire_response_1.toWireResponse)(affiliate_1.AdminAffiliateCouponCodeResponseSchema, {
42
+ coupon_code: (0, affiliate_coupon_http_1.toAdminAffiliateCouponCode)(couponCode, affiliate),
43
+ }));
44
+ }
45
+ catch (error) {
46
+ if (await (0, affiliate_coupon_http_1.respondToAffiliateCouponCommandError)(res, error, affiliateService, {
47
+ affiliate_id: affiliate.id,
48
+ idempotency_key: req.validatedBody.idempotency_key,
49
+ })) {
50
+ return;
51
+ }
52
+ throw error;
53
+ }
54
+ };
55
+ exports.POST = POST;
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2FmZmlsaWF0ZXMvW2lkXS9jb3Vwb24tY29kZXMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EsbUdBRzRFO0FBTTVFLDRFQUErRTtBQUMvRSx3R0FBMEc7QUFDMUcsNkVBSTBDO0FBQzFDLDZEQUEwRDtBQWFuRCxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQTRELEVBQzVELEdBQTBELEVBQzNDLEVBQUU7SUFDakIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDBDQUF1QixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzRCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUEsbURBQTJCLEVBQ2pELGdCQUFnQixFQUNoQixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDZCxDQUFBO0lBQ0QsTUFBTSxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FDNUQsR0FBRyxDQUFDLGNBQWMsQ0FBQTtJQUNwQixNQUFNLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxHQUN4QixNQUFNLGdCQUFnQixDQUFDLG1DQUFtQyxDQUFDO1FBQ3pELFlBQVksRUFBRSxTQUFTLENBQUMsRUFBRTtRQUMxQixnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLEtBQUs7UUFDTCxNQUFNO0tBQ1AsQ0FBQyxDQUFBO0lBRUosR0FBRyxDQUFDLElBQUksQ0FDTixJQUFBLDhCQUFjLEVBQUMsdURBQTJDLEVBQUU7UUFDMUQsWUFBWSxFQUFFLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUN2QyxJQUFBLGtEQUEwQixFQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FDOUM7UUFDRCxLQUFLO1FBQ0wsS0FBSztRQUNMLE1BQU07S0FDUCxDQUFDLENBQ0gsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQTlCWSxRQUFBLEdBQUcsT0E4QmY7QUFFTSxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3ZCLEdBQXFELEVBQ3JELEdBQXFELEVBQ3RDLEVBQUU7SUFDakIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDBDQUF1QixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzRCxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUEsbURBQTJCLEVBQ2pELGdCQUFnQixFQUNoQixHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDZCxDQUFBO0lBRUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLElBQUEsdURBQTZCLEVBQ2hFLEdBQUcsQ0FBQyxLQUFLLENBQ1YsQ0FBQyxHQUFHLENBQUM7WUFDSixLQUFLLEVBQUU7Z0JBQ0wsWUFBWSxFQUFFLFNBQVMsQ0FBQyxFQUFFO2dCQUMxQixJQUFJLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJO2dCQUM1Qix3QkFBd0IsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLGVBQWU7Z0JBQzNELGVBQWUsRUFBRSxPQUFPO2dCQUN4QixhQUFhLEVBQUUsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRO2FBQ3pDO1NBQ0YsQ0FBQyxDQUFBO1FBRUYsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQ2xCLElBQUEsOEJBQWMsRUFBQyxrREFBc0MsRUFBRTtZQUNyRCxXQUFXLEVBQUUsSUFBQSxrREFBMEIsRUFBQyxVQUFVLEVBQUUsU0FBUyxDQUFDO1NBQy9ELENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUNFLE1BQU0sSUFBQSw0REFBb0MsRUFDeEMsR0FBRyxFQUNILEtBQUssRUFDTCxnQkFBZ0IsRUFDaEI7WUFDRSxZQUFZLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDMUIsZUFBZSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsZUFBZTtTQUNuRCxDQUNGLEVBQ0QsQ0FBQztZQUNELE9BQU07UUFDUixDQUFDO1FBQ0QsTUFBTSxLQUFLLENBQUE7SUFDYixDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBNUNZLFFBQUEsSUFBSSxRQTRDaEIifQ==
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const resolve_services_1 = require("../../../../../utils/resolve-services");
6
+ const enable_distribution_1 = require("../../../../../workflows/affiliate/enable-distribution");
7
+ const toDistribution = (settings) => ({
8
+ affiliate_id: settings.affiliate_id,
9
+ stock_location_id: settings.stock_location_id,
10
+ internal_sales_channel_id: settings.internal_sales_channel_id,
11
+ region_id: settings.region_id,
12
+ shipping_option_id: settings.shipping_option_id,
13
+ own_order_promotion_id: settings.own_order_promotion_id ?? null,
14
+ enabled: settings.enabled,
15
+ });
16
+ const GET = async (req, res) => {
17
+ const settings = await (0, resolve_services_1.resolveAffiliateService)(req.scope).getAffiliateDistributionSettings(req.params.id);
18
+ res.json({
19
+ distribution: settings ? toDistribution(settings) : null,
20
+ });
21
+ };
22
+ exports.GET = GET;
23
+ const POST = async (req, res) => {
24
+ if (!req.validatedBody.enabled) {
25
+ const settings = await (0, resolve_services_1.resolveAffiliateService)(req.scope).setAffiliateDistributionEnabled(req.params.id, false);
26
+ res.json({
27
+ distribution: toDistribution(settings),
28
+ });
29
+ return;
30
+ }
31
+ if (!req.validatedBody.region_id ||
32
+ !req.validatedBody.shipping_option_id) {
33
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Die validierte Kommissionsvertriebs-Konfiguration ist unvollständig.");
34
+ }
35
+ const { result } = await (0, enable_distribution_1.enableAffiliateDistributionWorkflow)(req.scope).run({
36
+ input: {
37
+ affiliate_id: req.params.id,
38
+ region_id: req.validatedBody.region_id,
39
+ shipping_option_id: req.validatedBody.shipping_option_id,
40
+ },
41
+ });
42
+ res.json({ distribution: toDistribution(result) });
43
+ };
44
+ exports.POST = POST;
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2FmZmlsaWF0ZXMvW2lkXS9kaXN0cmlidXRpb24vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EscURBQXVEO0FBSXZELDRFQUErRTtBQUMvRSxnR0FFK0Q7QUFNL0QsTUFBTSxjQUFjLEdBQUcsQ0FBQyxRQVF2QixFQUE4RCxFQUFFLENBQUMsQ0FBQztJQUNqRSxZQUFZLEVBQUUsUUFBUSxDQUFDLFlBQVk7SUFDbkMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLGlCQUFpQjtJQUM3Qyx5QkFBeUIsRUFBRSxRQUFRLENBQUMseUJBQXlCO0lBQzdELFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUztJQUM3QixrQkFBa0IsRUFBRSxRQUFRLENBQUMsa0JBQWtCO0lBQy9DLHNCQUFzQixFQUFFLFFBQVEsQ0FBQyxzQkFBc0IsSUFBSSxJQUFJO0lBQy9ELE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztDQUMxQixDQUFDLENBQUE7QUFFSyxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQStCLEVBQy9CLEdBQWtELEVBQ2xELEVBQUU7SUFDRixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsMENBQXVCLEVBQzVDLEdBQUcsQ0FBQyxLQUFLLENBQ1YsQ0FBQyxnQ0FBZ0MsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBRWpELEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDUCxZQUFZLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7S0FDekQsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBWFksUUFBQSxHQUFHLE9BV2Y7QUFFTSxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3ZCLEdBQWdFLEVBQ2hFLEdBQWtELEVBQ2xELEVBQUU7SUFDRixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUMvQixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsMENBQXVCLEVBQzVDLEdBQUcsQ0FBQyxLQUFLLENBQ1YsQ0FBQywrQkFBK0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUN2RCxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ1AsWUFBWSxFQUFFLGNBQWMsQ0FBQyxRQUFRLENBQUM7U0FDdkMsQ0FBQyxDQUFBO1FBQ0YsT0FBTTtJQUNSLENBQUM7SUFDRCxJQUNFLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxTQUFTO1FBQzVCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxrQkFBa0IsRUFDckMsQ0FBQztRQUNELE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHNFQUFzRSxDQUN2RSxDQUFBO0lBQ0gsQ0FBQztJQUNELE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEseURBQW1DLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUMxRSxLQUFLLEVBQUU7WUFDTCxZQUFZLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzNCLFNBQVMsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLFNBQVM7WUFDdEMsa0JBQWtCLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxrQkFBa0I7U0FDekQ7S0FDRixDQUFDLENBQUE7SUFFRixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsWUFBWSxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUE7QUFDcEQsQ0FBQyxDQUFBO0FBL0JZLFFBQUEsSUFBSSxRQStCaEIifQ==
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = void 0;
4
+ const affiliate_1 = require("@hartl-services/medusa-food-supplements-contracts/schemas/affiliate");
5
+ const wire_response_1 = require("../../../../wire-response");
6
+ const ensure_affiliate_own_order_promotion_1 = require("../../../../../workflows/affiliate/ensure-affiliate-own-order-promotion");
7
+ const deactivate_affiliate_1 = require("../../../../../workflows/affiliate/deactivate-affiliate");
8
+ const POST = async (req, res) => {
9
+ const { result: inactive } = await (0, deactivate_affiliate_1.deactivateAffiliateWorkflow)(req.scope).run({
10
+ input: { affiliate_id: req.params.id },
11
+ });
12
+ const { result: affiliate } = await (0, ensure_affiliate_own_order_promotion_1.ensureAffiliateOwnOrderPromotionWorkflow)(req.scope).run({
13
+ input: { affiliate_id: inactive.id },
14
+ });
15
+ res.json((0, wire_response_1.toWireResponse)(affiliate_1.AffiliateResponseSchema, {
16
+ affiliate,
17
+ }));
18
+ };
19
+ exports.POST = POST;
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2FmZmlsaWF0ZXMvW2lkXS9pbmFjdGl2ZS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxtR0FBNkc7QUFJN0csNkRBQTBEO0FBQzFELGtJQUFrSTtBQUNsSSxrR0FBcUc7QUFFOUYsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUErQixFQUMvQixHQUFzQyxFQUN0QyxFQUFFO0lBQ0YsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLElBQUEsa0RBQTJCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUM1RSxLQUFLLEVBQUUsRUFBRSxZQUFZLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUU7S0FDdkMsQ0FBQyxDQUFBO0lBQ0YsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FDekIsTUFBTSxJQUFBLCtFQUF3QyxFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDNUQsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7S0FDckMsQ0FBQyxDQUFBO0lBRUosR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFBLDhCQUFjLEVBQUMsbUNBQXVCLEVBQUU7UUFDL0MsU0FBUztLQUNWLENBQUMsQ0FBQyxDQUFBO0FBQ0wsQ0FBQyxDQUFBO0FBZlksUUFBQSxJQUFJLFFBZWhCIn0=
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = exports.GET = void 0;
4
+ const affiliate_1 = require("@hartl-services/medusa-food-supplements-contracts/schemas/affiliate");
5
+ const resolve_services_1 = require("../../../../utils/resolve-services");
6
+ const ensure_default_affiliate_coupon_1 = require("../../../../workflows/affiliate/ensure-default-affiliate-coupon");
7
+ const ensure_affiliate_own_order_promotion_1 = require("../../../../workflows/affiliate/ensure-affiliate-own-order-promotion");
8
+ const deactivate_affiliate_1 = require("../../../../workflows/affiliate/deactivate-affiliate");
9
+ const reconcile_affiliate_coupon_1 = require("../../../../workflows/affiliate/reconcile-affiliate-coupon");
10
+ const update_affiliate_coupon_discounts_1 = require("../../../../workflows/affiliate/update-affiliate-coupon-discounts");
11
+ const wire_response_1 = require("../../../wire-response");
12
+ const GET = async (req, res) => {
13
+ const affiliateService = (0, resolve_services_1.resolveAffiliateService)(req.scope);
14
+ const affiliate = await affiliateService.retrieveAffiliateRecord(req.params.id);
15
+ res.json((0, wire_response_1.toWireResponse)(affiliate_1.AffiliateResponseSchema, {
16
+ affiliate,
17
+ }));
18
+ };
19
+ exports.GET = GET;
20
+ const POST = async (req, res) => {
21
+ const affiliateService = (0, resolve_services_1.resolveAffiliateService)(req.scope);
22
+ const { status: _status, ...update } = req.validatedBody;
23
+ const updated = req.validatedBody.status === "inactive"
24
+ ? (await (0, deactivate_affiliate_1.deactivateAffiliateWorkflow)(req.scope).run({
25
+ input: {
26
+ affiliate_id: req.params.id,
27
+ update,
28
+ },
29
+ })).result
30
+ : await (0, update_affiliate_coupon_discounts_1.updateAffiliateWithCouponDiscountReconciliation)(req.scope, {
31
+ id: req.params.id,
32
+ ...req.validatedBody,
33
+ });
34
+ if (updated.status === "active") {
35
+ await (0, ensure_default_affiliate_coupon_1.ensureDefaultAffiliateCouponWorkflow)(req.scope).run({
36
+ input: { affiliate_id: updated.id },
37
+ });
38
+ }
39
+ else if (req.validatedBody.status !== "inactive") {
40
+ await (0, reconcile_affiliate_coupon_1.reconcileAffiliateCouponsForAffiliate)(req.scope, updated.id);
41
+ }
42
+ const { result: affiliate } = await (0, ensure_affiliate_own_order_promotion_1.ensureAffiliateOwnOrderPromotionWorkflow)(req.scope).run({
43
+ input: { affiliate_id: updated.id },
44
+ });
45
+ res.json((0, wire_response_1.toWireResponse)(affiliate_1.AffiliateResponseSchema, {
46
+ affiliate,
47
+ }));
48
+ };
49
+ exports.POST = POST;
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2FmZmlsaWF0ZXMvW2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSxtR0FBNkc7QUFHN0cseUVBQTRFO0FBQzVFLHFIQUFzSDtBQUN0SCwrSEFBK0g7QUFDL0gsK0ZBQWtHO0FBQ2xHLDJHQUFrSDtBQUNsSCx5SEFBbUk7QUFDbkksMERBQXVEO0FBS2hELE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdEIsR0FBK0IsRUFDL0IsR0FBc0MsRUFDdEMsRUFBRTtJQUNGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSwwQ0FBdUIsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBRS9FLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBQSw4QkFBYyxFQUFDLG1DQUF1QixFQUFFO1FBQy9DLFNBQVM7S0FDVixDQUFDLENBQUMsQ0FBQTtBQUNMLENBQUMsQ0FBQTtBQVZZLFFBQUEsR0FBRyxPQVVmO0FBRU0sTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUFvRCxFQUNwRCxHQUFzQyxFQUN0QyxFQUFFO0lBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDBDQUF1QixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzRCxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxHQUFHLE1BQU0sRUFBRSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUE7SUFDeEQsTUFBTSxPQUFPLEdBQ1gsR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssVUFBVTtRQUNyQyxDQUFDLENBQUMsQ0FDRSxNQUFNLElBQUEsa0RBQTJCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUMvQyxLQUFLLEVBQUU7Z0JBQ0wsWUFBWSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDM0IsTUFBTTthQUNQO1NBQ0YsQ0FBQyxDQUNILENBQUMsTUFBTTtRQUNWLENBQUMsQ0FBQyxNQUFNLElBQUEsbUZBQStDLEVBQUMsR0FBRyxDQUFDLEtBQUssRUFBRTtZQUMvRCxFQUFFLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2pCLEdBQUcsR0FBRyxDQUFDLGFBQWE7U0FDckIsQ0FBQyxDQUFBO0lBQ1IsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBQSxzRUFBb0MsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ3hELEtBQUssRUFBRSxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFO1NBQ3BDLENBQUMsQ0FBQTtJQUNKLENBQUM7U0FBTSxJQUFJLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ25ELE1BQU0sSUFBQSxrRUFBcUMsRUFBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNwRSxDQUFDO0lBQ0QsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FDekIsTUFBTSxJQUFBLCtFQUF3QyxFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDNUQsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLE9BQU8sQ0FBQyxFQUFFLEVBQUU7S0FDcEMsQ0FBQyxDQUFBO0lBRUosR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFBLDhCQUFjLEVBQUMsbUNBQXVCLEVBQUU7UUFDL0MsU0FBUztLQUNWLENBQUMsQ0FBQyxDQUFBO0FBQ0wsQ0FBQyxDQUFBO0FBbkNZLFFBQUEsSUFBSSxRQW1DaEIifQ==
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = void 0;
4
+ const affiliate_1 = require("@hartl-services/medusa-food-supplements-contracts/schemas/affiliate");
5
+ const resolve_services_1 = require("../../../../../../utils/resolve-services");
6
+ const wire_response_1 = require("../../../../../wire-response");
7
+ const POST = async (req, res) => {
8
+ const affiliateService = (0, resolve_services_1.resolveAffiliateService)(req.scope);
9
+ const slug = await affiliateService.updateAffiliateSlugRecord({
10
+ id: req.params.slug_id,
11
+ affiliate_id: req.params.id,
12
+ ...req.validatedBody,
13
+ });
14
+ res.json((0, wire_response_1.toWireResponse)(affiliate_1.AffiliateSlugResponseSchema, {
15
+ slug,
16
+ }));
17
+ };
18
+ exports.POST = POST;
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2FmZmlsaWF0ZXMvW2lkXS9zbHVncy9bc2x1Z19pZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EsbUdBQWlIO0FBR2pILCtFQUFrRjtBQUNsRixnRUFBNkQ7QUFLdEQsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUErQyxFQUMvQyxHQUEwQyxFQUMxQyxFQUFFO0lBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDBDQUF1QixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzRCxNQUFNLElBQUksR0FBRyxNQUFNLGdCQUFnQixDQUFDLHlCQUF5QixDQUFDO1FBQzVELEVBQUUsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU87UUFDdEIsWUFBWSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUMzQixHQUFHLEdBQUcsQ0FBQyxhQUFhO0tBQ3JCLENBQUMsQ0FBQTtJQUVGLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBQSw4QkFBYyxFQUFDLHVDQUEyQixFQUFFO1FBQ25ELElBQUk7S0FDTCxDQUFDLENBQUMsQ0FBQTtBQUNMLENBQUMsQ0FBQTtBQWRZLFFBQUEsSUFBSSxRQWNoQiJ9
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = exports.GET = void 0;
4
+ const affiliate_1 = require("@hartl-services/medusa-food-supplements-contracts/schemas/affiliate");
5
+ const resolve_services_1 = require("../../../../../utils/resolve-services");
6
+ const wire_response_1 = require("../../../../wire-response");
7
+ const GET = async (req, res) => {
8
+ const affiliateService = (0, resolve_services_1.resolveAffiliateService)(req.scope);
9
+ const slugs = await affiliateService.listAffiliateSlugRecords(req.params.id);
10
+ res.json((0, wire_response_1.toWireResponse)(affiliate_1.ListAffiliateSlugsResponseSchema, {
11
+ slugs,
12
+ }));
13
+ };
14
+ exports.GET = GET;
15
+ const POST = async (req, res) => {
16
+ const affiliateService = (0, resolve_services_1.resolveAffiliateService)(req.scope);
17
+ const slug = await affiliateService.createAffiliateSlugRecord({
18
+ affiliate_id: req.params.id,
19
+ ...req.validatedBody,
20
+ });
21
+ res.status(201).json((0, wire_response_1.toWireResponse)(affiliate_1.AffiliateSlugResponseSchema, {
22
+ slug,
23
+ }));
24
+ };
25
+ exports.POST = POST;
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2FmZmlsaWF0ZXMvW2lkXS9zbHVncy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSxtR0FHNEU7QUFNNUUsNEVBQStFO0FBQy9FLDZEQUEwRDtBQUtuRCxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQStCLEVBQy9CLEdBQStDLEVBQy9DLEVBQUU7SUFDRixNQUFNLGdCQUFnQixHQUFHLElBQUEsMENBQXVCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzNELE1BQU0sS0FBSyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsd0JBQXdCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUU1RSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUEsOEJBQWMsRUFBQyw0Q0FBZ0MsRUFBRTtRQUN4RCxLQUFLO0tBQ04sQ0FBQyxDQUFDLENBQUE7QUFDTCxDQUFDLENBQUE7QUFWWSxRQUFBLEdBQUcsT0FVZjtBQUVNLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBK0MsRUFDL0MsR0FBMEMsRUFDMUMsRUFBRTtJQUNGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSwwQ0FBdUIsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQztRQUM1RCxZQUFZLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQzNCLEdBQUcsR0FBRyxDQUFDLGFBQWE7S0FDckIsQ0FBQyxDQUFBO0lBRUYsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBQSw4QkFBYyxFQUFDLHVDQUEyQixFQUFFO1FBQy9ELElBQUk7S0FDTCxDQUFDLENBQUMsQ0FBQTtBQUNMLENBQUMsQ0FBQTtBQWJZLFFBQUEsSUFBSSxRQWFoQiJ9
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = exports.GET = void 0;
4
+ const affiliate_1 = require("@hartl-services/medusa-food-supplements-contracts/schemas/affiliate");
5
+ const resolve_services_1 = require("../../../utils/resolve-services");
6
+ const ensure_default_affiliate_coupon_1 = require("../../../workflows/affiliate/ensure-default-affiliate-coupon");
7
+ const ensure_affiliate_own_order_promotion_1 = require("../../../workflows/affiliate/ensure-affiliate-own-order-promotion");
8
+ const wire_response_1 = require("../../wire-response");
9
+ const GET = async (req, res) => {
10
+ const affiliateService = (0, resolve_services_1.resolveAffiliateService)(req.scope);
11
+ const { status, q, customer_id, limit, offset } = req.validatedQuery;
12
+ const [affiliates, count] = await affiliateService.listAffiliateRecords({
13
+ status,
14
+ q,
15
+ customer_id,
16
+ limit,
17
+ offset,
18
+ });
19
+ res.json((0, wire_response_1.toWireResponse)(affiliate_1.ListAffiliatesResponseSchema, {
20
+ affiliates,
21
+ count,
22
+ limit,
23
+ offset,
24
+ }));
25
+ };
26
+ exports.GET = GET;
27
+ const POST = async (req, res) => {
28
+ const affiliateService = (0, resolve_services_1.resolveAffiliateService)(req.scope);
29
+ const created = await affiliateService.createAffiliateRecord(req.validatedBody);
30
+ if (created.status === "active") {
31
+ await (0, ensure_default_affiliate_coupon_1.ensureDefaultAffiliateCouponWorkflow)(req.scope).run({
32
+ input: { affiliate_id: created.id },
33
+ });
34
+ }
35
+ const { result: affiliate } = await (0, ensure_affiliate_own_order_promotion_1.ensureAffiliateOwnOrderPromotionWorkflow)(req.scope).run({
36
+ input: { affiliate_id: created.id },
37
+ });
38
+ res.status(201).json((0, wire_response_1.toWireResponse)(affiliate_1.AffiliateResponseSchema, {
39
+ affiliate,
40
+ }));
41
+ };
42
+ exports.POST = POST;
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2FmZmlsaWF0ZXMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EsbUdBRzRFO0FBTTVFLHNFQUF5RTtBQUN6RSxrSEFBbUg7QUFDbkgsNEhBQTRIO0FBQzVILHVEQUFvRDtBQVM3QyxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQTJELEVBQzNELEdBQTJDLEVBQzNDLEVBQUU7SUFDRixNQUFNLGdCQUFnQixHQUFHLElBQUEsMENBQXVCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzNELE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FBQTtJQUNwRSxNQUFNLENBQUMsVUFBVSxFQUFFLEtBQUssQ0FBQyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsb0JBQW9CLENBQUM7UUFDdEUsTUFBTTtRQUNOLENBQUM7UUFDRCxXQUFXO1FBQ1gsS0FBSztRQUNMLE1BQU07S0FDUCxDQUFDLENBQUE7SUFFRixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUEsOEJBQWMsRUFBQyx3Q0FBNEIsRUFBRTtRQUNwRCxVQUFVO1FBQ1YsS0FBSztRQUNMLEtBQUs7UUFDTCxNQUFNO0tBQ1AsQ0FBQyxDQUFDLENBQUE7QUFDTCxDQUFDLENBQUE7QUFwQlksUUFBQSxHQUFHLE9Bb0JmO0FBRU0sTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUFvRCxFQUNwRCxHQUFzQyxFQUN0QyxFQUFFO0lBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDBDQUF1QixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzRCxNQUFNLE9BQU8sR0FBRyxNQUFNLGdCQUFnQixDQUFDLHFCQUFxQixDQUMxRCxHQUFHLENBQUMsYUFBYSxDQUNsQixDQUFBO0lBQ0QsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBQSxzRUFBb0MsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ3hELEtBQUssRUFBRSxFQUFFLFlBQVksRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFO1NBQ3BDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFDRCxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxHQUN6QixNQUFNLElBQUEsK0VBQXdDLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUM1RCxLQUFLLEVBQUUsRUFBRSxZQUFZLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRTtLQUNwQyxDQUFDLENBQUE7SUFFSixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFBLDhCQUFjLEVBQUMsbUNBQXVCLEVBQUU7UUFDM0QsU0FBUztLQUNWLENBQUMsQ0FBQyxDQUFBO0FBQ0wsQ0FBQyxDQUFBO0FBckJZLFFBQUEsSUFBSSxRQXFCaEIifQ==
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.toAdminConsignmentReport = void 0;
4
+ const toWireDate = (value) => value ? new Date(value).toISOString() : null;
5
+ const toCalendarDate = (value) => new Date(value).toISOString().slice(0, 10);
6
+ const toAdminConsignmentReport = (report) => ({
7
+ id: report.id,
8
+ affiliate_id: report.affiliate_id,
9
+ period_start: toCalendarDate(report.period_start),
10
+ period_end: toCalendarDate(report.period_end),
11
+ status: report.status,
12
+ version: report.version,
13
+ draft_order_id: report.draft_order_id ?? null,
14
+ order_id: report.order_id ?? null,
15
+ fulfillment_id: report.fulfillment_id ?? null,
16
+ submitted_at: toWireDate(report.submitted_at),
17
+ approved_at: toWireDate(report.approved_at),
18
+ admin_notes: report.admin_notes ?? null,
19
+ lines: report.lines.map((line) => ({
20
+ id: line.id,
21
+ inventory_item_id: line.inventory_item_id,
22
+ batch_id: line.batch_id,
23
+ expected_quantity: line.expected_quantity,
24
+ counted_quantity: line.counted_quantity,
25
+ proposed_sale_quantity: line.proposed_sale_quantity,
26
+ confirmed_sale_quantity: line.confirmed_sale_quantity,
27
+ requires_admin_clarification: line.requires_admin_clarification,
28
+ non_sale_reason: line.non_sale_reason,
29
+ correction_reason: line.correction_reason ?? null,
30
+ unit_price_snapshot: line.unit_price_snapshot ?? null,
31
+ discounted_line_total: line.discounted_line_total ?? null,
32
+ currency_code: line.currency_code ?? null,
33
+ })),
34
+ });
35
+ exports.toAdminConsignmentReport = toAdminConsignmentReport;
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc2lnbm1lbnQtcmVwb3J0LXJlc3BvbnNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwaS9hZG1pbi9jb25zaWdubWVudC1yZXBvcnQtcmVzcG9uc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0EsTUFBTSxVQUFVLEdBQUcsQ0FBQyxLQUF1QyxFQUFpQixFQUFFLENBQzVFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtBQUU5QyxNQUFNLGNBQWMsR0FBRyxDQUFDLEtBQW9CLEVBQVUsRUFBRSxDQUN0RCxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0FBSXJDLE1BQU0sd0JBQXdCLEdBQUcsQ0FDdEMsTUFBNEIsRUFDSixFQUFFLENBQUMsQ0FBQztJQUM1QixFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7SUFDYixZQUFZLEVBQUUsTUFBTSxDQUFDLFlBQVk7SUFDakMsWUFBWSxFQUFFLGNBQWMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO0lBQ2pELFVBQVUsRUFBRSxjQUFjLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztJQUM3QyxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07SUFDckIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPO0lBQ3ZCLGNBQWMsRUFBRSxNQUFNLENBQUMsY0FBYyxJQUFJLElBQUk7SUFDN0MsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLElBQUksSUFBSTtJQUNqQyxjQUFjLEVBQUUsTUFBTSxDQUFDLGNBQWMsSUFBSSxJQUFJO0lBQzdDLFlBQVksRUFBRSxVQUFVLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztJQUM3QyxXQUFXLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUM7SUFDM0MsV0FBVyxFQUFFLE1BQU0sQ0FBQyxXQUFXLElBQUksSUFBSTtJQUN2QyxLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFO1FBQ1gsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtRQUN6QyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7UUFDdkIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtRQUN6QyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1FBQ3ZDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxzQkFBc0I7UUFDbkQsdUJBQXVCLEVBQUUsSUFBSSxDQUFDLHVCQUF1QjtRQUNyRCw0QkFBNEIsRUFBRSxJQUFJLENBQUMsNEJBQTRCO1FBQy9ELGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZTtRQUNyQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSTtRQUNqRCxtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CLElBQUksSUFBSTtRQUNyRCxxQkFBcUIsRUFBRSxJQUFJLENBQUMscUJBQXFCLElBQUksSUFBSTtRQUN6RCxhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJO0tBQzFDLENBQUMsQ0FBQztDQUNKLENBQUMsQ0FBQTtBQTlCVyxRQUFBLHdCQUF3Qiw0QkE4Qm5DIn0=
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = void 0;
4
+ const approve_consignment_report_1 = require("../../../../../workflows/affiliate/approve-consignment-report");
5
+ const consignment_report_response_1 = require("../../../consignment-report-response");
6
+ const POST = async (req, res) => {
7
+ const { result } = await (0, approve_consignment_report_1.approveConsignmentReportWorkflow)(req.scope).run({
8
+ input: {
9
+ report_id: req.params.id,
10
+ admin_id: req.auth_context.actor_id,
11
+ expected_version: req.validatedBody.expected_version,
12
+ confirmed_lines: req.validatedBody.confirmed_lines,
13
+ },
14
+ });
15
+ res.json({
16
+ ...result,
17
+ report: (0, consignment_report_response_1.toAdminConsignmentReport)(result.report),
18
+ order: {
19
+ id: result.order.id,
20
+ is_draft_order: result.order.is_draft_order,
21
+ },
22
+ });
23
+ };
24
+ exports.POST = POST;
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvbnNpZ25tZW50LXJlcG9ydHMvW2lkXS9hcHByb3ZlL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU9BLDhHQUFnSDtBQUVoSCxzRkFBK0U7QUFNeEUsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUE2RCxFQUM3RCxHQUFxRCxFQUNyRCxFQUFFO0lBQ0YsTUFBTSxFQUFFLE1BQU0sRUFBRSxHQUFHLE1BQU0sSUFBQSw2REFBZ0MsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3ZFLEtBQUssRUFBRTtZQUNMLFNBQVMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDeEIsUUFBUSxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUTtZQUNuQyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLGdCQUFnQjtZQUNwRCxlQUFlLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxlQUFlO1NBQ25EO0tBQ0YsQ0FBQyxDQUFBO0lBRUYsR0FBRyxDQUFDLElBQUksQ0FBQztRQUNQLEdBQUcsTUFBTTtRQUNULE1BQU0sRUFBRSxJQUFBLHNEQUF3QixFQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7UUFDL0MsS0FBSyxFQUFFO1lBQ0wsRUFBRSxFQUFFLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNuQixjQUFjLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjO1NBQzVDO0tBQ0YsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBckJZLFFBQUEsSUFBSSxRQXFCaEIifQ==
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = void 0;
4
+ const correct_approved_consignment_report_1 = require("../../../../../workflows/affiliate/correct-approved-consignment-report");
5
+ const POST = async (req, res) => {
6
+ const { result } = await (0, correct_approved_consignment_report_1.correctApprovedConsignmentReportWorkflow)(req.scope).run({
7
+ input: {
8
+ report_id: req.params.id,
9
+ correction_id: req.validatedBody.correction_id,
10
+ admin_id: req.auth_context.actor_id,
11
+ reason: req.validatedBody.reason,
12
+ corrected_lines: req.validatedBody.corrected_lines,
13
+ },
14
+ });
15
+ res.json(result);
16
+ };
17
+ exports.POST = POST;
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvbnNpZ25tZW50LXJlcG9ydHMvW2lkXS9jb3JyZWN0L3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU9BLGdJQUFpSTtBQU8xSCxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3ZCLEdBQTZELEVBQzdELEdBQXFELEVBQ3JELEVBQUU7SUFDRixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQ2QsTUFBTSxJQUFBLDhFQUF3QyxFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDNUQsS0FBSyxFQUFFO1lBQ0wsU0FBUyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUN4QixhQUFhLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxhQUFhO1lBQzlDLFFBQVEsRUFBRSxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVE7WUFDbkMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTTtZQUNoQyxlQUFlLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxlQUFlO1NBQ25EO0tBQ0YsQ0FBQyxDQUFBO0lBRUosR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtBQUNsQixDQUFDLENBQUE7QUFoQlksUUFBQSxJQUFJLFFBZ0JoQiJ9
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = void 0;
4
+ const resolve_services_1 = require("../../../../../utils/resolve-services");
5
+ const consignment_report_response_1 = require("../../../consignment-report-response");
6
+ const POST = async (req, res) => {
7
+ const report = await (0, resolve_services_1.resolveAffiliateService)(req.scope).rejectConsignmentReport({
8
+ report_id: req.params.id,
9
+ admin_id: req.auth_context.actor_id,
10
+ admin_notes: req.validatedBody.admin_notes,
11
+ });
12
+ res.json({ report: (0, consignment_report_response_1.toAdminConsignmentReport)(report) });
13
+ };
14
+ exports.POST = POST;
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvbnNpZ25tZW50LXJlcG9ydHMvW2lkXS9yZWplY3Qvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBT0EsNEVBQStFO0FBRS9FLHNGQUErRTtBQU14RSxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3ZCLEdBQTRELEVBQzVELEdBQW9ELEVBQ3BELEVBQUU7SUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUEsMENBQXVCLEVBQzFDLEdBQUcsQ0FBQyxLQUFLLENBQ1YsQ0FBQyx1QkFBdUIsQ0FBQztRQUN4QixTQUFTLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQ3hCLFFBQVEsRUFBRSxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVE7UUFDbkMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsV0FBVztLQUMzQyxDQUFDLENBQUE7SUFFRixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUEsc0RBQXdCLEVBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQ3hELENBQUMsQ0FBQTtBQWJZLFFBQUEsSUFBSSxRQWFoQiJ9
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = void 0;
4
+ const resolve_services_1 = require("../../../../utils/resolve-services");
5
+ const consignment_report_response_1 = require("../../consignment-report-response");
6
+ const GET = async (req, res) => {
7
+ const report = await (0, resolve_services_1.resolveAffiliateService)(req.scope).retrieveConsignmentReportRecord(req.params.id);
8
+ res.json({ report: (0, consignment_report_response_1.toAdminConsignmentReport)(report) });
9
+ };
10
+ exports.GET = GET;
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvbnNpZ25tZW50LXJlcG9ydHMvW2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFNQSx5RUFBNEU7QUFDNUUsbUZBQTRFO0FBRXJFLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdEIsR0FBK0IsRUFDL0IsR0FBbUQsRUFDbkQsRUFBRTtJQUNGLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBQSwwQ0FBdUIsRUFDMUMsR0FBRyxDQUFDLEtBQUssQ0FDVixDQUFDLCtCQUErQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUE7SUFFaEQsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFBLHNEQUF3QixFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQTtBQUN4RCxDQUFDLENBQUE7QUFUWSxRQUFBLEdBQUcsT0FTZiJ9
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = void 0;
4
+ const resolve_services_1 = require("../../../utils/resolve-services");
5
+ const consignment_report_response_1 = require("../consignment-report-response");
6
+ const GET = async (req, res) => {
7
+ const query = req.validatedQuery;
8
+ const service = (0, resolve_services_1.resolveAffiliateService)(req.scope);
9
+ const filters = {
10
+ ...(query.affiliate_id ? { affiliate_id: query.affiliate_id } : {}),
11
+ ...(query.status ? { status: query.status } : {}),
12
+ };
13
+ const [rows, count] = await service.listAndCountConsignmentReports(filters, {
14
+ skip: query.offset,
15
+ take: query.limit,
16
+ order: { period_start: "DESC" },
17
+ });
18
+ const reports = await Promise.all(rows.map((row) => service.retrieveConsignmentReportRecord(row.id)));
19
+ res.json({
20
+ reports: reports.map(consignment_report_response_1.toAdminConsignmentReport),
21
+ count,
22
+ limit: query.limit,
23
+ offset: query.offset,
24
+ });
25
+ };
26
+ exports.GET = GET;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvbnNpZ25tZW50LXJlcG9ydHMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBT0Esc0VBQXlFO0FBRXpFLGdGQUF5RTtBQUlsRSxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQWlELEVBQ2pELEdBQXdELEVBQ3hELEVBQUU7SUFDRixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFBO0lBQ2hDLE1BQU0sT0FBTyxHQUFHLElBQUEsMENBQXVCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2xELE1BQU0sT0FBTyxHQUFHO1FBQ2QsR0FBRyxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsWUFBWSxFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ25FLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztLQUNsRCxDQUFBO0lBQ0QsTUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxNQUFNLE9BQU8sQ0FBQyw4QkFBOEIsQ0FBQyxPQUFPLEVBQUU7UUFDMUUsSUFBSSxFQUFFLEtBQUssQ0FBQyxNQUFNO1FBQ2xCLElBQUksRUFBRSxLQUFLLENBQUMsS0FBSztRQUNqQixLQUFLLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFO0tBQ2hDLENBQUMsQ0FBQTtJQUNGLE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDL0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsT0FBTyxDQUFDLCtCQUErQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUNuRSxDQUFBO0lBRUQsR0FBRyxDQUFDLElBQUksQ0FBQztRQUNQLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLHNEQUF3QixDQUFDO1FBQzlDLEtBQUs7UUFDTCxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7UUFDbEIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNO0tBQ3JCLENBQUMsQ0FBQTtBQUNKLENBQUMsQ0FBQTtBQXpCWSxRQUFBLEdBQUcsT0F5QmYifQ==
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DELETE = exports.POST = exports.GET = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const affiliate_1 = require("@hartl-services/medusa-food-supplements-contracts/schemas/affiliate");
6
+ const resolve_services_1 = require("../../../../../utils/resolve-services");
7
+ const email_normalization_1 = require("../../../../../modules/affiliate/domain/email-normalization");
8
+ const wire_response_1 = require("../../../../wire-response");
9
+ const retrieveNormalizedCustomerEmail = async (req) => {
10
+ const customer = await req.scope.resolve(utils_1.Modules.CUSTOMER).retrieveCustomer(req.params.id);
11
+ if (!customer.email) {
12
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "The customer must have an email address for affiliate assignment.");
13
+ }
14
+ return (0, email_normalization_1.normalizeAffiliateEmail)(customer.email);
15
+ };
16
+ const getResponse = async (affiliateService, customerId) => {
17
+ const history = await affiliateService.listCustomerAffiliateAssignmentHistory(customerId);
18
+ const assignment = history.find((item) => item.active) ?? null;
19
+ return (0, wire_response_1.toWireResponse)(affiliate_1.CustomerAffiliateAssignmentResponseSchema, {
20
+ assignment,
21
+ history,
22
+ });
23
+ };
24
+ const GET = async (req, res) => {
25
+ const affiliateService = (0, resolve_services_1.resolveAffiliateService)(req.scope);
26
+ res.json(await getResponse(affiliateService, req.params.id));
27
+ };
28
+ exports.GET = GET;
29
+ const POST = async (req, res) => {
30
+ const affiliateService = (0, resolve_services_1.resolveAffiliateService)(req.scope);
31
+ const normalizedEmail = await retrieveNormalizedCustomerEmail(req);
32
+ await affiliateService.setCustomerAffiliateAssignment({
33
+ customer_id: req.params.id,
34
+ normalized_email: normalizedEmail,
35
+ ...req.validatedBody,
36
+ });
37
+ res.json(await getResponse(affiliateService, req.params.id));
38
+ };
39
+ exports.POST = POST;
40
+ const DELETE = async (req, res) => {
41
+ const affiliateService = (0, resolve_services_1.resolveAffiliateService)(req.scope);
42
+ const normalizedEmail = await retrieveNormalizedCustomerEmail(req);
43
+ await affiliateService.removeCustomerAffiliateAssignment({
44
+ customer_id: req.params.id,
45
+ normalized_email: normalizedEmail,
46
+ });
47
+ res.json(await getResponse(affiliateService, req.params.id));
48
+ };
49
+ exports.DELETE = DELETE;
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2N1c3RvbWVycy9baWRdL2FmZmlsaWF0ZS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSxxREFBZ0U7QUFFaEUsbUdBQStIO0FBRy9ILDRFQUErRTtBQUMvRSxxR0FBcUc7QUFDckcsNkRBQTBEO0FBSzFELE1BQU0sK0JBQStCLEdBQUcsS0FBSyxFQUMzQyxHQUErQixFQUNkLEVBQUU7SUFDbkIsTUFBTSxRQUFRLEdBQUcsTUFDZixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsUUFBUSxDQUNuQyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDakMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNwQixNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixtRUFBbUUsQ0FDcEUsQ0FBQTtJQUNILENBQUM7SUFDRCxPQUFPLElBQUEsNkNBQXVCLEVBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFBO0FBQ2hELENBQUMsQ0FBQTtBQUVELE1BQU0sV0FBVyxHQUFHLEtBQUssRUFDdkIsZ0JBQTRELEVBQzVELFVBQWtCLEVBQzRCLEVBQUU7SUFDaEQsTUFBTSxPQUFPLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxzQ0FBc0MsQ0FDM0UsVUFBVSxDQUNYLENBQUE7SUFDRCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxDQUFBO0lBQzlELE9BQU8sSUFBQSw4QkFBYyxFQUFDLHFEQUF5QyxFQUFFO1FBQy9ELFVBQVU7UUFDVixPQUFPO0tBQ1IsQ0FBQyxDQUFBO0FBQ0osQ0FBQyxDQUFBO0FBRU0sTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUErQixFQUMvQixHQUF3RCxFQUN4RCxFQUFFO0lBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDBDQUF1QixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzRCxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sV0FBVyxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUM5RCxDQUFDLENBQUE7QUFOWSxRQUFBLEdBQUcsT0FNZjtBQUVNLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBa0QsRUFDbEQsR0FBd0QsRUFDeEQsRUFBRTtJQUNGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSwwQ0FBdUIsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0QsTUFBTSxlQUFlLEdBQUcsTUFBTSwrQkFBK0IsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNsRSxNQUFNLGdCQUFnQixDQUFDLDhCQUE4QixDQUFDO1FBQ3BELFdBQVcsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDMUIsZ0JBQWdCLEVBQUUsZUFBZTtRQUNqQyxHQUFHLEdBQUcsQ0FBQyxhQUFhO0tBQ3JCLENBQUMsQ0FBQTtJQUNGLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxXQUFXLENBQUMsZ0JBQWdCLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO0FBQzlELENBQUMsQ0FBQTtBQVpZLFFBQUEsSUFBSSxRQVloQjtBQUVNLE1BQU0sTUFBTSxHQUFHLEtBQUssRUFDekIsR0FBK0IsRUFDL0IsR0FBd0QsRUFDeEQsRUFBRTtJQUNGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSwwQ0FBdUIsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0QsTUFBTSxlQUFlLEdBQUcsTUFBTSwrQkFBK0IsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUNsRSxNQUFNLGdCQUFnQixDQUFDLGlDQUFpQyxDQUFDO1FBQ3ZELFdBQVcsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDMUIsZ0JBQWdCLEVBQUUsZUFBZTtLQUNsQyxDQUFDLENBQUE7SUFDRixHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sV0FBVyxDQUFDLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUM5RCxDQUFDLENBQUE7QUFYWSxRQUFBLE1BQU0sVUFXbEIifQ==
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = void 0;
4
+ const affiliate_1 = require("@hartl-services/medusa-food-supplements-contracts/schemas/affiliate");
5
+ const resolve_services_1 = require("../../../../../utils/resolve-services");
6
+ const wire_response_1 = require("../../../../wire-response");
7
+ const GET = async (req, res) => {
8
+ const affiliateService = (0, resolve_services_1.resolveAffiliateService)(req.scope);
9
+ const attribution = await affiliateService.getOrderAttribution(req.params.id);
10
+ const [redemption] = attribution?.affiliate_code_redemption_id
11
+ ? await affiliateService.listAffiliateCodeRedemptions({ id: attribution.affiliate_code_redemption_id }, { take: 1 })
12
+ : [];
13
+ const wireAttribution = attribution
14
+ ? {
15
+ ...attribution,
16
+ applied_coupon: redemption
17
+ ? {
18
+ affiliate_coupon_id: redemption.affiliate_coupon_id,
19
+ promotion_id: redemption.promotion_id,
20
+ code: redemption.code_snapshot,
21
+ }
22
+ : null,
23
+ }
24
+ : null;
25
+ res.json((0, wire_response_1.toWireResponse)(affiliate_1.OrderAffiliateAttributionResponseSchema, {
26
+ attribution: wireAttribution,
27
+ }));
28
+ };
29
+ exports.GET = GET;
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL29yZGVycy9baWRdL2FmZmlsaWF0ZS1hdHRyaWJ1dGlvbi9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxtR0FBNkg7QUFHN0gsNEVBQStFO0FBQy9FLDZEQUEwRDtBQUVuRCxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQStCLEVBQy9CLEdBQXNELEVBQ3ZDLEVBQUU7SUFDakIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDBDQUF1QixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzRCxNQUFNLFdBQVcsR0FBRyxNQUFNLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDN0UsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLFdBQVcsRUFBRSw0QkFBNEI7UUFDNUQsQ0FBQyxDQUFDLE1BQU0sZ0JBQWdCLENBQUMsNEJBQTRCLENBQ2pELEVBQUUsRUFBRSxFQUFFLFdBQVcsQ0FBQyw0QkFBNEIsRUFBRSxFQUNoRCxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FDWjtRQUNILENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDTixNQUFNLGVBQWUsR0FBRyxXQUFXO1FBQ2pDLENBQUMsQ0FBQztZQUNFLEdBQUcsV0FBVztZQUNkLGNBQWMsRUFBRSxVQUFVO2dCQUN4QixDQUFDLENBQUM7b0JBQ0UsbUJBQW1CLEVBQUUsVUFBVSxDQUFDLG1CQUFtQjtvQkFDbkQsWUFBWSxFQUFFLFVBQVUsQ0FBQyxZQUFZO29CQUNyQyxJQUFJLEVBQUUsVUFBVSxDQUFDLGFBQWE7aUJBQy9CO2dCQUNILENBQUMsQ0FBQyxJQUFJO1NBQ1Q7UUFDSCxDQUFDLENBQUMsSUFBSSxDQUFBO0lBQ1IsR0FBRyxDQUFDLElBQUksQ0FDTixJQUFBLDhCQUFjLEVBQUMsbURBQXVDLEVBQUU7UUFDdEQsV0FBVyxFQUFFLGVBQWU7S0FDN0IsQ0FBQyxDQUNILENBQUE7QUFDSCxDQUFDLENBQUE7QUE3QlksUUFBQSxHQUFHLE9BNkJmIn0=