@mercurjs/core 2.3.9-canary.3 → 2.3.9-canary.5

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 (207) hide show
  1. package/.medusa/server/src/api/admin/middlewares.js +41 -39
  2. package/.medusa/server/src/api/admin/payout-accounts/[id]/refresh-link/route.d.ts +3 -0
  3. package/.medusa/server/src/api/admin/payout-accounts/[id]/refresh-link/route.js +14 -0
  4. package/.medusa/server/src/api/admin/payout-accounts/[id]/route.d.ts +3 -0
  5. package/.medusa/server/src/api/admin/payout-accounts/[id]/route.js +18 -0
  6. package/.medusa/server/src/api/admin/payout-accounts/[id]/sync/route.d.ts +3 -0
  7. package/.medusa/server/src/api/admin/payout-accounts/[id]/sync/route.js +14 -0
  8. package/.medusa/server/src/api/admin/payout-accounts/helpers.d.ts +2 -0
  9. package/.medusa/server/src/api/admin/payout-accounts/helpers.js +7 -0
  10. package/.medusa/server/src/api/admin/payout-accounts/middlewares.d.ts +2 -0
  11. package/.medusa/server/src/api/admin/payout-accounts/middlewares.js +45 -0
  12. package/.medusa/server/src/api/admin/payout-accounts/query-config.d.ts +11 -0
  13. package/.medusa/server/src/api/admin/payout-accounts/query-config.js +26 -0
  14. package/.medusa/server/src/api/admin/payout-accounts/route.d.ts +5 -0
  15. package/.medusa/server/src/api/admin/payout-accounts/route.js +31 -0
  16. package/.medusa/server/src/api/admin/payout-accounts/validators.d.ts +51 -0
  17. package/.medusa/server/src/api/admin/payout-accounts/validators.js +22 -0
  18. package/.medusa/server/src/api/admin/payouts/[id]/retry/route.d.ts +3 -0
  19. package/.medusa/server/src/api/admin/payouts/[id]/retry/route.js +14 -0
  20. package/.medusa/server/src/api/admin/payouts/helpers.d.ts +2 -0
  21. package/.medusa/server/src/api/admin/payouts/helpers.js +7 -0
  22. package/.medusa/server/src/api/admin/payouts/middlewares.js +16 -1
  23. package/.medusa/server/src/api/admin/payouts/query-config.js +10 -1
  24. package/.medusa/server/src/api/admin/payouts/validators.d.ts +2 -0
  25. package/.medusa/server/src/api/admin/payouts/validators.js +3 -1
  26. package/.medusa/server/src/api/admin/products/validators.d.ts +1 -0
  27. package/.medusa/server/src/api/admin/products/validators.js +6 -2
  28. package/.medusa/server/src/api/hooks/payout/route.js +4 -6
  29. package/.medusa/server/src/api/middlewares.js +5 -1
  30. package/.medusa/server/src/api/payout/onboarding/refresh/route.d.ts +6 -0
  31. package/.medusa/server/src/api/payout/onboarding/refresh/route.js +21 -0
  32. package/.medusa/server/src/api/store/carts/middlewares.js +11 -1
  33. package/.medusa/server/src/api/utils/ensure-seller-middleware.js +2 -2
  34. package/.medusa/server/src/api/vendor/offers/batch/route.js +6 -2
  35. package/.medusa/server/src/api/vendor/offers/validators.d.ts +1 -0
  36. package/.medusa/server/src/api/vendor/offers/validators.js +2 -1
  37. package/.medusa/server/src/api/vendor/payout-accounts/[id]/onboarding/route.js +2 -8
  38. package/.medusa/server/src/api/vendor/payout-accounts/helpers.d.ts +2 -0
  39. package/.medusa/server/src/api/vendor/payout-accounts/helpers.js +7 -2
  40. package/.medusa/server/src/api/vendor/payout-accounts/me/route.d.ts +3 -0
  41. package/.medusa/server/src/api/vendor/payout-accounts/me/route.js +15 -0
  42. package/.medusa/server/src/api/vendor/payout-accounts/middlewares.js +9 -1
  43. package/.medusa/server/src/api/vendor/payout-accounts/query-config.d.ts +11 -0
  44. package/.medusa/server/src/api/vendor/payout-accounts/query-config.js +30 -2
  45. package/.medusa/server/src/api/vendor/payout-accounts/route.js +4 -9
  46. package/.medusa/server/src/api/vendor/payout-accounts/validators.d.ts +3 -1
  47. package/.medusa/server/src/api/vendor/payout-accounts/validators.js +5 -2
  48. package/.medusa/server/src/api/vendor/payouts/query-config.d.ts +2 -0
  49. package/.medusa/server/src/api/vendor/payouts/query-config.js +12 -2
  50. package/.medusa/server/src/api/vendor/payouts/validators.d.ts +1 -0
  51. package/.medusa/server/src/api/vendor/payouts/validators.js +2 -1
  52. package/.medusa/server/src/api/vendor/products/validators.d.ts +1 -0
  53. package/.medusa/server/src/api/vendor/products/validators.js +6 -2
  54. package/.medusa/server/src/api/vendor/sellers/select/route.js +2 -2
  55. package/.medusa/server/src/modules/payout/index.d.ts +1 -45
  56. package/.medusa/server/src/modules/payout/loaders/provider.js +7 -3
  57. package/.medusa/server/src/modules/payout/migrations/Migration20261028120000.d.ts +5 -0
  58. package/.medusa/server/src/modules/payout/migrations/Migration20261028120000.js +97 -0
  59. package/.medusa/server/src/modules/payout/models/index.d.ts +1 -0
  60. package/.medusa/server/src/modules/payout/models/index.js +4 -2
  61. package/.medusa/server/src/modules/payout/models/onboarding.d.ts +22 -1
  62. package/.medusa/server/src/modules/payout/models/payout-account.d.ts +23 -2
  63. package/.medusa/server/src/modules/payout/models/payout-account.js +33 -7
  64. package/.medusa/server/src/modules/payout/models/payout-reversal.d.ts +48 -0
  65. package/.medusa/server/src/modules/payout/models/payout-reversal.js +37 -0
  66. package/.medusa/server/src/modules/payout/models/payout.d.ts +22 -1
  67. package/.medusa/server/src/modules/payout/models/payout.js +18 -2
  68. package/.medusa/server/src/modules/payout/providers/system.d.ts +11 -5
  69. package/.medusa/server/src/modules/payout/providers/system.js +33 -14
  70. package/.medusa/server/src/modules/payout/services/payout-module-service.d.ts +94 -100
  71. package/.medusa/server/src/modules/payout/services/payout-module-service.js +316 -109
  72. package/.medusa/server/src/modules/payout/services/provider-service.d.ts +11 -7
  73. package/.medusa/server/src/modules/payout/services/provider-service.js +33 -13
  74. package/.medusa/server/src/modules/payout/utils/abstract-payout-provider.d.ts +20 -0
  75. package/.medusa/server/src/modules/payout/utils/abstract-payout-provider.js +19 -0
  76. package/.medusa/server/src/modules/payout/utils/index.d.ts +1 -0
  77. package/.medusa/server/src/modules/payout/utils/index.js +18 -0
  78. package/.medusa/server/src/modules/telemetry/index.d.ts +21 -0
  79. package/.medusa/server/src/modules/telemetry/index.js +12 -0
  80. package/.medusa/server/src/modules/telemetry/migrations/Migration20261029000000.d.ts +5 -0
  81. package/.medusa/server/src/modules/telemetry/migrations/Migration20261029000000.js +27 -0
  82. package/.medusa/server/src/modules/telemetry/models/index.d.ts +1 -0
  83. package/.medusa/server/src/modules/telemetry/models/index.js +10 -0
  84. package/.medusa/server/src/modules/telemetry/models/installation.d.ts +9 -0
  85. package/.medusa/server/src/modules/telemetry/models/installation.js +14 -0
  86. package/.medusa/server/src/modules/telemetry/repositories/index.d.ts +1 -0
  87. package/.medusa/server/src/modules/telemetry/repositories/index.js +18 -0
  88. package/.medusa/server/src/modules/telemetry/repositories/telemetry-heartbeat.d.ts +10 -0
  89. package/.medusa/server/src/modules/telemetry/repositories/telemetry-heartbeat.js +28 -0
  90. package/.medusa/server/src/modules/telemetry/service.d.ts +25 -0
  91. package/.medusa/server/src/modules/telemetry/service.js +54 -0
  92. package/.medusa/server/src/subscribers/payout-webhook.d.ts +2 -2
  93. package/.medusa/server/src/subscribers/payout-webhook.js +9 -5
  94. package/.medusa/server/src/subscribers/telemetry-first-member-invited.d.ts +3 -0
  95. package/.medusa/server/src/subscribers/telemetry-first-member-invited.js +14 -0
  96. package/.medusa/server/src/subscribers/telemetry-first-offer.d.ts +3 -0
  97. package/.medusa/server/src/subscribers/telemetry-first-offer.js +14 -0
  98. package/.medusa/server/src/subscribers/telemetry-first-order.d.ts +3 -0
  99. package/.medusa/server/src/subscribers/telemetry-first-order.js +14 -0
  100. package/.medusa/server/src/subscribers/telemetry-first-payout-account.d.ts +5 -0
  101. package/.medusa/server/src/subscribers/telemetry-first-payout-account.js +24 -0
  102. package/.medusa/server/src/subscribers/telemetry-first-product-published.d.ts +3 -0
  103. package/.medusa/server/src/subscribers/telemetry-first-product-published.js +14 -0
  104. package/.medusa/server/src/subscribers/telemetry-first-seller-approved.d.ts +3 -0
  105. package/.medusa/server/src/subscribers/telemetry-first-seller-approved.js +14 -0
  106. package/.medusa/server/src/subscribers/telemetry-first-seller.d.ts +3 -0
  107. package/.medusa/server/src/subscribers/telemetry-first-seller.js +14 -0
  108. package/.medusa/server/src/utils/telemetry/boot.d.ts +7 -0
  109. package/.medusa/server/src/utils/telemetry/boot.js +117 -0
  110. package/.medusa/server/src/utils/telemetry/buckets.d.ts +2 -0
  111. package/.medusa/server/src/utils/telemetry/buckets.js +22 -0
  112. package/.medusa/server/src/utils/telemetry/config.d.ts +19 -0
  113. package/.medusa/server/src/utils/telemetry/config.js +60 -0
  114. package/.medusa/server/src/utils/telemetry/first-party.d.ts +11 -0
  115. package/.medusa/server/src/utils/telemetry/first-party.js +33 -0
  116. package/.medusa/server/src/utils/telemetry/identity.d.ts +6 -0
  117. package/.medusa/server/src/utils/telemetry/identity.js +32 -0
  118. package/.medusa/server/src/utils/telemetry/index.d.ts +8 -0
  119. package/.medusa/server/src/utils/telemetry/index.js +27 -0
  120. package/.medusa/server/src/utils/telemetry/milestones.d.ts +20 -0
  121. package/.medusa/server/src/utils/telemetry/milestones.js +60 -0
  122. package/.medusa/server/src/utils/telemetry/sender.d.ts +17 -0
  123. package/.medusa/server/src/utils/telemetry/sender.js +48 -0
  124. package/.medusa/server/src/utils/telemetry/snapshot.d.ts +13 -0
  125. package/.medusa/server/src/utils/telemetry/snapshot.js +193 -0
  126. package/.medusa/server/src/with-mercur.d.ts +6 -0
  127. package/.medusa/server/src/with-mercur.js +1 -1
  128. package/.medusa/server/src/workflows/offer/workflows/create-offers.d.ts +3 -0
  129. package/.medusa/server/src/workflows/offer/workflows/create-offers.js +11 -1
  130. package/.medusa/server/src/workflows/payment/utils/split-order-payment-group.js +11 -3
  131. package/.medusa/server/src/workflows/payment/workflows/process-payment.js +10 -5
  132. package/.medusa/server/src/workflows/payout/steps/create-onboarding.d.ts +8 -2
  133. package/.medusa/server/src/workflows/payout/steps/create-onboarding.js +10 -4
  134. package/.medusa/server/src/workflows/payout/steps/create-payout-account.d.ts +3 -2
  135. package/.medusa/server/src/workflows/payout/steps/create-payout-account.js +9 -3
  136. package/.medusa/server/src/workflows/payout/steps/create-payout-accounts.d.ts +11 -0
  137. package/.medusa/server/src/workflows/payout/steps/create-payout-accounts.js +22 -0
  138. package/.medusa/server/src/workflows/payout/steps/create-payout-reversals.d.ts +4 -0
  139. package/.medusa/server/src/workflows/payout/steps/create-payout-reversals.js +23 -0
  140. package/.medusa/server/src/workflows/payout/steps/create-payouts.d.ts +4 -0
  141. package/.medusa/server/src/workflows/payout/steps/create-payouts.js +23 -0
  142. package/.medusa/server/src/workflows/payout/steps/index.d.ts +12 -5
  143. package/.medusa/server/src/workflows/payout/steps/index.js +13 -6
  144. package/.medusa/server/src/workflows/payout/steps/process-payout-reversals.d.ts +6 -0
  145. package/.medusa/server/src/workflows/payout/steps/process-payout-reversals.js +17 -0
  146. package/.medusa/server/src/workflows/payout/steps/process-payouts.d.ts +6 -0
  147. package/.medusa/server/src/workflows/payout/steps/process-payouts.js +17 -0
  148. package/.medusa/server/src/workflows/payout/steps/sync-payout-account.d.ts +8 -0
  149. package/.medusa/server/src/workflows/payout/steps/sync-payout-account.js +33 -0
  150. package/.medusa/server/src/workflows/payout/steps/update-payout-reversals.d.ts +4 -0
  151. package/.medusa/server/src/workflows/payout/steps/update-payout-reversals.js +29 -0
  152. package/.medusa/server/src/workflows/payout/steps/update-payouts.d.ts +4 -0
  153. package/.medusa/server/src/workflows/payout/steps/update-payouts.js +34 -0
  154. package/.medusa/server/src/workflows/payout/steps/validate-onboarding-token.d.ts +12 -0
  155. package/.medusa/server/src/workflows/payout/steps/validate-onboarding-token.js +23 -0
  156. package/.medusa/server/src/workflows/payout/steps/validate-payout-retry.d.ts +10 -0
  157. package/.medusa/server/src/workflows/payout/steps/validate-payout-retry.js +15 -0
  158. package/.medusa/server/src/workflows/payout/steps/validate-seller-without-payout-account.d.ts +10 -0
  159. package/.medusa/server/src/workflows/payout/steps/validate-seller-without-payout-account.js +13 -0
  160. package/.medusa/server/src/workflows/payout/utils/fulfillment-status.d.ts +26 -0
  161. package/.medusa/server/src/workflows/payout/utils/fulfillment-status.js +64 -0
  162. package/.medusa/server/src/workflows/payout/utils/index.d.ts +3 -0
  163. package/.medusa/server/src/workflows/payout/utils/index.js +20 -0
  164. package/.medusa/server/src/workflows/payout/utils/payout-amounts.d.ts +173 -0
  165. package/.medusa/server/src/workflows/payout/utils/payout-amounts.js +304 -0
  166. package/.medusa/server/src/workflows/payout/utils/sent-to-provider.d.ts +11 -0
  167. package/.medusa/server/src/workflows/payout/utils/sent-to-provider.js +15 -0
  168. package/.medusa/server/src/workflows/payout/workflows/create-onboarding.d.ts +5 -0
  169. package/.medusa/server/src/workflows/payout/workflows/create-onboarding.js +8 -3
  170. package/.medusa/server/src/workflows/payout/workflows/create-or-refresh-seller-payout-account.d.ts +16 -0
  171. package/.medusa/server/src/workflows/payout/workflows/create-or-refresh-seller-payout-account.js +38 -0
  172. package/.medusa/server/src/workflows/payout/workflows/create-order-payouts.d.ts +28 -0
  173. package/.medusa/server/src/workflows/payout/workflows/create-order-payouts.js +82 -0
  174. package/.medusa/server/src/workflows/payout/workflows/create-payout-account.d.ts +11 -5
  175. package/.medusa/server/src/workflows/payout/workflows/create-payout-account.js +42 -17
  176. package/.medusa/server/src/workflows/payout/workflows/create-payout-reversals.d.ts +14 -0
  177. package/.medusa/server/src/workflows/payout/workflows/create-payout-reversals.js +61 -0
  178. package/.medusa/server/src/workflows/payout/workflows/index.d.ts +11 -2
  179. package/.medusa/server/src/workflows/payout/workflows/index.js +12 -3
  180. package/.medusa/server/src/workflows/payout/workflows/link-payout-account.d.ts +11 -0
  181. package/.medusa/server/src/workflows/payout/workflows/link-payout-account.js +35 -0
  182. package/.medusa/server/src/workflows/payout/workflows/process-payout-for-webhook.d.ts +7 -3
  183. package/.medusa/server/src/workflows/payout/workflows/process-payout-for-webhook.js +50 -57
  184. package/.medusa/server/src/workflows/payout/workflows/process-payout-reversal.d.ts +9 -0
  185. package/.medusa/server/src/workflows/payout/workflows/process-payout-reversal.js +19 -0
  186. package/.medusa/server/src/workflows/payout/workflows/process-payout.d.ts +13 -0
  187. package/.medusa/server/src/workflows/payout/workflows/process-payout.js +23 -0
  188. package/.medusa/server/src/workflows/payout/workflows/refresh-onboarding.d.ts +13 -0
  189. package/.medusa/server/src/workflows/payout/workflows/refresh-onboarding.js +26 -0
  190. package/.medusa/server/src/workflows/payout/workflows/refresh-payout-account-link.d.ts +9 -0
  191. package/.medusa/server/src/workflows/payout/workflows/refresh-payout-account-link.js +15 -0
  192. package/.medusa/server/src/workflows/payout/workflows/retry-payout.d.ts +10 -0
  193. package/.medusa/server/src/workflows/payout/workflows/retry-payout.js +36 -0
  194. package/.medusa/server/src/workflows/payout/workflows/sync-payout-account.d.ts +9 -0
  195. package/.medusa/server/src/workflows/payout/workflows/sync-payout-account.js +24 -0
  196. package/.medusa/server/src/workflows/product/workflows/create-products.js +30 -10
  197. package/package.json +3 -3
  198. package/.medusa/server/src/workflows/payout/steps/create-payout.d.ts +0 -3
  199. package/.medusa/server/src/workflows/payout/steps/create-payout.js +0 -12
  200. package/.medusa/server/src/workflows/payout/steps/update-payout-account.d.ts +0 -35
  201. package/.medusa/server/src/workflows/payout/steps/update-payout-account.js +0 -27
  202. package/.medusa/server/src/workflows/payout/steps/update-payout.d.ts +0 -35
  203. package/.medusa/server/src/workflows/payout/steps/update-payout.js +0 -27
  204. package/.medusa/server/src/workflows/payout/steps/validate-seller-payout-account.d.ts +0 -5
  205. package/.medusa/server/src/workflows/payout/steps/validate-seller-payout-account.js +0 -21
  206. package/.medusa/server/src/workflows/payout/workflows/create-payout.d.ts +0 -9
  207. package/.medusa/server/src/workflows/payout/workflows/create-payout.js +0 -87
@@ -5,16 +5,42 @@ const utils_1 = require("@medusajs/framework/utils");
5
5
  const types_1 = require("@mercurjs/types");
6
6
  const onboarding_1 = require("./onboarding");
7
7
  const payout_1 = require("./payout");
8
- exports.PayoutAccount = utils_1.model.define("payout_account", {
8
+ exports.PayoutAccount = utils_1.model
9
+ .define("payout_account", {
9
10
  id: utils_1.model.id({ prefix: "pacc" }).primaryKey(),
11
+ external_id: utils_1.model.text().nullable(),
10
12
  status: utils_1.model.enum(types_1.PayoutAccountStatus).default(types_1.PayoutAccountStatus.PENDING),
13
+ kyc_status: utils_1.model.enum(types_1.PayoutKycStatus).nullable(),
14
+ payouts_enabled: utils_1.model.boolean().default(false),
15
+ charges_enabled: utils_1.model.boolean().default(false),
16
+ details_submitted: utils_1.model.boolean().default(false),
17
+ disabled_reason: utils_1.model.text().nullable(),
18
+ onboarding_token: utils_1.model.text().nullable(),
19
+ onboarding_token_issued_at: utils_1.model.dateTime().nullable(),
20
+ last_synced_at: utils_1.model.dateTime().nullable(),
11
21
  data: utils_1.model.json().default({}),
12
22
  context: utils_1.model.json().nullable(),
13
- onboarding: utils_1.model.hasOne(() => onboarding_1.Onboarding, {
14
- mappedBy: 'account'
15
- }).nullable(),
23
+ onboarding: utils_1.model
24
+ .hasOne(() => onboarding_1.Onboarding, {
25
+ mappedBy: "account",
26
+ })
27
+ .nullable(),
16
28
  payouts: utils_1.model.hasMany(() => payout_1.Payout, {
17
- mappedBy: 'account'
29
+ mappedBy: "account",
18
30
  }),
19
- });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5b3V0LWFjY291bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9wYXlvdXQvbW9kZWxzL3BheW91dC1hY2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUFrRDtBQUVsRCwyQ0FBc0Q7QUFDdEQsNkNBQTBDO0FBQzFDLHFDQUFrQztBQUVyQixRQUFBLGFBQWEsR0FBRyxhQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFnQixFQUFFO0lBQzFELEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFO0lBQzdDLE1BQU0sRUFBRSxhQUFLLENBQUMsSUFBSSxDQUFDLDJCQUFtQixDQUFDLENBQUMsT0FBTyxDQUFDLDJCQUFtQixDQUFDLE9BQU8sQ0FBQztJQUM1RSxJQUFJLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFDOUIsT0FBTyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDaEMsVUFBVSxFQUFFLGFBQUssQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQVUsRUFBRTtRQUN6QyxRQUFRLEVBQUUsU0FBUztLQUNwQixDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ2IsT0FBTyxFQUFFLGFBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBTSxFQUFFO1FBQ25DLFFBQVEsRUFBRSxTQUFTO0tBQ3BCLENBQUM7Q0FDSCxDQUFDLENBQUMifQ==
31
+ })
32
+ .indexes([
33
+ {
34
+ name: "IDX_payout_account_external_id",
35
+ on: ["external_id"],
36
+ unique: true,
37
+ where: "deleted_at IS NULL AND external_id IS NOT NULL",
38
+ },
39
+ {
40
+ name: "IDX_payout_account_onboarding_token",
41
+ on: ["onboarding_token"],
42
+ unique: true,
43
+ where: "deleted_at IS NULL AND onboarding_token IS NOT NULL",
44
+ },
45
+ ]);
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5b3V0LWFjY291bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9wYXlvdXQvbW9kZWxzL3BheW91dC1hY2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFEQUFrRDtBQUVsRCwyQ0FBdUU7QUFDdkUsNkNBQTBDO0FBQzFDLHFDQUFrQztBQUVyQixRQUFBLGFBQWEsR0FBRyxhQUFLO0tBQy9CLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRTtJQUN4QixFQUFFLEVBQUUsYUFBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRTtJQUM3QyxXQUFXLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNwQyxNQUFNLEVBQUUsYUFBSyxDQUFDLElBQUksQ0FBQywyQkFBbUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQywyQkFBbUIsQ0FBQyxPQUFPLENBQUM7SUFDNUUsVUFBVSxFQUFFLGFBQUssQ0FBQyxJQUFJLENBQUMsdUJBQWUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNsRCxlQUFlLEVBQUUsYUFBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7SUFDL0MsZUFBZSxFQUFFLGFBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQy9DLGlCQUFpQixFQUFFLGFBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQ2pELGVBQWUsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3hDLGdCQUFnQixFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDekMsMEJBQTBCLEVBQUUsYUFBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN2RCxjQUFjLEVBQUUsYUFBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQyxJQUFJLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7SUFDOUIsT0FBTyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDaEMsVUFBVSxFQUFFLGFBQUs7U0FDZCxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsdUJBQVUsRUFBRTtRQUN4QixRQUFRLEVBQUUsU0FBUztLQUNwQixDQUFDO1NBQ0QsUUFBUSxFQUFFO0lBQ2IsT0FBTyxFQUFFLGFBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBTSxFQUFFO1FBQ25DLFFBQVEsRUFBRSxTQUFTO0tBQ3BCLENBQUM7Q0FDSCxDQUFDO0tBQ0QsT0FBTyxDQUFDO0lBQ1A7UUFDRSxJQUFJLEVBQUUsZ0NBQWdDO1FBQ3RDLEVBQUUsRUFBRSxDQUFDLGFBQWEsQ0FBQztRQUNuQixNQUFNLEVBQUUsSUFBSTtRQUNaLEtBQUssRUFBRSxnREFBZ0Q7S0FDeEQ7SUFDRDtRQUNFLElBQUksRUFBRSxxQ0FBcUM7UUFDM0MsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUM7UUFDeEIsTUFBTSxFQUFFLElBQUk7UUFDWixLQUFLLEVBQUUscURBQXFEO0tBQzdEO0NBQ0YsQ0FBQyxDQUFDIn0=
@@ -0,0 +1,48 @@
1
+ import { PayoutStatus } from '@mercurjs/types';
2
+ export declare const PayoutReversal: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
3
+ id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
4
+ refund_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
5
+ amount: import("@medusajs/framework/utils").BigNumberProperty;
6
+ status: import("@medusajs/framework/utils").EnumProperty<typeof PayoutStatus>;
7
+ status_reason: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
8
+ data: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
9
+ payout: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
10
+ id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
11
+ display_id: import("@medusajs/framework/utils").AutoIncrementProperty;
12
+ order_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
13
+ currency_code: import("@medusajs/framework/utils").TextProperty;
14
+ amount: import("@medusajs/framework/utils").BigNumberProperty;
15
+ status: import("@medusajs/framework/utils").EnumProperty<typeof PayoutStatus>;
16
+ status_reason: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
17
+ data: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
18
+ metadata: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
19
+ account: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
20
+ id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
21
+ external_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
22
+ status: import("@medusajs/framework/utils").EnumProperty<typeof import("@mercurjs/types").PayoutAccountStatus>;
23
+ kyc_status: import("@medusajs/framework/utils").NullableModifier<import("@mercurjs/types").PayoutKycStatus, import("@medusajs/framework/utils").EnumProperty<typeof import("@mercurjs/types").PayoutKycStatus>>;
24
+ payouts_enabled: import("@medusajs/framework/utils").BooleanProperty;
25
+ charges_enabled: import("@medusajs/framework/utils").BooleanProperty;
26
+ details_submitted: import("@medusajs/framework/utils").BooleanProperty;
27
+ disabled_reason: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
28
+ onboarding_token: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
29
+ onboarding_token_issued_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
30
+ last_synced_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
31
+ data: import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>;
32
+ context: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
33
+ onboarding: import("@medusajs/framework/utils").RelationNullableModifier<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
34
+ id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
35
+ data: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
36
+ context: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
37
+ account: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "payout_account">, undefined>;
38
+ }>, "onboarding">, import("@medusajs/framework/utils").HasOne<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
39
+ id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
40
+ data: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
41
+ context: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
42
+ account: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "payout_account">, undefined>;
43
+ }>, "onboarding">>, false>;
44
+ payouts: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "payout">>;
45
+ }>, "payout_account">, undefined>;
46
+ reversals: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "payout_reversal">>;
47
+ }>, "payout">, undefined>;
48
+ }>, "payout_reversal">;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PayoutReversal = void 0;
4
+ const utils_1 = require("@medusajs/framework/utils");
5
+ const payout_1 = require("./payout");
6
+ const types_1 = require("@mercurjs/types");
7
+ exports.PayoutReversal = utils_1.model
8
+ .define('payout_reversal', {
9
+ id: utils_1.model.id({ prefix: 'pourev' }).primaryKey(),
10
+ refund_id: utils_1.model.text().nullable(),
11
+ amount: utils_1.model.bigNumber(),
12
+ status: utils_1.model.enum(types_1.PayoutStatus).default(types_1.PayoutStatus.PENDING),
13
+ status_reason: utils_1.model.text().nullable(),
14
+ data: utils_1.model.json().nullable(),
15
+ payout: utils_1.model.belongsTo(() => payout_1.Payout, {
16
+ mappedBy: 'reversals'
17
+ })
18
+ })
19
+ .indexes([
20
+ {
21
+ name: 'IDX_payout_reversal_payout_id',
22
+ on: ['payout_id'],
23
+ where: 'deleted_at IS NULL'
24
+ },
25
+ {
26
+ name: 'IDX_payout_reversal_refund_id',
27
+ on: ['refund_id'],
28
+ unique: true,
29
+ where: 'deleted_at IS NULL AND refund_id IS NOT NULL'
30
+ },
31
+ {
32
+ name: 'IDX_payout_reversal_status_created_at',
33
+ on: ['status', 'created_at'],
34
+ where: 'deleted_at IS NULL'
35
+ }
36
+ ]);
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5b3V0LXJldmVyc2FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvcGF5b3V0L21vZGVscy9wYXlvdXQtcmV2ZXJzYWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQWlEO0FBRWpELHFDQUFpQztBQUNqQywyQ0FBOEM7QUFFakMsUUFBQSxjQUFjLEdBQUcsYUFBSztLQUNoQyxNQUFNLENBQUMsaUJBQWlCLEVBQUU7SUFDekIsRUFBRSxFQUFFLGFBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUU7SUFDL0MsU0FBUyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDbEMsTUFBTSxFQUFFLGFBQUssQ0FBQyxTQUFTLEVBQUU7SUFDekIsTUFBTSxFQUFFLGFBQUssQ0FBQyxJQUFJLENBQUMsb0JBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxvQkFBWSxDQUFDLE9BQU8sQ0FBQztJQUM5RCxhQUFhLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUN0QyxJQUFJLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QixNQUFNLEVBQUUsYUFBSyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFNLEVBQUU7UUFDcEMsUUFBUSxFQUFFLFdBQVc7S0FDdEIsQ0FBQztDQUNILENBQUM7S0FDRCxPQUFPLENBQUM7SUFDUDtRQUNFLElBQUksRUFBRSwrQkFBK0I7UUFDckMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQ2pCLEtBQUssRUFBRSxvQkFBb0I7S0FDNUI7SUFDRDtRQUNFLElBQUksRUFBRSwrQkFBK0I7UUFDckMsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQ2pCLE1BQU0sRUFBRSxJQUFJO1FBQ1osS0FBSyxFQUFFLDhDQUE4QztLQUN0RDtJQUNEO1FBQ0UsSUFBSSxFQUFFLHVDQUF1QztRQUM3QyxFQUFFLEVBQUUsQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDO1FBQzVCLEtBQUssRUFBRSxvQkFBb0I7S0FDNUI7Q0FDRixDQUFDLENBQUEifQ==
@@ -2,12 +2,25 @@ import { PayoutStatus } from '@mercurjs/types';
2
2
  export declare const Payout: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
3
3
  id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
4
4
  display_id: import("@medusajs/framework/utils").AutoIncrementProperty;
5
+ order_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
5
6
  currency_code: import("@medusajs/framework/utils").TextProperty;
6
7
  amount: import("@medusajs/framework/utils").BigNumberProperty;
8
+ status: import("@medusajs/framework/utils").EnumProperty<typeof PayoutStatus>;
9
+ status_reason: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
7
10
  data: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
11
+ metadata: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
8
12
  account: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
9
13
  id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
14
+ external_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
10
15
  status: import("@medusajs/framework/utils").EnumProperty<typeof import("@mercurjs/types").PayoutAccountStatus>;
16
+ kyc_status: import("@medusajs/framework/utils").NullableModifier<import("@mercurjs/types").PayoutKycStatus, import("@medusajs/framework/utils").EnumProperty<typeof import("@mercurjs/types").PayoutKycStatus>>;
17
+ payouts_enabled: import("@medusajs/framework/utils").BooleanProperty;
18
+ charges_enabled: import("@medusajs/framework/utils").BooleanProperty;
19
+ details_submitted: import("@medusajs/framework/utils").BooleanProperty;
20
+ disabled_reason: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
21
+ onboarding_token: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
22
+ onboarding_token_issued_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
23
+ last_synced_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
11
24
  data: import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>;
12
25
  context: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
13
26
  onboarding: import("@medusajs/framework/utils").RelationNullableModifier<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
@@ -23,5 +36,13 @@ export declare const Payout: import("@medusajs/framework/utils").DmlEntity<impor
23
36
  }>, "onboarding">>, false>;
24
37
  payouts: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "payout">>;
25
38
  }>, "payout_account">, undefined>;
26
- status: import("@medusajs/framework/utils").EnumProperty<typeof PayoutStatus>;
39
+ reversals: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
40
+ id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
41
+ refund_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
42
+ amount: import("@medusajs/framework/utils").BigNumberProperty;
43
+ status: import("@medusajs/framework/utils").EnumProperty<typeof PayoutStatus>;
44
+ status_reason: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
45
+ data: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
46
+ payout: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "payout">, undefined>;
47
+ }>, "payout_reversal">>;
27
48
  }>, "payout">;
@@ -3,18 +3,28 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Payout = void 0;
4
4
  const utils_1 = require("@medusajs/framework/utils");
5
5
  const payout_account_1 = require("./payout-account");
6
+ const payout_reversal_1 = require("./payout-reversal");
6
7
  const types_1 = require("@mercurjs/types");
7
8
  exports.Payout = utils_1.model
8
9
  .define('payout', {
9
10
  id: utils_1.model.id({ prefix: 'pout' }).primaryKey(),
10
11
  display_id: utils_1.model.autoincrement(),
12
+ order_id: utils_1.model.text().nullable(),
11
13
  currency_code: utils_1.model.text(),
12
14
  amount: utils_1.model.bigNumber(),
15
+ status: utils_1.model.enum(types_1.PayoutStatus).default(types_1.PayoutStatus.PENDING),
16
+ status_reason: utils_1.model.text().nullable(),
13
17
  data: utils_1.model.json().nullable(),
18
+ metadata: utils_1.model.json().nullable(),
14
19
  account: utils_1.model.belongsTo(() => payout_account_1.PayoutAccount, {
15
20
  mappedBy: 'payouts'
16
21
  }),
17
- status: utils_1.model.enum(types_1.PayoutStatus).default(types_1.PayoutStatus.PENDING)
22
+ reversals: utils_1.model.hasMany(() => payout_reversal_1.PayoutReversal, {
23
+ mappedBy: 'payout'
24
+ })
25
+ })
26
+ .cascades({
27
+ delete: ['reversals']
18
28
  })
19
29
  .indexes([
20
30
  {
@@ -26,6 +36,12 @@ exports.Payout = utils_1.model
26
36
  name: 'IDX_payout_status_created_at',
27
37
  on: ['status', 'created_at'],
28
38
  where: 'deleted_at IS NULL'
39
+ },
40
+ {
41
+ name: 'IDX_payout_order_id',
42
+ on: ['order_id'],
43
+ unique: true,
44
+ where: 'deleted_at IS NULL AND order_id IS NOT NULL'
29
45
  }
30
46
  ]);
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvcGF5b3V0L21vZGVscy9wYXlvdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQWlEO0FBRWpELHFEQUFnRDtBQUNoRCwyQ0FBOEM7QUFFakMsUUFBQSxNQUFNLEdBQUcsYUFBSztLQUN4QixNQUFNLENBQUMsUUFBUSxFQUFFO0lBQ2hCLEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFO0lBQzdDLFVBQVUsRUFBRSxhQUFLLENBQUMsYUFBYSxFQUFFO0lBQ2pDLGFBQWEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQzNCLE1BQU0sRUFBRSxhQUFLLENBQUMsU0FBUyxFQUFFO0lBQ3pCLElBQUksRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzdCLE9BQU8sRUFBRSxhQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLDhCQUFhLEVBQUU7UUFDNUMsUUFBUSxFQUFFLFNBQVM7S0FDcEIsQ0FBQztJQUNGLE1BQU0sRUFBRSxhQUFLLENBQUMsSUFBSSxDQUFDLG9CQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsb0JBQVksQ0FBQyxPQUFPLENBQUM7Q0FDL0QsQ0FBQztLQUNELE9BQU8sQ0FBQztJQUNQO1FBQ0UsSUFBSSxFQUFFLGtDQUFrQztRQUN4QyxFQUFFLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDO1FBQ2hDLEtBQUssRUFBRSxvQkFBb0I7S0FDNUI7SUFDRDtRQUNFLElBQUksRUFBRSw4QkFBOEI7UUFDcEMsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQztRQUM1QixLQUFLLEVBQUUsb0JBQW9CO0tBQzVCO0NBQ0YsQ0FBQyxDQUFBIn0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvcGF5b3V0L21vZGVscy9wYXlvdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscURBQWlEO0FBRWpELHFEQUFnRDtBQUNoRCx1REFBa0Q7QUFDbEQsMkNBQThDO0FBRWpDLFFBQUEsTUFBTSxHQUFHLGFBQUs7S0FDeEIsTUFBTSxDQUFDLFFBQVEsRUFBRTtJQUNoQixFQUFFLEVBQUUsYUFBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRTtJQUM3QyxVQUFVLEVBQUUsYUFBSyxDQUFDLGFBQWEsRUFBRTtJQUNqQyxRQUFRLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNqQyxhQUFhLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRTtJQUMzQixNQUFNLEVBQUUsYUFBSyxDQUFDLFNBQVMsRUFBRTtJQUN6QixNQUFNLEVBQUUsYUFBSyxDQUFDLElBQUksQ0FBQyxvQkFBWSxDQUFDLENBQUMsT0FBTyxDQUFDLG9CQUFZLENBQUMsT0FBTyxDQUFDO0lBQzlELGFBQWEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3RDLElBQUksRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzdCLFFBQVEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2pDLE9BQU8sRUFBRSxhQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLDhCQUFhLEVBQUU7UUFDNUMsUUFBUSxFQUFFLFNBQVM7S0FDcEIsQ0FBQztJQUNGLFNBQVMsRUFBRSxhQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLGdDQUFjLEVBQUU7UUFDN0MsUUFBUSxFQUFFLFFBQVE7S0FDbkIsQ0FBQztDQUNILENBQUM7S0FDRCxRQUFRLENBQUM7SUFDUixNQUFNLEVBQUUsQ0FBQyxXQUFXLENBQUM7Q0FDdEIsQ0FBQztLQUNELE9BQU8sQ0FBQztJQUNQO1FBQ0UsSUFBSSxFQUFFLGtDQUFrQztRQUN4QyxFQUFFLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDO1FBQ2hDLEtBQUssRUFBRSxvQkFBb0I7S0FDNUI7SUFDRDtRQUNFLElBQUksRUFBRSw4QkFBOEI7UUFDcEMsRUFBRSxFQUFFLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQztRQUM1QixLQUFLLEVBQUUsb0JBQW9CO0tBQzVCO0lBQ0Q7UUFDRSxJQUFJLEVBQUUscUJBQXFCO1FBQzNCLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQztRQUNoQixNQUFNLEVBQUUsSUFBSTtRQUNaLEtBQUssRUFBRSw2Q0FBNkM7S0FDckQ7Q0FDRixDQUFDLENBQUEifQ==
@@ -1,8 +1,14 @@
1
- import { CreatePayoutAccountInput, CreatePayoutAccountResponse, CreatePayoutInput, CreatePayoutResponse, CreateOnboardingInput, CreateOnboardingResponse, PayoutWebhookActionInput, PayoutWebhookResult, IPayoutProvider } from "@mercurjs/types";
2
- export declare class SystemPayoutProvider implements IPayoutProvider {
1
+ import { AccountOutput, CreateAccountInput, CreateLoginLinkInput, CreateOnboardingInput, CreatePayoutInput, LinkOutput, ListAccountsInput, ListAccountsOutput, PayoutOutput, PayoutWebhookActionInput, PayoutWebhookResult, RetrieveAccountInput, ReversePayoutInput } from "@mercurjs/types";
2
+ import { AbstractPayoutProvider } from "../utils/abstract-payout-provider";
3
+ export declare class SystemPayoutProvider extends AbstractPayoutProvider {
3
4
  static identifier: string;
4
- createPayoutAccount(_input: CreatePayoutAccountInput): Promise<CreatePayoutAccountResponse>;
5
- createPayout(_input: CreatePayoutInput): Promise<CreatePayoutResponse>;
6
- createOnboarding(_input: CreateOnboardingInput): Promise<CreateOnboardingResponse>;
5
+ constructor(container: Record<string, unknown>, options: Record<string, unknown>);
6
+ createAccount(_input: CreateAccountInput): Promise<AccountOutput>;
7
+ retrieveAccount(input: RetrieveAccountInput): Promise<AccountOutput>;
8
+ listAccounts(_input: ListAccountsInput): Promise<ListAccountsOutput>;
9
+ createOnboarding(input: CreateOnboardingInput): Promise<LinkOutput>;
10
+ createLoginLink(input: CreateLoginLinkInput): Promise<LinkOutput>;
11
+ createPayout(_input: CreatePayoutInput): Promise<PayoutOutput>;
12
+ reversePayout(_input: ReversePayoutInput): Promise<PayoutOutput>;
7
13
  getWebhookActionAndData(_payload: PayoutWebhookActionInput): Promise<PayoutWebhookResult>;
8
14
  }
@@ -6,22 +6,41 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.SystemPayoutProvider = void 0;
7
7
  const crypto_1 = __importDefault(require("crypto"));
8
8
  const types_1 = require("@mercurjs/types");
9
- class SystemPayoutProvider {
10
- async createPayoutAccount(_input) {
11
- return {
12
- id: crypto_1.default.randomUUID(),
13
- status: types_1.PayoutAccountStatus.ACTIVE,
14
- data: {},
15
- };
9
+ const abstract_payout_provider_1 = require("../utils/abstract-payout-provider");
10
+ const activeAccount = (id, data = {}) => ({
11
+ id,
12
+ status: types_1.PayoutAccountStatus.ACTIVE,
13
+ payouts_enabled: true,
14
+ charges_enabled: true,
15
+ details_submitted: true,
16
+ disabled_reason: null,
17
+ requirements: { currently_due: [], past_due: [], pending_verification: [] },
18
+ data,
19
+ });
20
+ class SystemPayoutProvider extends abstract_payout_provider_1.AbstractPayoutProvider {
21
+ constructor(container, options) {
22
+ super(container, options);
23
+ }
24
+ async createAccount(_input) {
25
+ return activeAccount(crypto_1.default.randomUUID());
26
+ }
27
+ async retrieveAccount(input) {
28
+ return activeAccount(input.account.id, input.account.data);
29
+ }
30
+ async listAccounts(_input) {
31
+ return { accounts: [], has_more: false };
32
+ }
33
+ async createOnboarding(input) {
34
+ return { url: input.return_url, data: {} };
35
+ }
36
+ async createLoginLink(input) {
37
+ return { url: `system://account/${input.account.id}`, data: {} };
16
38
  }
17
39
  async createPayout(_input) {
18
- return {
19
- status: types_1.PayoutStatus.PAID,
20
- data: {},
21
- };
40
+ return { id: crypto_1.default.randomUUID(), status: types_1.PayoutStatus.PAID, data: {} };
22
41
  }
23
- async createOnboarding(_input) {
24
- return { data: {} };
42
+ async reversePayout(_input) {
43
+ return { id: crypto_1.default.randomUUID(), status: types_1.PayoutStatus.PAID, data: {} };
25
44
  }
26
45
  async getWebhookActionAndData(_payload) {
27
46
  return { action: "not_supported" };
@@ -29,4 +48,4 @@ class SystemPayoutProvider {
29
48
  }
30
49
  exports.SystemPayoutProvider = SystemPayoutProvider;
31
50
  SystemPayoutProvider.identifier = "system";
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvcGF5b3V0L3Byb3ZpZGVycy9zeXN0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTJCO0FBRTNCLDJDQVl3QjtBQUV4QixNQUFhLG9CQUFvQjtJQUcvQixLQUFLLENBQUMsbUJBQW1CLENBQ3ZCLE1BQWdDO1FBRWhDLE9BQU87WUFDTCxFQUFFLEVBQUUsZ0JBQU0sQ0FBQyxVQUFVLEVBQUU7WUFDdkIsTUFBTSxFQUFFLDJCQUFtQixDQUFDLE1BQU07WUFDbEMsSUFBSSxFQUFFLEVBQUU7U0FDVCxDQUFBO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBeUI7UUFDMUMsT0FBTztZQUNMLE1BQU0sRUFBRSxvQkFBWSxDQUFDLElBQUk7WUFDekIsSUFBSSxFQUFFLEVBQUU7U0FDVCxDQUFBO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxnQkFBZ0IsQ0FDcEIsTUFBNkI7UUFFN0IsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQTtJQUNyQixDQUFDO0lBRUQsS0FBSyxDQUFDLHVCQUF1QixDQUMzQixRQUFrQztRQUVsQyxPQUFPLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxDQUFBO0lBQ3BDLENBQUM7O0FBOUJILG9EQStCQztBQTlCUSwrQkFBVSxHQUFHLFFBQVEsQ0FBQSJ9
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvcGF5b3V0L3Byb3ZpZGVycy9zeXN0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsb0RBQTJCO0FBRTNCLDJDQWdCd0I7QUFFeEIsZ0ZBQTBFO0FBRTFFLE1BQU0sYUFBYSxHQUFHLENBQUMsRUFBVSxFQUFFLE9BQWdDLEVBQUUsRUFBaUIsRUFBRSxDQUFDLENBQUM7SUFDeEYsRUFBRTtJQUNGLE1BQU0sRUFBRSwyQkFBbUIsQ0FBQyxNQUFNO0lBQ2xDLGVBQWUsRUFBRSxJQUFJO0lBQ3JCLGVBQWUsRUFBRSxJQUFJO0lBQ3JCLGlCQUFpQixFQUFFLElBQUk7SUFDdkIsZUFBZSxFQUFFLElBQUk7SUFDckIsWUFBWSxFQUFFLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLG9CQUFvQixFQUFFLEVBQUUsRUFBRTtJQUMzRSxJQUFJO0NBQ0wsQ0FBQyxDQUFBO0FBRUYsTUFBYSxvQkFBcUIsU0FBUSxpREFBc0I7SUFHOUQsWUFBWSxTQUFrQyxFQUFFLE9BQWdDO1FBQzlFLEtBQUssQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUE7SUFDM0IsQ0FBQztJQUVELEtBQUssQ0FBQyxhQUFhLENBQUMsTUFBMEI7UUFDNUMsT0FBTyxhQUFhLENBQUMsZ0JBQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFBO0lBQzNDLENBQUM7SUFFRCxLQUFLLENBQUMsZUFBZSxDQUFDLEtBQTJCO1FBQy9DLE9BQU8sYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDNUQsQ0FBQztJQUVELEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBeUI7UUFDMUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFBO0lBQzFDLENBQUM7SUFFRCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsS0FBNEI7UUFDakQsT0FBTyxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQTtJQUM1QyxDQUFDO0lBRUQsS0FBSyxDQUFDLGVBQWUsQ0FBQyxLQUEyQjtRQUMvQyxPQUFPLEVBQUUsR0FBRyxFQUFFLG9CQUFvQixLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQTtJQUNsRSxDQUFDO0lBRUQsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUF5QjtRQUMxQyxPQUFPLEVBQUUsRUFBRSxFQUFFLGdCQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLG9CQUFZLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQTtJQUN6RSxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FBQyxNQUEwQjtRQUM1QyxPQUFPLEVBQUUsRUFBRSxFQUFFLGdCQUFNLENBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLG9CQUFZLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQTtJQUN6RSxDQUFDO0lBRUQsS0FBSyxDQUFDLHVCQUF1QixDQUMzQixRQUFrQztRQUVsQyxPQUFPLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxDQUFBO0lBQ3BDLENBQUM7O0FBdkNILG9EQXdDQztBQXZDUSwrQkFBVSxHQUFHLFFBQVEsQ0FBQSJ9
@@ -1,111 +1,105 @@
1
- import { CreatePayoutAccountDTO, CreatePayoutDTO, CreateOnboardingDTO, OnboardingDTO, PayoutAccountDTO, PayoutAccountStatus, PayoutDTO, PayoutWebhookActionInput, PayoutWebhookResult, PayoutModuleOptions, PayoutStatus } from "@mercurjs/types";
1
+ import { AccountOutput, CreateAccountInput, CreatePayoutAccountDTO, CreateOnboardingDTO, IPayoutModuleService, OnboardingDTO, PayoutAccountDTO, PayoutAccountRequirements, PayoutAccountStatus, PayoutDTO, PayoutKycStatus, PayoutModuleOptions, PayoutOutput, PayoutProviderErrorCode, PayoutReversalDTO, PayoutStatus, PayoutWebhookActionInput, PayoutWebhookResult, ResolvedPayoutModuleOptions } from "@mercurjs/types";
2
2
  import PayoutProviderService from "./provider-service";
3
- import { Payout, PayoutAccount } from "../models";
4
- import { Context, DAL, InferEntityType } from "@medusajs/framework/types";
5
- import { EntityManager } from "@medusajs/framework/mikro-orm/knex";
3
+ import { Context, DAL } from "@medusajs/framework/types";
4
+ import { SqlEntityManager } from "@medusajs/framework/mikro-orm/postgresql";
6
5
  type InjectedDependencies = {
7
6
  payoutProviderService: PayoutProviderService;
8
7
  baseRepository: DAL.RepositoryService;
9
8
  };
10
- declare const PayoutModuleService_base: import("@medusajs/framework/utils").MedusaServiceReturnType<import("@medusajs/framework/utils").ModelConfigurationsToConfigTemplate<{
11
- readonly Onboarding: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
12
- id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
13
- data: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
14
- context: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
15
- account: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
16
- id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
17
- status: import("@medusajs/framework/utils").EnumProperty<typeof PayoutAccountStatus>;
18
- data: import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>;
19
- context: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
20
- onboarding: import("@medusajs/framework/utils").RelationNullableModifier<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "onboarding">, import("@medusajs/framework/utils").HasOne<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "onboarding">>, false>;
21
- payouts: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
22
- id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
23
- display_id: import("@medusajs/framework/utils").AutoIncrementProperty;
24
- currency_code: import("@medusajs/framework/utils").TextProperty;
25
- amount: import("@medusajs/framework/utils").BigNumberProperty;
26
- data: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
27
- account: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "payout_account">, undefined>;
28
- status: import("@medusajs/framework/utils").EnumProperty<typeof PayoutStatus>;
29
- }>, "payout">>;
30
- }>, "payout_account">, undefined>;
31
- }>, "onboarding">;
32
- readonly Payout: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
33
- id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
34
- display_id: import("@medusajs/framework/utils").AutoIncrementProperty;
35
- currency_code: import("@medusajs/framework/utils").TextProperty;
36
- amount: import("@medusajs/framework/utils").BigNumberProperty;
37
- data: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
38
- account: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
39
- id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
40
- status: import("@medusajs/framework/utils").EnumProperty<typeof PayoutAccountStatus>;
41
- data: import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>;
42
- context: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
43
- onboarding: import("@medusajs/framework/utils").RelationNullableModifier<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
44
- id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
45
- data: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
46
- context: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
47
- account: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "payout_account">, undefined>;
48
- }>, "onboarding">, import("@medusajs/framework/utils").HasOne<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
49
- id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
50
- data: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
51
- context: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
52
- account: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "payout_account">, undefined>;
53
- }>, "onboarding">>, false>;
54
- payouts: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "payout">>;
55
- }>, "payout_account">, undefined>;
56
- status: import("@medusajs/framework/utils").EnumProperty<typeof PayoutStatus>;
57
- }>, "payout">;
58
- readonly PayoutAccount: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
59
- id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
60
- status: import("@medusajs/framework/utils").EnumProperty<typeof PayoutAccountStatus>;
61
- data: import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>;
62
- context: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
63
- onboarding: import("@medusajs/framework/utils").RelationNullableModifier<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
64
- id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
65
- data: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
66
- context: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
67
- account: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "payout_account">, undefined>;
68
- }>, "onboarding">, import("@medusajs/framework/utils").HasOne<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
69
- id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
70
- data: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
71
- context: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
72
- account: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "payout_account">, undefined>;
73
- }>, "onboarding">>, false>;
74
- payouts: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
75
- id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
76
- display_id: import("@medusajs/framework/utils").AutoIncrementProperty;
77
- currency_code: import("@medusajs/framework/utils").TextProperty;
78
- amount: import("@medusajs/framework/utils").BigNumberProperty;
79
- data: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
80
- account: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "payout_account">, undefined>;
81
- status: import("@medusajs/framework/utils").EnumProperty<typeof PayoutStatus>;
82
- }>, "payout">>;
83
- }>, "payout_account">;
84
- }>>;
85
- export default class PayoutModuleService extends PayoutModuleService_base {
9
+ type ProviderAccount = {
10
+ external_id?: string | null;
11
+ data?: Record<string, unknown> | null;
12
+ };
13
+ type ProviderResult = {
14
+ status: PayoutStatus;
15
+ status_reason: string | null;
16
+ data: Record<string, unknown>;
17
+ };
18
+ declare const PayoutModuleService_base: import("@medusajs/framework/utils").MedusaServiceReturnType<{
19
+ Onboarding: {
20
+ dto: OnboardingDTO;
21
+ };
22
+ Payout: {
23
+ dto: PayoutDTO;
24
+ };
25
+ PayoutAccount: {
26
+ dto: PayoutAccountDTO;
27
+ };
28
+ PayoutReversal: {
29
+ dto: PayoutReversalDTO;
30
+ };
31
+ }>;
32
+ export default class PayoutModuleService extends PayoutModuleService_base implements IPayoutModuleService {
33
+ protected static readonly PROCESSABLE_STATUSES: PayoutStatus[];
34
+ protected static readonly STATUS_DETAIL_MAX_LENGTH = 1024;
86
35
  protected readonly payoutProviderService_: PayoutProviderService;
87
36
  protected readonly baseRepository_: DAL.RepositoryService;
88
- protected readonly options_: PayoutModuleOptions;
37
+ protected readonly options_: ResolvedPayoutModuleOptions;
89
38
  constructor({ payoutProviderService, baseRepository }: InjectedDependencies, options: PayoutModuleOptions);
90
- getOptions(): {
91
- providers?: {
92
- resolve: string | import("@mercurjs/types").ModuleProviderExports;
93
- id: string;
94
- options?: Record<string, unknown>;
95
- }[];
96
- disabled: boolean;
97
- authorizationWindowMs: number;
98
- sellerActionWindowMs: number;
99
- captureSafetyBufferMs: number;
100
- requiredFulfillmentStatus: import("@mercurjs/types").FulfillmentStatus;
101
- };
102
- createPayoutAccount(input: CreatePayoutAccountDTO, sharedContext?: Context<EntityManager>): Promise<PayoutAccountDTO>;
103
- createOnboarding(input: CreateOnboardingDTO, sharedContext?: Context<EntityManager>): Promise<OnboardingDTO>;
104
- createPayouts(input: CreatePayoutDTO, sharedContext?: Context<EntityManager>): Promise<PayoutDTO>;
105
- protected createPayouts_(input: CreatePayoutDTO, sharedContext?: Context<EntityManager>): Promise<{
106
- payout: InferEntityType<typeof Payout>;
107
- payoutAccount: InferEntityType<typeof PayoutAccount>;
108
- }>;
39
+ getOptions(): ResolvedPayoutModuleOptions;
40
+ createPayoutAccount(input: CreatePayoutAccountDTO, sharedContext?: Context<SqlEntityManager>): Promise<PayoutAccountDTO>;
41
+ syncPayoutAccount(accountId: string, sharedContext?: Context<SqlEntityManager>): Promise<PayoutAccountDTO>;
42
+ deletePayoutAccount(accountId: string, sharedContext?: Context<SqlEntityManager>): Promise<void>;
43
+ createOnboarding(input: CreateOnboardingDTO, sharedContext?: Context<SqlEntityManager>): Promise<OnboardingDTO>;
44
+ processPayout(payoutId: string, sharedContext?: Context<SqlEntityManager>): Promise<PayoutDTO>;
45
+ processPayoutReversal(reversalId: string, sharedContext?: Context<SqlEntityManager>): Promise<PayoutReversalDTO>;
109
46
  getWebhookActionAndData(input: PayoutWebhookActionInput): Promise<PayoutWebhookResult>;
47
+ protected processPayout_(payoutId: string, sharedContext?: Context<SqlEntityManager>): Promise<{
48
+ payout: PayoutDTO;
49
+ attempt: {
50
+ attempts: number;
51
+ idempotency_key: string;
52
+ } | null;
53
+ }>;
54
+ protected processPayoutReversal_(reversalId: string, sharedContext?: Context<SqlEntityManager>): Promise<{
55
+ reversal: PayoutReversalDTO;
56
+ attempt: {
57
+ attempts: number;
58
+ idempotency_key: string;
59
+ } | null;
60
+ }>;
61
+ protected processPayoutFromProvider_(payout: PayoutDTO, attempt: {
62
+ idempotency_key: string;
63
+ }): Promise<ProviderResult>;
64
+ protected processPayoutReversalFromProvider_(reversal: PayoutReversalDTO, attempt: {
65
+ idempotency_key: string;
66
+ }): Promise<ProviderResult>;
67
+ protected lockRow_(table: string, id: string, sharedContext: Context<SqlEntityManager>): Promise<void>;
68
+ /**
69
+ * The key of a request whose outcome is unknown is kept, so a retry after a
70
+ * timeout returns the payout the provider may already have made. Only a
71
+ * provider refusal clears it, and the next attempt gets a fresh key.
72
+ */
73
+ protected nextAttempt_(id: string, data: Record<string, unknown> | null): {
74
+ attempts: number;
75
+ idempotency_key: string;
76
+ };
77
+ protected statusFromProvider_(response: PayoutOutput): ProviderResult;
78
+ protected statusFromError_(error: unknown): ProviderResult;
79
+ protected providerErrorCode_(error: unknown): PayoutProviderErrorCode;
80
+ protected isOnboardingTokenValid_(account: PayoutAccountDTO): boolean;
81
+ protected generateOnboardingToken_(): string;
82
+ protected providerAccountRef_(account: ProviderAccount): {
83
+ id: string;
84
+ data: Record<string, unknown>;
85
+ };
86
+ protected providerAccountInput_(accountId: string, input: CreatePayoutAccountDTO): CreateAccountInput;
87
+ protected accountFieldsFromProvider_(account: AccountOutput): {
88
+ external_id: string;
89
+ status: PayoutAccountStatus;
90
+ kyc_status: PayoutKycStatus;
91
+ payouts_enabled: boolean;
92
+ charges_enabled: boolean;
93
+ details_submitted: boolean;
94
+ disabled_reason: string | null;
95
+ data: Record<string, unknown>;
96
+ last_synced_at: Date;
97
+ };
98
+ /**
99
+ * Outstanding requirements beat pending verification, a `rejected.*`
100
+ * disabled reason is final, any other disabled reason is still under review.
101
+ */
102
+ protected deriveKycStatus_(requirements: PayoutAccountRequirements | null | undefined, disabledReason: string | null | undefined): PayoutKycStatus;
103
+ protected deriveAccountStatus_(account: AccountOutput): PayoutAccountStatus;
110
104
  }
111
105
  export {};