@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,28 @@
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 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 POST = async (req, res) => {
10
+ const affiliateService = (0, resolve_services_1.resolveAffiliateService)(req.scope);
11
+ const { application, affiliate: approvedAffiliate } = await affiliateService.approveAffiliateApplication({
12
+ application_id: req.params.id,
13
+ reviewed_by_id: req.auth_context.actor_id,
14
+ ...req.validatedBody,
15
+ });
16
+ await (0, ensure_default_affiliate_coupon_1.ensureDefaultAffiliateCouponWorkflow)(req.scope).run({
17
+ input: { affiliate_id: approvedAffiliate.id },
18
+ });
19
+ const { result: affiliate } = await (0, ensure_affiliate_own_order_promotion_1.ensureAffiliateOwnOrderPromotionWorkflow)(req.scope).run({
20
+ input: { affiliate_id: approvedAffiliate.id },
21
+ });
22
+ res.json((0, wire_response_1.toWireResponse)(affiliate_1.ApproveAffiliateApplicationResponseSchema, {
23
+ application,
24
+ affiliate,
25
+ }));
26
+ };
27
+ exports.POST = POST;
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2FmZmlsaWF0ZS1hcHBsaWNhdGlvbnMvW2lkXS9hcHByb3ZlL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUtBLG1HQUErSDtBQUcvSCw0RUFBK0U7QUFDL0Usd0hBQXlIO0FBQ3pILGtJQUFrSTtBQUNsSSw2REFBMEQ7QUFPbkQsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUF1RCxFQUN2RCxHQUF3RCxFQUN4RCxFQUFFO0lBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDBDQUF1QixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzRCxNQUFNLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxHQUNqRCxNQUFNLGdCQUFnQixDQUFDLDJCQUEyQixDQUFDO1FBQ2pELGNBQWMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDN0IsY0FBYyxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUTtRQUN6QyxHQUFHLEdBQUcsQ0FBQyxhQUFhO0tBQ3JCLENBQUMsQ0FBQTtJQUNKLE1BQU0sSUFBQSxzRUFBb0MsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQ3hELEtBQUssRUFBRSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxFQUFFLEVBQUU7S0FDOUMsQ0FBQyxDQUFBO0lBQ0YsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FDekIsTUFBTSxJQUFBLCtFQUF3QyxFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDNUQsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixDQUFDLEVBQUUsRUFBRTtLQUM5QyxDQUFDLENBQUE7SUFFSixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUEsOEJBQWMsRUFBQyxxREFBeUMsRUFBRTtRQUNqRSxXQUFXO1FBQ1gsU0FBUztLQUNWLENBQUMsQ0FBQyxDQUFBO0FBQ0wsQ0FBQyxDQUFBO0FBdkJZLFFBQUEsSUFBSSxRQXVCaEIifQ==
@@ -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 application = await affiliateService.rejectAffiliateApplication({
10
+ application_id: req.params.id,
11
+ reviewed_by_id: req.auth_context.actor_id,
12
+ ...req.validatedBody,
13
+ });
14
+ res.json((0, wire_response_1.toWireResponse)(affiliate_1.AffiliateApplicationResponseSchema, {
15
+ application,
16
+ }));
17
+ };
18
+ exports.POST = POST;
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2FmZmlsaWF0ZS1hcHBsaWNhdGlvbnMvW2lkXS9yZWplY3Qvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EsbUdBQXdIO0FBR3hILDRFQUErRTtBQUMvRSw2REFBMEQ7QUFLbkQsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUFzRCxFQUN0RCxHQUFpRCxFQUNqRCxFQUFFO0lBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDBDQUF1QixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzRCxNQUFNLFdBQVcsR0FBRyxNQUFNLGdCQUFnQixDQUFDLDBCQUEwQixDQUFDO1FBQ3BFLGNBQWMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDN0IsY0FBYyxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUTtRQUN6QyxHQUFHLEdBQUcsQ0FBQyxhQUFhO0tBQ3JCLENBQUMsQ0FBQTtJQUVGLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBQSw4QkFBYyxFQUFDLDhDQUFrQyxFQUFFO1FBQzFELFdBQVc7S0FDWixDQUFDLENBQUMsQ0FBQTtBQUNMLENBQUMsQ0FBQTtBQWRZLFFBQUEsSUFBSSxRQWNoQiJ9
@@ -0,0 +1,23 @@
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 { status, limit, offset } = req.validatedQuery;
10
+ const [applications, count] = await affiliateService.listAffiliateApplicationsWithCount({
11
+ status,
12
+ limit,
13
+ offset,
14
+ });
15
+ res.json((0, wire_response_1.toWireResponse)(affiliate_1.ListAffiliateApplicationsResponseSchema, {
16
+ applications,
17
+ count,
18
+ limit,
19
+ offset,
20
+ }));
21
+ };
22
+ exports.GET = GET;
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2FmZmlsaWF0ZS1hcHBsaWNhdGlvbnMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EsbUdBQTZIO0FBRzdILHNFQUF5RTtBQUN6RSx1REFBb0Q7QUFPN0MsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUE2RCxFQUM3RCxHQUFzRCxFQUN0RCxFQUFFO0lBQ0YsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLDBDQUF1QixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUMzRCxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFBO0lBQ3BELE1BQU0sQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEdBQ3pCLE1BQU0sZ0JBQWdCLENBQUMsa0NBQWtDLENBQUM7UUFDeEQsTUFBTTtRQUNOLEtBQUs7UUFDTCxNQUFNO0tBQ1AsQ0FBQyxDQUFBO0lBRUosR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFBLDhCQUFjLEVBQUMsbURBQXVDLEVBQUU7UUFDL0QsWUFBWTtRQUNaLEtBQUs7UUFDTCxLQUFLO1FBQ0wsTUFBTTtLQUNQLENBQUMsQ0FBQyxDQUFBO0FBQ0wsQ0FBQyxDQUFBO0FBbkJZLFFBQUEsR0FBRyxPQW1CZiJ9
@@ -0,0 +1,171 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.retrieveAffiliateDistributionReports = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const money_1 = require("../../../utils/money");
6
+ const resolve_services_1 = require("../../../utils/resolve-services");
7
+ const asIso = (value) => new Date(value).toISOString();
8
+ const later = (left, right) => {
9
+ if (!left)
10
+ return right;
11
+ if (!right)
12
+ return left;
13
+ return left > right ? left : right;
14
+ };
15
+ const monthDistance = (activity, rangeStart, rangeEnd) => {
16
+ if (!activity) {
17
+ return Math.max(0, (rangeEnd.getUTCFullYear() - rangeStart.getUTCFullYear()) * 12 +
18
+ rangeEnd.getUTCMonth() -
19
+ rangeStart.getUTCMonth() +
20
+ 1);
21
+ }
22
+ const date = new Date(activity);
23
+ return Math.max(0, (rangeEnd.getUTCFullYear() - date.getUTCFullYear()) * 12 +
24
+ rangeEnd.getUTCMonth() -
25
+ date.getUTCMonth());
26
+ };
27
+ const retrieveAffiliateDistributionReports = async (container, input) => {
28
+ const affiliateService = (0, resolve_services_1.resolveAffiliateService)(container);
29
+ const inventoryService = container.resolve(utils_1.Modules.INVENTORY);
30
+ const from = new Date(`${input.from}T00:00:00.000Z`);
31
+ const to = new Date(`${input.to}T23:59:59.999Z`);
32
+ const [, affiliateCount] = await affiliateService.listAndCountAffiliates({}, { take: 1 });
33
+ const affiliates = await affiliateService.listAffiliates({}, {
34
+ take: Math.max(affiliateCount, 1),
35
+ order: { display_name: "ASC" },
36
+ });
37
+ const [, reportCount] = await affiliateService.listAndCountConsignmentReports({
38
+ status: "approved",
39
+ period_start: { $gte: from, $lte: to },
40
+ }, { take: 1 });
41
+ const reportRows = await affiliateService.listConsignmentReports({
42
+ status: "approved",
43
+ period_start: { $gte: from, $lte: to },
44
+ }, { take: Math.max(reportCount, 1) });
45
+ const reports = await Promise.all(reportRows.map((row) => affiliateService.retrieveConsignmentReportRecord(row.id)));
46
+ const [, openReportCount] = await affiliateService.listAndCountConsignmentReports({
47
+ status: ["draft", "submitted"],
48
+ period_start: { $gte: from, $lte: to },
49
+ }, { take: 1 });
50
+ const openReports = await affiliateService.listConsignmentReports({
51
+ status: ["draft", "submitted"],
52
+ period_start: { $gte: from, $lte: to },
53
+ }, { take: Math.max(openReportCount, 1) });
54
+ const [, entryCount] = await affiliateService.listAndCountCommissionEntries({
55
+ type: "order_commission",
56
+ occurred_at: { $gte: from, $lte: to },
57
+ }, { take: 1 });
58
+ const entries = await affiliateService.listCommissionEntries({
59
+ type: "order_commission",
60
+ occurred_at: { $gte: from, $lte: to },
61
+ }, { take: Math.max(entryCount, 1) });
62
+ const settings = await affiliateService.listAffiliateDistributionSettings({ affiliate_id: affiliates.map((affiliate) => affiliate.id) }, { take: Math.max(affiliates.length, 1) });
63
+ const consignmentOrderIds = new Set(reports.flatMap((report) => (report.order_id ? [report.order_id] : [])));
64
+ const result = [];
65
+ for (const affiliate of affiliates) {
66
+ const affiliateReports = reports.filter((report) => report.affiliate_id === affiliate.id);
67
+ const affiliateEntries = entries.filter((entry) => entry.affiliate_id === affiliate.id &&
68
+ (!entry.order_id || !consignmentOrderIds.has(entry.order_id)));
69
+ const distribution = settings.find((entry) => entry.affiliate_id === affiliate.id && entry.enabled);
70
+ const levels = distribution
71
+ ? (await inventoryService.listInventoryLevels({
72
+ location_id: distribution.stock_location_id,
73
+ }))
74
+ : [];
75
+ let consignmentSalesQuantity = 0;
76
+ let lastReportedAt = null;
77
+ let lastConsignmentSaleAt = null;
78
+ const totalsByCurrency = new Map();
79
+ const totalsFor = (currencyCode) => {
80
+ const key = currencyCode ?? "";
81
+ const existing = totalsByCurrency.get(key);
82
+ if (existing) {
83
+ return existing;
84
+ }
85
+ const totals = {
86
+ currency_code: currencyCode,
87
+ consignment_sales_amount: money_1.Money.zero(),
88
+ affiliate_web_sales_amount: money_1.Money.zero(),
89
+ affiliate_web_commission_amount: money_1.Money.zero(),
90
+ };
91
+ totalsByCurrency.set(key, totals);
92
+ return totals;
93
+ };
94
+ for (const report of affiliateReports) {
95
+ if (report.approved_at) {
96
+ lastReportedAt = later(lastReportedAt, asIso(report.approved_at));
97
+ }
98
+ let reportHasSale = false;
99
+ for (const line of report.lines) {
100
+ consignmentSalesQuantity += line.confirmed_sale_quantity;
101
+ const totals = totalsFor(line.currency_code ?? null);
102
+ totals.consignment_sales_amount = totals.consignment_sales_amount.add(money_1.Money.of(line.confirmed_sale_quantity).multiply(line.unit_price_snapshot ?? 0));
103
+ reportHasSale ||= line.confirmed_sale_quantity > 0;
104
+ }
105
+ if (reportHasSale && report.approved_at) {
106
+ lastConsignmentSaleAt = later(lastConsignmentSaleAt, asIso(report.approved_at));
107
+ }
108
+ }
109
+ let lastWebSaleAt = null;
110
+ for (const entry of affiliateEntries) {
111
+ const totals = totalsFor(entry.currency_code);
112
+ totals.affiliate_web_sales_amount = totals.affiliate_web_sales_amount.add(entry.base_amount_net);
113
+ totals.affiliate_web_commission_amount =
114
+ totals.affiliate_web_commission_amount.add(entry.commission_amount);
115
+ lastWebSaleAt = later(lastWebSaleAt, asIso(entry.occurred_at));
116
+ }
117
+ const lastSaleAt = later(lastConsignmentSaleAt, lastWebSaleAt);
118
+ const latestActivity = later(lastReportedAt, lastSaleAt);
119
+ const currencyTotals = Array.from(totalsByCurrency.values())
120
+ .sort((left, right) => (left.currency_code ?? "").localeCompare(right.currency_code ?? ""))
121
+ .map((totals) => {
122
+ const decimalPlaces = (0, money_1.getCurrencyDecimals)(totals.currency_code ?? "");
123
+ return {
124
+ currency_code: totals.currency_code,
125
+ consignment_sales_amount: totals.consignment_sales_amount.toRoundedNumber(decimalPlaces),
126
+ affiliate_web_sales_amount: totals.affiliate_web_sales_amount.toRoundedNumber(decimalPlaces),
127
+ affiliate_web_commission_amount: totals.affiliate_web_commission_amount.toRoundedNumber(decimalPlaces),
128
+ };
129
+ });
130
+ const singleCurrencyTotals = currencyTotals.length === 1 && currencyTotals[0].currency_code
131
+ ? currencyTotals[0]
132
+ : null;
133
+ const hasNoMonetaryActivity = currencyTotals.length === 0;
134
+ result.push({
135
+ affiliate_id: affiliate.id,
136
+ display_name: affiliate.display_name,
137
+ status: affiliate.status,
138
+ currency_code: singleCurrencyTotals?.currency_code ?? null,
139
+ consignment_sales_quantity: consignmentSalesQuantity,
140
+ consignment_sales_amount: hasNoMonetaryActivity
141
+ ? 0
142
+ : singleCurrencyTotals?.consignment_sales_amount ?? null,
143
+ affiliate_web_sales_amount: hasNoMonetaryActivity
144
+ ? 0
145
+ : singleCurrencyTotals?.affiliate_web_sales_amount ?? null,
146
+ affiliate_web_commission_amount: hasNoMonetaryActivity
147
+ ? 0
148
+ : singleCurrencyTotals?.affiliate_web_commission_amount ?? null,
149
+ currency_totals: currencyTotals,
150
+ current_stock_quantity: levels.reduce((sum, level) => sum + Number(level.stocked_quantity), 0),
151
+ last_reported_at: lastReportedAt,
152
+ last_sale_at: lastSaleAt,
153
+ inactive_months: monthDistance(latestActivity, from, to),
154
+ open_reports: openReports.filter((report) => report.affiliate_id === affiliate.id).length,
155
+ overdue_reports: openReports.filter((report) => {
156
+ if (report.affiliate_id !== affiliate.id)
157
+ return false;
158
+ const period = new Date(report.period_start);
159
+ const due = new Date(Date.UTC(period.getUTCFullYear(), period.getUTCMonth() + 1, 10, 23, 59, 59, 999));
160
+ return due < to;
161
+ }).length,
162
+ });
163
+ }
164
+ return {
165
+ from: input.from,
166
+ to: input.to,
167
+ affiliate_distribution_reports: result,
168
+ };
169
+ };
170
+ exports.retrieveAffiliateDistributionReports = retrieveAffiliateDistributionReports;
171
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2FmZmlsaWF0ZS1kaXN0cmlidXRpb24tcmVwb3J0cy9xdWVyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFJQSxxREFBbUQ7QUFLbkQsZ0RBQWlFO0FBQ2pFLHNFQUF5RTtBQWtCekUsTUFBTSxLQUFLLEdBQUcsQ0FBQyxLQUFvQixFQUFVLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtBQUU3RSxNQUFNLEtBQUssR0FBRyxDQUFDLElBQW1CLEVBQUUsS0FBb0IsRUFBaUIsRUFBRTtJQUN6RSxJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU8sS0FBSyxDQUFBO0lBQ3ZCLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxJQUFJLENBQUE7SUFDdkIsT0FBTyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtBQUNwQyxDQUFDLENBQUE7QUFFRCxNQUFNLGFBQWEsR0FBRyxDQUNwQixRQUF1QixFQUN2QixVQUFnQixFQUNoQixRQUFjLEVBQ04sRUFBRTtJQUNWLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNkLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FDYixDQUFDLEVBQ0QsQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLEdBQUcsVUFBVSxDQUFDLGNBQWMsRUFBRSxDQUFDLEdBQUcsRUFBRTtZQUM1RCxRQUFRLENBQUMsV0FBVyxFQUFFO1lBQ3RCLFVBQVUsQ0FBQyxXQUFXLEVBQUU7WUFDeEIsQ0FBQyxDQUNKLENBQUE7SUFDSCxDQUFDO0lBQ0QsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUE7SUFDL0IsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUNiLENBQUMsRUFDRCxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsR0FBRyxFQUFFO1FBQ3RELFFBQVEsQ0FBQyxXQUFXLEVBQUU7UUFDdEIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUNyQixDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBRU0sTUFBTSxvQ0FBb0MsR0FBRyxLQUFLLEVBQ3ZELFNBQTBCLEVBQzFCLEtBQW1DLEVBQ1ksRUFBRTtJQUNqRCxNQUFNLGdCQUFnQixHQUFHLElBQUEsMENBQXVCLEVBQUMsU0FBUyxDQUFDLENBQUE7SUFDM0QsTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUN4QyxlQUFPLENBQUMsU0FBUyxDQUNHLENBQUE7SUFDdEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFBO0lBQ3BELE1BQU0sRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQTtJQUVoRCxNQUFNLENBQUMsRUFBRSxjQUFjLENBQUMsR0FBRyxNQUFNLGdCQUFnQixDQUFDLHNCQUFzQixDQUN0RSxFQUFFLEVBQ0YsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQ1osQ0FBQTtJQUNELE1BQU0sVUFBVSxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsY0FBYyxDQUN0RCxFQUFFLEVBQ0Y7UUFDRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLEtBQUssRUFBRSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUU7S0FDL0IsQ0FDRixDQUFBO0lBQ0QsTUFBTSxDQUFDLEVBQUUsV0FBVyxDQUFDLEdBQ25CLE1BQU0sZ0JBQWdCLENBQUMsOEJBQThCLENBQ25EO1FBQ0UsTUFBTSxFQUFFLFVBQVU7UUFDbEIsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO0tBQ3ZDLEVBQ0QsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQ1osQ0FBQTtJQUNILE1BQU0sVUFBVSxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsc0JBQXNCLENBQzlEO1FBQ0UsTUFBTSxFQUFFLFVBQVU7UUFDbEIsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO0tBQ3ZDLEVBQ0QsRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FDbkMsQ0FBQTtJQUNELE1BQU0sT0FBTyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDL0IsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQ3JCLGdCQUFnQixDQUFDLCtCQUErQixDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FDekQsQ0FDRixDQUFBO0lBQ0QsTUFBTSxDQUFDLEVBQUUsZUFBZSxDQUFDLEdBQ3ZCLE1BQU0sZ0JBQWdCLENBQUMsOEJBQThCLENBQ25EO1FBQ0UsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQztRQUM5QixZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7S0FDdkMsRUFDRCxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FDWixDQUFBO0lBQ0gsTUFBTSxXQUFXLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FDL0Q7UUFDRSxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDO1FBQzlCLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRTtLQUN2QyxFQUNELEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQ3ZDLENBQUE7SUFDRCxNQUFNLENBQUMsRUFBRSxVQUFVLENBQUMsR0FBRyxNQUFNLGdCQUFnQixDQUFDLDZCQUE2QixDQUN6RTtRQUNFLElBQUksRUFBRSxrQkFBa0I7UUFDeEIsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFO0tBQ3RDLEVBQ0QsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQ1osQ0FBQTtJQUNELE1BQU0sT0FBTyxHQUFHLE1BQU0sZ0JBQWdCLENBQUMscUJBQXFCLENBQzFEO1FBQ0UsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7S0FDdEMsRUFDRCxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUNsQyxDQUFBO0lBQ0QsTUFBTSxRQUFRLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQyxpQ0FBaUMsQ0FDdkUsRUFBRSxZQUFZLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQzdELEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsRUFBRSxDQUN6QyxDQUFBO0lBQ0QsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLEdBQUcsQ0FDakMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FDeEUsQ0FBQTtJQUVELE1BQU0sTUFBTSxHQUFzQyxFQUFFLENBQUE7SUFDcEQsS0FBSyxNQUFNLFNBQVMsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNuQyxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQ3JDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxLQUFLLFNBQVMsQ0FBQyxFQUFFLENBQ2pELENBQUE7UUFDRCxNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQ3JDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FDUixLQUFLLENBQUMsWUFBWSxLQUFLLFNBQVMsQ0FBQyxFQUFFO1lBQ25DLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUNoRSxDQUFBO1FBQ0QsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FDaEMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxZQUFZLEtBQUssU0FBUyxDQUFDLEVBQUUsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUNoRSxDQUFBO1FBQ0QsTUFBTSxNQUFNLEdBQUcsWUFBWTtZQUN6QixDQUFDLENBQUUsQ0FBQyxNQUFNLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDO2dCQUMzQyxXQUFXLEVBQUUsWUFBWSxDQUFDLGlCQUFpQjthQUM1QyxDQUFDLENBQWlDO1lBQ3JDLENBQUMsQ0FBQyxFQUFFLENBQUE7UUFFTixJQUFJLHdCQUF3QixHQUFHLENBQUMsQ0FBQTtRQUNoQyxJQUFJLGNBQWMsR0FBa0IsSUFBSSxDQUFBO1FBQ3hDLElBQUkscUJBQXFCLEdBQWtCLElBQUksQ0FBQTtRQUMvQyxNQUFNLGdCQUFnQixHQUFHLElBQUksR0FBRyxFQUEwQixDQUFBO1FBQzFELE1BQU0sU0FBUyxHQUFHLENBQUMsWUFBMkIsRUFBa0IsRUFBRTtZQUNoRSxNQUFNLEdBQUcsR0FBRyxZQUFZLElBQUksRUFBRSxDQUFBO1lBQzlCLE1BQU0sUUFBUSxHQUFHLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUUxQyxJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNiLE9BQU8sUUFBUSxDQUFBO1lBQ2pCLENBQUM7WUFFRCxNQUFNLE1BQU0sR0FBbUI7Z0JBQzdCLGFBQWEsRUFBRSxZQUFZO2dCQUMzQix3QkFBd0IsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO2dCQUN0QywwQkFBMEIsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO2dCQUN4QywrQkFBK0IsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO2FBQzlDLENBQUE7WUFDRCxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFBO1lBRWpDLE9BQU8sTUFBTSxDQUFBO1FBQ2YsQ0FBQyxDQUFBO1FBRUQsS0FBSyxNQUFNLE1BQU0sSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3RDLElBQUksTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUN2QixjQUFjLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUE7WUFDbkUsQ0FBQztZQUNELElBQUksYUFBYSxHQUFHLEtBQUssQ0FBQTtZQUN6QixLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDaEMsd0JBQXdCLElBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFBO2dCQUN4RCxNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsQ0FBQTtnQkFDcEQsTUFBTSxDQUFDLHdCQUF3QixHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQ25FLGFBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsUUFBUSxDQUM3QyxJQUFJLENBQUMsbUJBQW1CLElBQUksQ0FBQyxDQUM5QixDQUNGLENBQUE7Z0JBQ0QsYUFBYSxLQUFLLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxDQUFDLENBQUE7WUFDcEQsQ0FBQztZQUNELElBQUksYUFBYSxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDeEMscUJBQXFCLEdBQUcsS0FBSyxDQUMzQixxQkFBcUIsRUFDckIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FDMUIsQ0FBQTtZQUNILENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxhQUFhLEdBQWtCLElBQUksQ0FBQTtRQUN2QyxLQUFLLE1BQU0sS0FBSyxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFDckMsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQTtZQUM3QyxNQUFNLENBQUMsMEJBQTBCLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLEdBQUcsQ0FDdkUsS0FBSyxDQUFDLGVBQWUsQ0FDdEIsQ0FBQTtZQUNELE1BQU0sQ0FBQywrQkFBK0I7Z0JBQ3BDLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUE7WUFDckUsYUFBYSxHQUFHLEtBQUssQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFBO1FBQ2hFLENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMscUJBQXFCLEVBQUUsYUFBYSxDQUFDLENBQUE7UUFDOUQsTUFBTSxjQUFjLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxVQUFVLENBQUMsQ0FBQTtRQUN4RCxNQUFNLGNBQWMsR0FBeUMsS0FBSyxDQUFDLElBQUksQ0FDckUsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLENBQzFCO2FBQ0UsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQ3BCLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FDcEU7YUFDQSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUNkLE1BQU0sYUFBYSxHQUFHLElBQUEsMkJBQW1CLEVBQUMsTUFBTSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQTtZQUVyRSxPQUFPO2dCQUNMLGFBQWEsRUFBRSxNQUFNLENBQUMsYUFBYTtnQkFDbkMsd0JBQXdCLEVBQ3RCLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxlQUFlLENBQUMsYUFBYSxDQUFDO2dCQUNoRSwwQkFBMEIsRUFDeEIsTUFBTSxDQUFDLDBCQUEwQixDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUM7Z0JBQ2xFLCtCQUErQixFQUM3QixNQUFNLENBQUMsK0JBQStCLENBQUMsZUFBZSxDQUFDLGFBQWEsQ0FBQzthQUN4RSxDQUFBO1FBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDSixNQUFNLG9CQUFvQixHQUN4QixjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYTtZQUM1RCxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztZQUNuQixDQUFDLENBQUMsSUFBSSxDQUFBO1FBQ1YsTUFBTSxxQkFBcUIsR0FBRyxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQTtRQUV6RCxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ1YsWUFBWSxFQUFFLFNBQVMsQ0FBQyxFQUFFO1lBQzFCLFlBQVksRUFBRSxTQUFTLENBQUMsWUFBWTtZQUNwQyxNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQW1EO1lBQ3JFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxhQUFhLElBQUksSUFBSTtZQUMxRCwwQkFBMEIsRUFBRSx3QkFBd0I7WUFDcEQsd0JBQXdCLEVBQUUscUJBQXFCO2dCQUM3QyxDQUFDLENBQUMsQ0FBQztnQkFDSCxDQUFDLENBQUMsb0JBQW9CLEVBQUUsd0JBQXdCLElBQUksSUFBSTtZQUMxRCwwQkFBMEIsRUFBRSxxQkFBcUI7Z0JBQy9DLENBQUMsQ0FBQyxDQUFDO2dCQUNILENBQUMsQ0FBQyxvQkFBb0IsRUFBRSwwQkFBMEIsSUFBSSxJQUFJO1lBQzVELCtCQUErQixFQUFFLHFCQUFxQjtnQkFDcEQsQ0FBQyxDQUFDLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLCtCQUErQixJQUFJLElBQUk7WUFDakUsZUFBZSxFQUFFLGNBQWM7WUFDL0Isc0JBQXNCLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FDbkMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxFQUNwRCxDQUFDLENBQ0Y7WUFDRCxnQkFBZ0IsRUFBRSxjQUFjO1lBQ2hDLFlBQVksRUFBRSxVQUFVO1lBQ3hCLGVBQWUsRUFBRSxhQUFhLENBQUMsY0FBYyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7WUFDeEQsWUFBWSxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQzlCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsWUFBWSxLQUFLLFNBQVMsQ0FBQyxFQUFFLENBQ2pELENBQUMsTUFBTTtZQUNSLGVBQWUsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQzdDLElBQUksTUFBTSxDQUFDLFlBQVksS0FBSyxTQUFTLENBQUMsRUFBRTtvQkFBRSxPQUFPLEtBQUssQ0FBQTtnQkFDdEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO2dCQUM1QyxNQUFNLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FDbEIsSUFBSSxDQUFDLEdBQUcsQ0FDTixNQUFNLENBQUMsY0FBYyxFQUFFLEVBQ3ZCLE1BQU0sQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLEVBQ3hCLEVBQUUsRUFDRixFQUFFLEVBQ0YsRUFBRSxFQUNGLEVBQUUsRUFDRixHQUFHLENBQ0osQ0FDRixDQUFBO2dCQUNELE9BQU8sR0FBRyxHQUFHLEVBQUUsQ0FBQTtZQUNqQixDQUFDLENBQUMsQ0FBQyxNQUFNO1NBQ1YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7UUFDaEIsRUFBRSxFQUFFLEtBQUssQ0FBQyxFQUFFO1FBQ1osOEJBQThCLEVBQUUsTUFBTTtLQUN2QyxDQUFBO0FBQ0gsQ0FBQyxDQUFBO0FBdk9ZLFFBQUEsb0NBQW9DLHdDQXVPaEQifQ==
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = void 0;
4
+ const query_1 = require("./query");
5
+ const GET = async (req, res) => {
6
+ const query = req.validatedQuery;
7
+ res.json(await (0, query_1.retrieveAffiliateDistributionReports)(req.scope, {
8
+ from: query.from,
9
+ to: query.to,
10
+ }));
11
+ };
12
+ exports.GET = GET;
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2FmZmlsaWF0ZS1kaXN0cmlidXRpb24tcmVwb3J0cy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFRQSxtQ0FBOEQ7QUFNdkQsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUErRCxFQUMvRCxHQUF5RCxFQUN6RCxFQUFFO0lBQ0YsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FBQTtJQUNoQyxHQUFHLENBQUMsSUFBSSxDQUNOLE1BQU0sSUFBQSw0Q0FBb0MsRUFBQyxHQUFHLENBQUMsS0FBSyxFQUFFO1FBQ3BELElBQUksRUFBRSxLQUFLLENBQUMsSUFBSTtRQUNoQixFQUFFLEVBQUUsS0FBSyxDQUFDLEVBQUU7S0FDYixDQUFDLENBQ0gsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQVhZLFFBQUEsR0FBRyxPQVdmIn0=
@@ -0,0 +1,27 @@
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 affiliate_1 = require("@hartl-services/medusa-food-supplements-contracts/schemas/affiliate");
6
+ const resolve_services_1 = require("../../../utils/resolve-services");
7
+ const wire_response_1 = require("../../wire-response");
8
+ const update_affiliate_coupon_discounts_1 = require("../../../workflows/affiliate/update-affiliate-coupon-discounts");
9
+ const GET = async (req, res) => {
10
+ const settings = await (0, resolve_services_1.resolveAffiliateService)(req.scope).retrieveProgramSettings();
11
+ res.json((0, wire_response_1.toWireResponse)(affiliate_1.AffiliateProgramSettingsResponseSchema, { settings }));
12
+ };
13
+ exports.GET = GET;
14
+ const POST = async (req, res) => {
15
+ const input = req.validatedBody;
16
+ const { settings, failures } = await (0, update_affiliate_coupon_discounts_1.updateProgramSettingsWithCouponDiscountReconciliation)(req.scope, input);
17
+ const logger = req.scope.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
18
+ for (const failure of failures) {
19
+ const message = failure.error instanceof Error
20
+ ? failure.error.message
21
+ : "Unknown reconciliation error";
22
+ logger.warn(`Affiliate coupon reconciliation failed after default discount update for ${failure.coupon_id}: ${message}`);
23
+ }
24
+ res.json((0, wire_response_1.toWireResponse)(affiliate_1.AffiliateProgramSettingsResponseSchema, { settings }));
25
+ };
26
+ exports.POST = POST;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2FmZmlsaWF0ZS1wcm9ncmFtLXNldHRpbmdzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUtBLHFEQUFxRTtBQUNyRSxtR0FBNEg7QUFHNUgsc0VBQXlFO0FBQ3pFLHVEQUFvRDtBQUVwRCxzSEFBc0k7QUFJL0gsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUErQixFQUMvQixHQUFxRCxFQUNyRCxFQUFFO0lBQ0YsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFBLDBDQUF1QixFQUM1QyxHQUFHLENBQUMsS0FBSyxDQUNWLENBQUMsdUJBQXVCLEVBQUUsQ0FBQTtJQUMzQixHQUFHLENBQUMsSUFBSSxDQUFDLElBQUEsOEJBQWMsRUFBQyxrREFBc0MsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUNoRixDQUFDLENBQUE7QUFSWSxRQUFBLEdBQUcsT0FRZjtBQUVNLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDdkIsR0FBMkMsRUFDM0MsR0FBcUQsRUFDckQsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUE7SUFDL0IsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsR0FDMUIsTUFBTSxJQUFBLHlGQUFxRCxFQUN6RCxHQUFHLENBQUMsS0FBSyxFQUNULEtBQUssQ0FDTixDQUFBO0lBQ0gsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsTUFBTSxDQUVoRSxDQUFBO0lBQ0QsS0FBSyxNQUFNLE9BQU8sSUFBSSxRQUFRLEVBQUUsQ0FBQztRQUMvQixNQUFNLE9BQU8sR0FDWCxPQUFPLENBQUMsS0FBSyxZQUFZLEtBQUs7WUFDNUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTztZQUN2QixDQUFDLENBQUMsOEJBQThCLENBQUE7UUFDcEMsTUFBTSxDQUFDLElBQUksQ0FDVCw0RUFBNEUsT0FBTyxDQUFDLFNBQVMsS0FBSyxPQUFPLEVBQUUsQ0FDNUcsQ0FBQTtJQUNILENBQUM7SUFDRCxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUEsOEJBQWMsRUFBQyxrREFBc0MsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQTtBQUNoRixDQUFDLENBQUE7QUF2QlksUUFBQSxJQUFJLFFBdUJoQiJ9
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ 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 wire_response_1 = require("../../../wire-response");
8
+ const enrich_affiliate_report_1 = require("../../../../workflows/affiliate/enrich-affiliate-report");
9
+ const GET = async (req, res) => {
10
+ const affiliateService = (0, resolve_services_1.resolveAffiliateService)(req.scope);
11
+ const report = await affiliateService.getAffiliateReportDetail({
12
+ affiliate_id: req.params.id,
13
+ from: req.validatedQuery.from,
14
+ to: req.validatedQuery.to,
15
+ limit: req.validatedQuery.limit,
16
+ offset: req.validatedQuery.offset,
17
+ });
18
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
19
+ const orderIds = report.entries
20
+ .map((entry) => entry.order_id)
21
+ .filter((id) => !!id);
22
+ const customerIds = report.entries
23
+ .map((entry) => entry.customer_id)
24
+ .filter((id) => !!id);
25
+ const [orderDisplayIds, customerNames] = await Promise.all([
26
+ (0, enrich_affiliate_report_1.resolveOrderDisplayIds)(query, orderIds),
27
+ (0, enrich_affiliate_report_1.resolveCustomerNames)(query, customerIds),
28
+ ]);
29
+ res.json((0, wire_response_1.toWireResponse)(affiliate_1.AffiliateReportDetailResponseSchema, {
30
+ report: {
31
+ ...report,
32
+ entries: report.entries.map((entry) => ({
33
+ ...entry,
34
+ order_display_id: entry.order_id
35
+ ? orderDisplayIds.get(entry.order_id) ?? null
36
+ : null,
37
+ customer_name: entry.customer_id
38
+ ? customerNames.get(entry.customer_id) ?? null
39
+ : null,
40
+ })),
41
+ },
42
+ }));
43
+ };
44
+ exports.GET = GET;
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2FmZmlsaWF0ZS1yZXBvcnRzL1tpZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EscURBQXFFO0FBQ3JFLG1HQUF5SDtBQUd6SCx5RUFBNEU7QUFDNUUsMERBQXVEO0FBRXZELHFHQUdnRTtBQUl6RCxNQUFNLEdBQUcsR0FBRyxLQUFLLEVBQ3RCLEdBQXlELEVBQ3pELEdBQWtELEVBQ2xELEVBQUU7SUFDRixNQUFNLGdCQUFnQixHQUFHLElBQUEsMENBQXVCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzNELE1BQU0sTUFBTSxHQUFHLE1BQU0sZ0JBQWdCLENBQUMsd0JBQXdCLENBQUM7UUFDN0QsWUFBWSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUMzQixJQUFJLEVBQUUsR0FBRyxDQUFDLGNBQWMsQ0FBQyxJQUFJO1FBQzdCLEVBQUUsRUFBRSxHQUFHLENBQUMsY0FBYyxDQUFDLEVBQUU7UUFDekIsS0FBSyxFQUFFLEdBQUcsQ0FBQyxjQUFjLENBQUMsS0FBSztRQUMvQixNQUFNLEVBQUUsR0FBRyxDQUFDLGNBQWMsQ0FBQyxNQUFNO0tBQ2xDLENBQUMsQ0FBQTtJQUVGLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hFLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxPQUFPO1NBQzVCLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztTQUM5QixNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUE7SUFDckMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLE9BQU87U0FDL0IsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO1NBQ2pDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBZ0IsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQTtJQUNyQyxNQUFNLENBQUMsZUFBZSxFQUFFLGFBQWEsQ0FBQyxHQUFHLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUN6RCxJQUFBLGdEQUFzQixFQUFDLEtBQUssRUFBRSxRQUFRLENBQUM7UUFDdkMsSUFBQSw4Q0FBb0IsRUFBQyxLQUFLLEVBQUUsV0FBVyxDQUFDO0tBQ3pDLENBQUMsQ0FBQTtJQUVGLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBQSw4QkFBYyxFQUFDLCtDQUFtQyxFQUFFO1FBQzNELE1BQU0sRUFBRTtZQUNOLEdBQUcsTUFBTTtZQUNULE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFDdEMsR0FBRyxLQUFLO2dCQUNSLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxRQUFRO29CQUM5QixDQUFDLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSTtvQkFDN0MsQ0FBQyxDQUFDLElBQUk7Z0JBQ1IsYUFBYSxFQUFFLEtBQUssQ0FBQyxXQUFXO29CQUM5QixDQUFDLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSTtvQkFDOUMsQ0FBQyxDQUFDLElBQUk7YUFDVCxDQUFDLENBQUM7U0FDSjtLQUNGLENBQUMsQ0FBQyxDQUFBO0FBQ0wsQ0FBQyxDQUFBO0FBdkNZLFFBQUEsR0FBRyxPQXVDZiJ9
@@ -0,0 +1,27 @@
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 report = await affiliateService.getAffiliateReportOverview(req.validatedQuery);
10
+ res.json((0, wire_response_1.toWireResponse)(affiliate_1.AffiliateReportOverviewResponseSchema, {
11
+ report: {
12
+ from: report.from,
13
+ to: report.to,
14
+ affiliates: report.affiliates.map((affiliate) => ({
15
+ affiliate_id: affiliate.affiliate_id,
16
+ display_name: affiliate.display_name,
17
+ status: affiliate.status,
18
+ currency_code: affiliate.currency_code,
19
+ order_value_amount: affiliate.order_value_amount,
20
+ commission_amount: affiliate.total_commission_amount,
21
+ order_count: affiliate.order_count,
22
+ })),
23
+ },
24
+ }));
25
+ };
26
+ exports.GET = GET;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2FmZmlsaWF0ZS1yZXBvcnRzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUtBLG1HQUEySDtBQUczSCxzRUFBeUU7QUFDekUsdURBQW9EO0FBSzdDLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdEIsR0FBNEQsRUFDNUQsR0FBb0QsRUFDcEQsRUFBRTtJQUNGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSwwQ0FBdUIsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxnQkFBZ0IsQ0FBQywwQkFBMEIsQ0FDOUQsR0FBRyxDQUFDLGNBQWMsQ0FDbkIsQ0FBQTtJQUVELEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBQSw4QkFBYyxFQUFDLGlEQUFxQyxFQUFFO1FBQzdELE1BQU0sRUFBRTtZQUNOLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDYixVQUFVLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ2hELFlBQVksRUFBRSxTQUFTLENBQUMsWUFBWTtnQkFDcEMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxZQUFZO2dCQUNwQyxNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07Z0JBQ3hCLGFBQWEsRUFBRSxTQUFTLENBQUMsYUFBYTtnQkFDdEMsa0JBQWtCLEVBQUUsU0FBUyxDQUFDLGtCQUFrQjtnQkFDaEQsaUJBQWlCLEVBQUUsU0FBUyxDQUFDLHVCQUF1QjtnQkFDcEQsV0FBVyxFQUFFLFNBQVMsQ0FBQyxXQUFXO2FBQ25DLENBQUMsQ0FBQztTQUNKO0tBQ0YsQ0FBQyxDQUFDLENBQUE7QUFDTCxDQUFDLENBQUE7QUF4QlksUUFBQSxHQUFHLE9Bd0JmIn0=
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const affiliate_1 = require("../../../../../modules/affiliate");
6
+ const email_events_1 = require("../../../../../integration/email-events");
7
+ const POST = async (req, res) => {
8
+ const input = req.validatedBody;
9
+ const affiliateService = req.scope.resolve(affiliate_1.AFFILIATE_MODULE);
10
+ const options = await affiliateService.getPluginOptions();
11
+ const candidate = await affiliateService.getConsignmentReportReminderCandidate({
12
+ affiliate_id: req.params.id,
13
+ period_start: input.period_start,
14
+ due_day: options.consignment_reminders.due_day,
15
+ trigger: "manual",
16
+ });
17
+ if (!candidate) {
18
+ throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_ALLOWED, "Für diesen Affiliate und Meldezeitraum kann kein Reminder angefordert werden.");
19
+ }
20
+ const eventBus = req.scope.resolve(utils_1.Modules.EVENT_BUS);
21
+ await eventBus.emit({
22
+ name: email_events_1.AFFILIATE_CONSIGNMENT_REPORT_REMINDER_DUE_EVENT,
23
+ data: candidate,
24
+ });
25
+ res.status(202).json({
26
+ reminder_key: candidate.reminder_key,
27
+ requested_at: new Date().toISOString(),
28
+ });
29
+ };
30
+ exports.POST = POST;
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2FmZmlsaWF0ZXMvW2lkXS9jb25zaWdubWVudC1yZW1pbmRlcnMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EscURBQWlFO0FBSWpFLGdFQUFvRTtBQUdwRSwwRUFBMEc7QUFJbkcsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUE2QyxFQUM3QyxHQUF1RCxFQUN4QyxFQUFFO0lBQ2pCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUM7SUFDaEMsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDeEMsNEJBQWdCLENBQ1MsQ0FBQztJQUM1QixNQUFNLE9BQU8sR0FBRyxNQUFNLGdCQUFnQixDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUQsTUFBTSxTQUFTLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQyxxQ0FBcUMsQ0FBQztRQUMzRCxZQUFZLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQzNCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtRQUNoQyxPQUFPLEVBQUUsT0FBTyxDQUFDLHFCQUFxQixDQUFDLE9BQU87UUFDOUMsT0FBTyxFQUFFLFFBQVE7S0FDbEIsQ0FBQyxDQUFDO0lBQ0wsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2YsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFDN0IsK0VBQStFLENBQ2hGLENBQUM7SUFDSixDQUFDO0lBRUQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQ2hDLGVBQU8sQ0FBQyxTQUFTLENBQ1EsQ0FBQztJQUM1QixNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUM7UUFDbEIsSUFBSSxFQUFFLDhEQUErQztRQUNyRCxJQUFJLEVBQUUsU0FBUztLQUNoQixDQUFDLENBQUM7SUFDSCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNuQixZQUFZLEVBQUUsU0FBUyxDQUFDLFlBQVk7UUFDcEMsWUFBWSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO0tBQ3ZDLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQWxDVyxRQUFBLElBQUksUUFrQ2YifQ==
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = void 0;
4
+ const resolve_inventory_transfer_adapter_1 = require("../../../../../integrations/inventory-transfer/resolve-inventory-transfer-adapter");
5
+ const transfer_consignment_stock_1 = require("../../../../../workflows/affiliate/transfer-consignment-stock");
6
+ const POST = async (req, res) => {
7
+ try {
8
+ const { result } = await (0, transfer_consignment_stock_1.transferConsignmentStockWorkflow)(req.scope).run({
9
+ input: {
10
+ affiliate_id: req.params.id,
11
+ source_location_id: req.validatedBody.source_location_id,
12
+ idempotency_key: req.validatedBody.idempotency_key,
13
+ admin_id: req.auth_context?.actor_id ?? null,
14
+ lines: req.validatedBody.lines,
15
+ },
16
+ });
17
+ res.json({
18
+ transfer: {
19
+ id: result.id,
20
+ affiliate_id: result.affiliate_id,
21
+ source_location_id: result.source_location_id,
22
+ destination_location_id: result.destination_location_id,
23
+ direction: result.direction,
24
+ status: result.status,
25
+ },
26
+ });
27
+ }
28
+ catch (error) {
29
+ if (error instanceof Error &&
30
+ error.message === resolve_inventory_transfer_adapter_1.INCOMPATIBLE_BATCH_MANAGEMENT_MESSAGE) {
31
+ res.status(422).json({
32
+ type: "invalid_data",
33
+ message: error.message,
34
+ });
35
+ return;
36
+ }
37
+ throw error;
38
+ }
39
+ };
40
+ exports.POST = POST;
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2FmZmlsaWF0ZXMvW2lkXS9jb25zaWdubWVudC10cmFuc2ZlcnMvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBT0EsMElBQXlJO0FBRXpJLDhHQUFnSDtBQU16RyxNQUFNLElBQUksR0FBRyxLQUFLLEVBQ3ZCLEdBQTZELEVBQzdELEdBQWdELEVBQ2hELEVBQUU7SUFDRixJQUFJLENBQUM7UUFDSCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLDZEQUFnQyxFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDdkUsS0FBSyxFQUFFO2dCQUNMLFlBQVksRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQzNCLGtCQUFrQixFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsa0JBQWtCO2dCQUN4RCxlQUFlLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxlQUFlO2dCQUNsRCxRQUFRLEVBQUUsR0FBRyxDQUFDLFlBQVksRUFBRSxRQUFRLElBQUksSUFBSTtnQkFDNUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsS0FBSzthQUMvQjtTQUNGLENBQUMsQ0FBQTtRQUVGLEdBQUcsQ0FBQyxJQUFJLENBQUM7WUFDUCxRQUFRLEVBQUU7Z0JBQ1IsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUNiLFlBQVksRUFBRSxNQUFNLENBQUMsWUFBWTtnQkFDakMsa0JBQWtCLEVBQUUsTUFBTSxDQUFDLGtCQUFrQjtnQkFDN0MsdUJBQXVCLEVBQUUsTUFBTSxDQUFDLHVCQUF1QjtnQkFDdkQsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTO2dCQUMzQixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07YUFDdEI7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLElBQ0UsS0FBSyxZQUFZLEtBQUs7WUFDdEIsS0FBSyxDQUFDLE9BQU8sS0FBSywwRUFBcUMsRUFDdkQsQ0FBQztZQUNELEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO2dCQUNuQixJQUFJLEVBQUUsY0FBYztnQkFDcEIsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO2FBQ3ZCLENBQUMsQ0FBQTtZQUNGLE9BQU07UUFDUixDQUFDO1FBRUQsTUFBTSxLQUFLLENBQUE7SUFDYixDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBdkNZLFFBQUEsSUFBSSxRQXVDaEIifQ==
@@ -0,0 +1,34 @@
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 reconcile_affiliate_coupon_1 = require("../../../../../../../workflows/affiliate/reconcile-affiliate-coupon");
7
+ const affiliate_coupon_http_1 = require("../../../../../../affiliate-coupon-http");
8
+ const wire_response_1 = require("../../../../../../wire-response");
9
+ const POST = 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
+ await affiliateService.retrieveAffiliateCouponRecord(req.params.coupon_id, affiliate.id);
13
+ try {
14
+ const { result } = await (0, reconcile_affiliate_coupon_1.reconcileAffiliateCouponWorkflow)(req.scope).run({
15
+ input: { coupon_id: req.params.coupon_id },
16
+ });
17
+ res.json((0, wire_response_1.toWireResponse)(affiliate_1.ReconcileAdminAffiliateCouponCodeResponseSchema, {
18
+ coupon_code: (0, affiliate_coupon_http_1.toAdminAffiliateCouponCode)(result.coupon, affiliate),
19
+ outcome: result.outcome,
20
+ rotation_finalized: result.rotation_finalized,
21
+ }));
22
+ }
23
+ catch (error) {
24
+ if (await (0, affiliate_coupon_http_1.respondToAffiliateCouponCommandError)(res, error, affiliateService, {
25
+ affiliate_id: affiliate.id,
26
+ coupon_id: req.params.coupon_id,
27
+ })) {
28
+ return;
29
+ }
30
+ throw error;
31
+ }
32
+ };
33
+ exports.POST = POST;
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2FmZmlsaWF0ZXMvW2lkXS9jb3Vwb24tY29kZXMvW2NvdXBvbl9pZF0vcmVjb25jaWxlL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLG1HQUFxSTtBQUdySSxrRkFBcUY7QUFDckYsb0hBQXNIO0FBQ3RILG1GQUlnRDtBQUNoRCxtRUFBZ0U7QUFFekQsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUErQixFQUMvQixHQUE4RCxFQUMvQyxFQUFFO0lBQ2pCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSwwQ0FBdUIsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFBLG1EQUEyQixFQUNqRCxnQkFBZ0IsRUFDaEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ2QsQ0FBQTtJQUNELE1BQU0sZ0JBQWdCLENBQUMsNkJBQTZCLENBQ2xELEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUNwQixTQUFTLENBQUMsRUFBRSxDQUNiLENBQUE7SUFFRCxJQUFJLENBQUM7UUFDSCxNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLDZEQUFnQyxFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDdkUsS0FBSyxFQUFFLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFO1NBQzNDLENBQUMsQ0FBQTtRQUVGLEdBQUcsQ0FBQyxJQUFJLENBQ04sSUFBQSw4QkFBYyxFQUFDLDJEQUErQyxFQUFFO1lBQzlELFdBQVcsRUFBRSxJQUFBLGtEQUEwQixFQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsU0FBUyxDQUFDO1lBQ2pFLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTztZQUN2QixrQkFBa0IsRUFBRSxNQUFNLENBQUMsa0JBQWtCO1NBQzlDLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUNFLE1BQU0sSUFBQSw0REFBb0MsRUFDeEMsR0FBRyxFQUNILEtBQUssRUFDTCxnQkFBZ0IsRUFDaEI7WUFDRSxZQUFZLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDMUIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUztTQUNoQyxDQUNGLEVBQ0QsQ0FBQztZQUNELE9BQU07UUFDUixDQUFDO1FBQ0QsTUFBTSxLQUFLLENBQUE7SUFDYixDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBMUNZLFFBQUEsSUFBSSxRQTBDaEIifQ==
@@ -0,0 +1,36 @@
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 revoke_affiliate_coupon_1 = require("../../../../../../../workflows/affiliate/revoke-affiliate-coupon");
7
+ const affiliate_coupon_http_1 = require("../../../../../../affiliate-coupon-http");
8
+ const wire_response_1 = require("../../../../../../wire-response");
9
+ const POST = 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
+ try {
13
+ const { result: couponCode } = await (0, revoke_affiliate_coupon_1.revokeAffiliateCouponWorkflow)(req.scope).run({
14
+ input: {
15
+ affiliate_id: affiliate.id,
16
+ coupon_id: req.params.coupon_id,
17
+ revoked_by_type: "admin",
18
+ revoked_by_id: req.auth_context.actor_id,
19
+ },
20
+ });
21
+ res.json((0, wire_response_1.toWireResponse)(affiliate_1.AdminAffiliateCouponCodeResponseSchema, {
22
+ coupon_code: (0, affiliate_coupon_http_1.toAdminAffiliateCouponCode)(couponCode, affiliate),
23
+ }));
24
+ }
25
+ catch (error) {
26
+ if (await (0, affiliate_coupon_http_1.respondToAffiliateCouponCommandError)(res, error, affiliateService, {
27
+ affiliate_id: affiliate.id,
28
+ coupon_id: req.params.coupon_id,
29
+ })) {
30
+ return;
31
+ }
32
+ throw error;
33
+ }
34
+ };
35
+ exports.POST = POST;
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2FmZmlsaWF0ZXMvW2lkXS9jb3Vwb24tY29kZXMvW2NvdXBvbl9pZF0vcmV2b2tlL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUlBLG1HQUE0SDtBQUc1SCxrRkFBcUY7QUFDckYsOEdBQWdIO0FBQ2hILG1GQUlnRDtBQUNoRCxtRUFBZ0U7QUFFekQsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUErQixFQUMvQixHQUFxRCxFQUN0QyxFQUFFO0lBQ2pCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSwwQ0FBdUIsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFBLG1EQUEyQixFQUNqRCxnQkFBZ0IsRUFDaEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ2QsQ0FBQTtJQUVELElBQUksQ0FBQztRQUNILE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLEdBQUcsTUFBTSxJQUFBLHVEQUE2QixFQUNoRSxHQUFHLENBQUMsS0FBSyxDQUNWLENBQUMsR0FBRyxDQUFDO1lBQ0osS0FBSyxFQUFFO2dCQUNMLFlBQVksRUFBRSxTQUFTLENBQUMsRUFBRTtnQkFDMUIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUztnQkFDL0IsZUFBZSxFQUFFLE9BQU87Z0JBQ3hCLGFBQWEsRUFBRSxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVE7YUFDekM7U0FDRixDQUFDLENBQUE7UUFFRixHQUFHLENBQUMsSUFBSSxDQUNOLElBQUEsOEJBQWMsRUFBQyxrREFBc0MsRUFBRTtZQUNyRCxXQUFXLEVBQUUsSUFBQSxrREFBMEIsRUFBQyxVQUFVLEVBQUUsU0FBUyxDQUFDO1NBQy9ELENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUNFLE1BQU0sSUFBQSw0REFBb0MsRUFDeEMsR0FBRyxFQUNILEtBQUssRUFDTCxnQkFBZ0IsRUFDaEI7WUFDRSxZQUFZLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDMUIsU0FBUyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUztTQUNoQyxDQUNGLEVBQ0QsQ0FBQztZQUNELE9BQU07UUFDUixDQUFDO1FBQ0QsTUFBTSxLQUFLLENBQUE7SUFDYixDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBM0NZLFFBQUEsSUFBSSxRQTJDaEIifQ==
@@ -0,0 +1,40 @@
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 rotate_affiliate_coupon_1 = require("../../../../../../../workflows/affiliate/rotate-affiliate-coupon");
7
+ const affiliate_coupon_http_1 = require("../../../../../../affiliate-coupon-http");
8
+ const wire_response_1 = require("../../../../../../wire-response");
9
+ const POST = 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
+ try {
13
+ const { result } = await (0, rotate_affiliate_coupon_1.rotateAffiliateCouponWorkflow)(req.scope).run({
14
+ input: {
15
+ affiliate_id: affiliate.id,
16
+ coupon_id: req.params.coupon_id,
17
+ code: req.validatedBody.code,
18
+ creation_idempotency_key: req.validatedBody.idempotency_key,
19
+ created_by_type: "admin",
20
+ created_by_id: req.auth_context.actor_id,
21
+ },
22
+ });
23
+ res.json((0, wire_response_1.toWireResponse)(affiliate_1.RotateAdminAffiliateCouponCodeResponseSchema, {
24
+ coupon_code: (0, affiliate_coupon_http_1.toAdminAffiliateCouponCode)(result.coupon, affiliate),
25
+ revoked_coupon_code: (0, affiliate_coupon_http_1.toAdminAffiliateCouponCode)(result.revoked_coupon, affiliate),
26
+ }));
27
+ }
28
+ catch (error) {
29
+ if (await (0, affiliate_coupon_http_1.respondToAffiliateCouponCommandError)(res, error, affiliateService, {
30
+ affiliate_id: affiliate.id,
31
+ idempotency_key: req.validatedBody.idempotency_key,
32
+ related_coupon_id: req.params.coupon_id,
33
+ })) {
34
+ return;
35
+ }
36
+ throw error;
37
+ }
38
+ };
39
+ exports.POST = POST;
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2FmZmlsaWF0ZXMvW2lkXS9jb3Vwb24tY29kZXMvW2NvdXBvbl9pZF0vcm90YXRlL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUtBLG1HQUFrSTtBQUdsSSxrRkFBcUY7QUFDckYsOEdBQWdIO0FBQ2hILG1GQUlnRDtBQUNoRCxtRUFBZ0U7QUFPekQsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUFxRCxFQUNyRCxHQUEyRCxFQUM1QyxFQUFFO0lBQ2pCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBQSwwQ0FBdUIsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDM0QsTUFBTSxTQUFTLEdBQUcsTUFBTSxJQUFBLG1EQUEyQixFQUNqRCxnQkFBZ0IsRUFDaEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ2QsQ0FBQTtJQUVELElBQUksQ0FBQztRQUNILE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsdURBQTZCLEVBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNwRSxLQUFLLEVBQUU7Z0JBQ0wsWUFBWSxFQUFFLFNBQVMsQ0FBQyxFQUFFO2dCQUMxQixTQUFTLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTO2dCQUMvQixJQUFJLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJO2dCQUM1Qix3QkFBd0IsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLGVBQWU7Z0JBQzNELGVBQWUsRUFBRSxPQUFPO2dCQUN4QixhQUFhLEVBQUUsR0FBRyxDQUFDLFlBQVksQ0FBQyxRQUFRO2FBQ3pDO1NBQ0YsQ0FBQyxDQUFBO1FBRUYsR0FBRyxDQUFDLElBQUksQ0FDTixJQUFBLDhCQUFjLEVBQUMsd0RBQTRDLEVBQUU7WUFDM0QsV0FBVyxFQUFFLElBQUEsa0RBQTBCLEVBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUM7WUFDakUsbUJBQW1CLEVBQUUsSUFBQSxrREFBMEIsRUFDN0MsTUFBTSxDQUFDLGNBQWMsRUFDckIsU0FBUyxDQUNWO1NBQ0YsQ0FBQyxDQUNILENBQUE7SUFDSCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLElBQ0UsTUFBTSxJQUFBLDREQUFvQyxFQUN4QyxHQUFHLEVBQ0gsS0FBSyxFQUNMLGdCQUFnQixFQUNoQjtZQUNFLFlBQVksRUFBRSxTQUFTLENBQUMsRUFBRTtZQUMxQixlQUFlLEVBQUUsR0FBRyxDQUFDLGFBQWEsQ0FBQyxlQUFlO1lBQ2xELGlCQUFpQixFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsU0FBUztTQUN4QyxDQUNGLEVBQ0QsQ0FBQztZQUNELE9BQU07UUFDUixDQUFDO1FBQ0QsTUFBTSxLQUFLLENBQUE7SUFDYixDQUFDO0FBQ0gsQ0FBQyxDQUFBO0FBaERZLFFBQUEsSUFBSSxRQWdEaEIifQ==