@mercurjs/core 2.3.9-canary.4 → 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 (197) 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/hooks/payout/route.js +4 -6
  27. package/.medusa/server/src/api/middlewares.js +5 -1
  28. package/.medusa/server/src/api/payout/onboarding/refresh/route.d.ts +6 -0
  29. package/.medusa/server/src/api/payout/onboarding/refresh/route.js +21 -0
  30. package/.medusa/server/src/api/store/carts/middlewares.js +11 -1
  31. package/.medusa/server/src/api/utils/ensure-seller-middleware.js +2 -2
  32. package/.medusa/server/src/api/vendor/payout-accounts/[id]/onboarding/route.js +2 -8
  33. package/.medusa/server/src/api/vendor/payout-accounts/helpers.d.ts +2 -0
  34. package/.medusa/server/src/api/vendor/payout-accounts/helpers.js +7 -2
  35. package/.medusa/server/src/api/vendor/payout-accounts/me/route.d.ts +3 -0
  36. package/.medusa/server/src/api/vendor/payout-accounts/me/route.js +15 -0
  37. package/.medusa/server/src/api/vendor/payout-accounts/middlewares.js +9 -1
  38. package/.medusa/server/src/api/vendor/payout-accounts/query-config.d.ts +11 -0
  39. package/.medusa/server/src/api/vendor/payout-accounts/query-config.js +30 -2
  40. package/.medusa/server/src/api/vendor/payout-accounts/route.js +4 -9
  41. package/.medusa/server/src/api/vendor/payout-accounts/validators.d.ts +3 -1
  42. package/.medusa/server/src/api/vendor/payout-accounts/validators.js +5 -2
  43. package/.medusa/server/src/api/vendor/payouts/query-config.d.ts +2 -0
  44. package/.medusa/server/src/api/vendor/payouts/query-config.js +12 -2
  45. package/.medusa/server/src/api/vendor/payouts/validators.d.ts +1 -0
  46. package/.medusa/server/src/api/vendor/payouts/validators.js +2 -1
  47. package/.medusa/server/src/api/vendor/sellers/select/route.js +2 -2
  48. package/.medusa/server/src/modules/payout/index.d.ts +1 -45
  49. package/.medusa/server/src/modules/payout/loaders/provider.js +7 -3
  50. package/.medusa/server/src/modules/payout/migrations/Migration20261028120000.d.ts +5 -0
  51. package/.medusa/server/src/modules/payout/migrations/Migration20261028120000.js +97 -0
  52. package/.medusa/server/src/modules/payout/models/index.d.ts +1 -0
  53. package/.medusa/server/src/modules/payout/models/index.js +4 -2
  54. package/.medusa/server/src/modules/payout/models/onboarding.d.ts +22 -1
  55. package/.medusa/server/src/modules/payout/models/payout-account.d.ts +23 -2
  56. package/.medusa/server/src/modules/payout/models/payout-account.js +33 -7
  57. package/.medusa/server/src/modules/payout/models/payout-reversal.d.ts +48 -0
  58. package/.medusa/server/src/modules/payout/models/payout-reversal.js +37 -0
  59. package/.medusa/server/src/modules/payout/models/payout.d.ts +22 -1
  60. package/.medusa/server/src/modules/payout/models/payout.js +18 -2
  61. package/.medusa/server/src/modules/payout/providers/system.d.ts +11 -5
  62. package/.medusa/server/src/modules/payout/providers/system.js +33 -14
  63. package/.medusa/server/src/modules/payout/services/payout-module-service.d.ts +94 -100
  64. package/.medusa/server/src/modules/payout/services/payout-module-service.js +316 -109
  65. package/.medusa/server/src/modules/payout/services/provider-service.d.ts +11 -7
  66. package/.medusa/server/src/modules/payout/services/provider-service.js +33 -13
  67. package/.medusa/server/src/modules/payout/utils/abstract-payout-provider.d.ts +20 -0
  68. package/.medusa/server/src/modules/payout/utils/abstract-payout-provider.js +19 -0
  69. package/.medusa/server/src/modules/payout/utils/index.d.ts +1 -0
  70. package/.medusa/server/src/modules/payout/utils/index.js +18 -0
  71. package/.medusa/server/src/modules/telemetry/index.d.ts +21 -0
  72. package/.medusa/server/src/modules/telemetry/index.js +12 -0
  73. package/.medusa/server/src/modules/telemetry/migrations/Migration20261029000000.d.ts +5 -0
  74. package/.medusa/server/src/modules/telemetry/migrations/Migration20261029000000.js +27 -0
  75. package/.medusa/server/src/modules/telemetry/models/index.d.ts +1 -0
  76. package/.medusa/server/src/modules/telemetry/models/index.js +10 -0
  77. package/.medusa/server/src/modules/telemetry/models/installation.d.ts +9 -0
  78. package/.medusa/server/src/modules/telemetry/models/installation.js +14 -0
  79. package/.medusa/server/src/modules/telemetry/repositories/index.d.ts +1 -0
  80. package/.medusa/server/src/modules/telemetry/repositories/index.js +18 -0
  81. package/.medusa/server/src/modules/telemetry/repositories/telemetry-heartbeat.d.ts +10 -0
  82. package/.medusa/server/src/modules/telemetry/repositories/telemetry-heartbeat.js +28 -0
  83. package/.medusa/server/src/modules/telemetry/service.d.ts +25 -0
  84. package/.medusa/server/src/modules/telemetry/service.js +54 -0
  85. package/.medusa/server/src/subscribers/payout-webhook.d.ts +2 -2
  86. package/.medusa/server/src/subscribers/payout-webhook.js +9 -5
  87. package/.medusa/server/src/subscribers/telemetry-first-member-invited.d.ts +3 -0
  88. package/.medusa/server/src/subscribers/telemetry-first-member-invited.js +14 -0
  89. package/.medusa/server/src/subscribers/telemetry-first-offer.d.ts +3 -0
  90. package/.medusa/server/src/subscribers/telemetry-first-offer.js +14 -0
  91. package/.medusa/server/src/subscribers/telemetry-first-order.d.ts +3 -0
  92. package/.medusa/server/src/subscribers/telemetry-first-order.js +14 -0
  93. package/.medusa/server/src/subscribers/telemetry-first-payout-account.d.ts +5 -0
  94. package/.medusa/server/src/subscribers/telemetry-first-payout-account.js +24 -0
  95. package/.medusa/server/src/subscribers/telemetry-first-product-published.d.ts +3 -0
  96. package/.medusa/server/src/subscribers/telemetry-first-product-published.js +14 -0
  97. package/.medusa/server/src/subscribers/telemetry-first-seller-approved.d.ts +3 -0
  98. package/.medusa/server/src/subscribers/telemetry-first-seller-approved.js +14 -0
  99. package/.medusa/server/src/subscribers/telemetry-first-seller.d.ts +3 -0
  100. package/.medusa/server/src/subscribers/telemetry-first-seller.js +14 -0
  101. package/.medusa/server/src/utils/telemetry/boot.d.ts +7 -0
  102. package/.medusa/server/src/utils/telemetry/boot.js +117 -0
  103. package/.medusa/server/src/utils/telemetry/buckets.d.ts +2 -0
  104. package/.medusa/server/src/utils/telemetry/buckets.js +22 -0
  105. package/.medusa/server/src/utils/telemetry/config.d.ts +19 -0
  106. package/.medusa/server/src/utils/telemetry/config.js +60 -0
  107. package/.medusa/server/src/utils/telemetry/first-party.d.ts +11 -0
  108. package/.medusa/server/src/utils/telemetry/first-party.js +33 -0
  109. package/.medusa/server/src/utils/telemetry/identity.d.ts +6 -0
  110. package/.medusa/server/src/utils/telemetry/identity.js +32 -0
  111. package/.medusa/server/src/utils/telemetry/index.d.ts +8 -0
  112. package/.medusa/server/src/utils/telemetry/index.js +27 -0
  113. package/.medusa/server/src/utils/telemetry/milestones.d.ts +20 -0
  114. package/.medusa/server/src/utils/telemetry/milestones.js +60 -0
  115. package/.medusa/server/src/utils/telemetry/sender.d.ts +17 -0
  116. package/.medusa/server/src/utils/telemetry/sender.js +48 -0
  117. package/.medusa/server/src/utils/telemetry/snapshot.d.ts +13 -0
  118. package/.medusa/server/src/utils/telemetry/snapshot.js +193 -0
  119. package/.medusa/server/src/with-mercur.d.ts +6 -0
  120. package/.medusa/server/src/with-mercur.js +1 -1
  121. package/.medusa/server/src/workflows/payment/utils/split-order-payment-group.js +11 -3
  122. package/.medusa/server/src/workflows/payment/workflows/process-payment.js +10 -5
  123. package/.medusa/server/src/workflows/payout/steps/create-onboarding.d.ts +8 -2
  124. package/.medusa/server/src/workflows/payout/steps/create-onboarding.js +10 -4
  125. package/.medusa/server/src/workflows/payout/steps/create-payout-account.d.ts +3 -2
  126. package/.medusa/server/src/workflows/payout/steps/create-payout-account.js +9 -3
  127. package/.medusa/server/src/workflows/payout/steps/create-payout-accounts.d.ts +11 -0
  128. package/.medusa/server/src/workflows/payout/steps/create-payout-accounts.js +22 -0
  129. package/.medusa/server/src/workflows/payout/steps/create-payout-reversals.d.ts +4 -0
  130. package/.medusa/server/src/workflows/payout/steps/create-payout-reversals.js +23 -0
  131. package/.medusa/server/src/workflows/payout/steps/create-payouts.d.ts +4 -0
  132. package/.medusa/server/src/workflows/payout/steps/create-payouts.js +23 -0
  133. package/.medusa/server/src/workflows/payout/steps/index.d.ts +12 -5
  134. package/.medusa/server/src/workflows/payout/steps/index.js +13 -6
  135. package/.medusa/server/src/workflows/payout/steps/process-payout-reversals.d.ts +6 -0
  136. package/.medusa/server/src/workflows/payout/steps/process-payout-reversals.js +17 -0
  137. package/.medusa/server/src/workflows/payout/steps/process-payouts.d.ts +6 -0
  138. package/.medusa/server/src/workflows/payout/steps/process-payouts.js +17 -0
  139. package/.medusa/server/src/workflows/payout/steps/sync-payout-account.d.ts +8 -0
  140. package/.medusa/server/src/workflows/payout/steps/sync-payout-account.js +33 -0
  141. package/.medusa/server/src/workflows/payout/steps/update-payout-reversals.d.ts +4 -0
  142. package/.medusa/server/src/workflows/payout/steps/update-payout-reversals.js +29 -0
  143. package/.medusa/server/src/workflows/payout/steps/update-payouts.d.ts +4 -0
  144. package/.medusa/server/src/workflows/payout/steps/update-payouts.js +34 -0
  145. package/.medusa/server/src/workflows/payout/steps/validate-onboarding-token.d.ts +12 -0
  146. package/.medusa/server/src/workflows/payout/steps/validate-onboarding-token.js +23 -0
  147. package/.medusa/server/src/workflows/payout/steps/validate-payout-retry.d.ts +10 -0
  148. package/.medusa/server/src/workflows/payout/steps/validate-payout-retry.js +15 -0
  149. package/.medusa/server/src/workflows/payout/steps/validate-seller-without-payout-account.d.ts +10 -0
  150. package/.medusa/server/src/workflows/payout/steps/validate-seller-without-payout-account.js +13 -0
  151. package/.medusa/server/src/workflows/payout/utils/fulfillment-status.d.ts +26 -0
  152. package/.medusa/server/src/workflows/payout/utils/fulfillment-status.js +64 -0
  153. package/.medusa/server/src/workflows/payout/utils/index.d.ts +3 -0
  154. package/.medusa/server/src/workflows/payout/utils/index.js +20 -0
  155. package/.medusa/server/src/workflows/payout/utils/payout-amounts.d.ts +173 -0
  156. package/.medusa/server/src/workflows/payout/utils/payout-amounts.js +304 -0
  157. package/.medusa/server/src/workflows/payout/utils/sent-to-provider.d.ts +11 -0
  158. package/.medusa/server/src/workflows/payout/utils/sent-to-provider.js +15 -0
  159. package/.medusa/server/src/workflows/payout/workflows/create-onboarding.d.ts +5 -0
  160. package/.medusa/server/src/workflows/payout/workflows/create-onboarding.js +8 -3
  161. package/.medusa/server/src/workflows/payout/workflows/create-or-refresh-seller-payout-account.d.ts +16 -0
  162. package/.medusa/server/src/workflows/payout/workflows/create-or-refresh-seller-payout-account.js +38 -0
  163. package/.medusa/server/src/workflows/payout/workflows/create-order-payouts.d.ts +28 -0
  164. package/.medusa/server/src/workflows/payout/workflows/create-order-payouts.js +82 -0
  165. package/.medusa/server/src/workflows/payout/workflows/create-payout-account.d.ts +11 -5
  166. package/.medusa/server/src/workflows/payout/workflows/create-payout-account.js +42 -17
  167. package/.medusa/server/src/workflows/payout/workflows/create-payout-reversals.d.ts +14 -0
  168. package/.medusa/server/src/workflows/payout/workflows/create-payout-reversals.js +61 -0
  169. package/.medusa/server/src/workflows/payout/workflows/index.d.ts +11 -2
  170. package/.medusa/server/src/workflows/payout/workflows/index.js +12 -3
  171. package/.medusa/server/src/workflows/payout/workflows/link-payout-account.d.ts +11 -0
  172. package/.medusa/server/src/workflows/payout/workflows/link-payout-account.js +35 -0
  173. package/.medusa/server/src/workflows/payout/workflows/process-payout-for-webhook.d.ts +7 -3
  174. package/.medusa/server/src/workflows/payout/workflows/process-payout-for-webhook.js +50 -57
  175. package/.medusa/server/src/workflows/payout/workflows/process-payout-reversal.d.ts +9 -0
  176. package/.medusa/server/src/workflows/payout/workflows/process-payout-reversal.js +19 -0
  177. package/.medusa/server/src/workflows/payout/workflows/process-payout.d.ts +13 -0
  178. package/.medusa/server/src/workflows/payout/workflows/process-payout.js +23 -0
  179. package/.medusa/server/src/workflows/payout/workflows/refresh-onboarding.d.ts +13 -0
  180. package/.medusa/server/src/workflows/payout/workflows/refresh-onboarding.js +26 -0
  181. package/.medusa/server/src/workflows/payout/workflows/refresh-payout-account-link.d.ts +9 -0
  182. package/.medusa/server/src/workflows/payout/workflows/refresh-payout-account-link.js +15 -0
  183. package/.medusa/server/src/workflows/payout/workflows/retry-payout.d.ts +10 -0
  184. package/.medusa/server/src/workflows/payout/workflows/retry-payout.js +36 -0
  185. package/.medusa/server/src/workflows/payout/workflows/sync-payout-account.d.ts +9 -0
  186. package/.medusa/server/src/workflows/payout/workflows/sync-payout-account.js +24 -0
  187. package/package.json +3 -3
  188. package/.medusa/server/src/workflows/payout/steps/create-payout.d.ts +0 -3
  189. package/.medusa/server/src/workflows/payout/steps/create-payout.js +0 -12
  190. package/.medusa/server/src/workflows/payout/steps/update-payout-account.d.ts +0 -35
  191. package/.medusa/server/src/workflows/payout/steps/update-payout-account.js +0 -27
  192. package/.medusa/server/src/workflows/payout/steps/update-payout.d.ts +0 -35
  193. package/.medusa/server/src/workflows/payout/steps/update-payout.js +0 -27
  194. package/.medusa/server/src/workflows/payout/steps/validate-seller-payout-account.d.ts +0 -5
  195. package/.medusa/server/src/workflows/payout/steps/validate-seller-payout-account.js +0 -21
  196. package/.medusa/server/src/workflows/payout/workflows/create-payout.d.ts +0 -9
  197. package/.medusa/server/src/workflows/payout/workflows/create-payout.js +0 -87
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20261028120000 = void 0;
4
+ const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
5
+ class Migration20261028120000 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql(`alter table if exists "payout" drop constraint if exists "payout_settlement_id_foreign";`);
8
+ this.addSql(`DROP INDEX IF EXISTS "IDX_payout_settlement_id";`);
9
+ this.addSql(`alter table if exists "payout" drop column if exists "settlement_id";`);
10
+ this.addSql(`alter table if exists "payout_account" drop column if exists "provider_id", drop column if exists "ignored", drop column if exists "requirements";`);
11
+ this.addSql(`DROP INDEX IF EXISTS "IDX_payout_account_provider_account_id";`);
12
+ this.addSql(`
13
+ DO $$
14
+ BEGIN
15
+ IF EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema = current_schema() AND table_name = 'payout_account' AND column_name = 'provider_account_id') THEN
16
+ IF EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema = current_schema() AND table_name = 'payout_account' AND column_name = 'external_id') THEN
17
+ UPDATE "payout_account" SET "external_id" = "provider_account_id" WHERE "external_id" IS NULL;
18
+ ALTER TABLE "payout_account" DROP COLUMN "provider_account_id";
19
+ ELSE
20
+ ALTER TABLE "payout_account" RENAME COLUMN "provider_account_id" TO "external_id";
21
+ END IF;
22
+ END IF;
23
+ END $$;
24
+ `);
25
+ this.addSql(`alter table if exists "payout_account" add column if not exists "external_id" text null, add column if not exists "kyc_status" text check ("kyc_status" in ('pending_submission', 'pending_approval', 'approved', 'refused')) null, add column if not exists "payouts_enabled" boolean not null default false, add column if not exists "charges_enabled" boolean not null default false, add column if not exists "details_submitted" boolean not null default false, add column if not exists "disabled_reason" text null, add column if not exists "onboarding_token" text null, add column if not exists "onboarding_token_issued_at" timestamptz null, add column if not exists "last_synced_at" timestamptz null;`);
26
+ this.addSql(`update "payout_account" set "external_id" = "data"->>'id' where "external_id" is null and "data"->>'id' is not null;`);
27
+ this.addSql(`update "payout_account" set "payouts_enabled" = true, "charges_enabled" = true, "details_submitted" = true where "status" = 'active' and "last_synced_at" is null;`);
28
+ this.addSql(`update "payout_account" set "onboarding_token_issued_at" = now() where "onboarding_token" is not null and "onboarding_token_issued_at" is null;`);
29
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_payout_account_external_id" ON "payout_account" ("external_id") WHERE deleted_at IS NULL AND external_id IS NOT NULL;`);
30
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_payout_account_onboarding_token" ON "payout_account" ("onboarding_token") WHERE deleted_at IS NULL AND onboarding_token IS NOT NULL;`);
31
+ this.addSql(`alter table if exists "payout" add column if not exists "order_id" text null, add column if not exists "status_reason" text null, add column if not exists "metadata" jsonb null;`);
32
+ // Payouts created before order_id existed kept the Stripe transfer as data,
33
+ // with the order id as its transfer_group. Several rows could carry the same
34
+ // transfer for one order, so only the oldest gets the order id.
35
+ this.addSql(`
36
+ with derived as (
37
+ select "id", coalesce("data"->>'order_id', "data"->>'transfer_group', "data"->'metadata'->>'order_id') as "derived_order_id",
38
+ row_number() over (partition by coalesce("data"->>'order_id', "data"->>'transfer_group', "data"->'metadata'->>'order_id') order by "created_at") as "position"
39
+ from "payout"
40
+ where "order_id" is null and "deleted_at" is null
41
+ )
42
+ update "payout" set "order_id" = derived."derived_order_id"
43
+ from derived
44
+ where "payout"."id" = derived."id"
45
+ and derived."derived_order_id" is not null
46
+ and derived."position" = 1
47
+ and not exists (select 1 from "payout" taken where taken."order_id" = derived."derived_order_id" and taken."deleted_at" is null);
48
+ `);
49
+ this.addSql(`
50
+ DO $$
51
+ BEGIN
52
+ IF EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema = current_schema() AND table_name = 'payout' AND column_name = 'provider_payout_id') THEN
53
+ EXECUTE 'UPDATE "payout" SET "data" = coalesce("data", ''{}''::jsonb) || jsonb_build_object(''provider'', coalesce("data"->''provider'', ''{}''::jsonb) || jsonb_build_object(''id'', "provider_payout_id")) WHERE "provider_payout_id" IS NOT NULL';
54
+ END IF;
55
+ END $$;
56
+ `);
57
+ this.addSql(`update "payout" set "data" = "data" || jsonb_build_object('provider', jsonb_build_object('id', "data"->>'id')) where "data"->'provider' is null and "data"->>'id' is not null;`);
58
+ this.addSql(`DROP INDEX IF EXISTS "IDX_payout_provider_payout_id";`);
59
+ this.addSql(`alter table if exists "payout" drop column if exists "provider_payout_id";`);
60
+ this.addSql(`alter table if exists "payout" drop constraint if exists "payout_status_check";`);
61
+ this.addSql(`update "payout" set "status" = 'aborted' where "status" = 'canceled';`);
62
+ this.addSql(`alter table if exists "payout" add constraint "payout_status_check" check ("status" in ('pending', 'on_hold', 'processing', 'paid', 'failed', 'aborted'));`);
63
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_payout_order_id" ON "payout" ("order_id") WHERE deleted_at IS NULL AND order_id IS NOT NULL;`);
64
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_payout_account_id_created_at" ON "payout" ("account_id", "created_at") WHERE deleted_at IS NULL;`);
65
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_payout_status_created_at" ON "payout" ("status", "created_at") WHERE deleted_at IS NULL;`);
66
+ this.addSql(`create table if not exists "payout_reversal" ("id" text not null, "refund_id" text null, "amount" numeric not null, "raw_amount" jsonb not null, "status" text check ("status" in ('pending', 'on_hold', 'processing', 'paid', 'failed', 'aborted')) not null default 'pending', "status_reason" text null, "data" jsonb null, "payout_id" text not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "payout_reversal_pkey" primary key ("id"));`);
67
+ this.addSql(`
68
+ DO $$
69
+ BEGIN
70
+ IF EXISTS (SELECT 1 FROM information_schema.columns WHERE table_schema = current_schema() AND table_name = 'payout_reversal' AND column_name = 'provider_reversal_id') THEN
71
+ EXECUTE 'UPDATE "payout_reversal" SET "data" = coalesce("data", ''{}''::jsonb) || jsonb_build_object(''provider'', coalesce("data"->''provider'', ''{}''::jsonb) || jsonb_build_object(''id'', "provider_reversal_id")) WHERE "provider_reversal_id" IS NOT NULL';
72
+ END IF;
73
+ END $$;
74
+ `);
75
+ this.addSql(`alter table if exists "payout_reversal" drop column if exists "provider_reversal_id";`);
76
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_payout_reversal_deleted_at" ON "payout_reversal" ("deleted_at") WHERE deleted_at IS NULL;`);
77
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_payout_reversal_payout_id" ON "payout_reversal" ("payout_id") WHERE deleted_at IS NULL;`);
78
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_payout_reversal_refund_id" ON "payout_reversal" ("refund_id") WHERE deleted_at IS NULL AND refund_id IS NOT NULL;`);
79
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_payout_reversal_status_created_at" ON "payout_reversal" ("status", "created_at") WHERE deleted_at IS NULL;`);
80
+ this.addSql(`alter table if exists "payout_reversal" drop constraint if exists "payout_reversal_payout_id_foreign";`);
81
+ this.addSql(`alter table if exists "payout_reversal" add constraint "payout_reversal_payout_id_foreign" foreign key ("payout_id") references "payout" ("id") on update cascade on delete cascade;`);
82
+ }
83
+ async down() {
84
+ this.addSql(`drop table if exists "payout_reversal" cascade;`);
85
+ this.addSql(`DROP INDEX IF EXISTS "IDX_payout_order_id";`);
86
+ this.addSql(`alter table if exists "payout" drop constraint if exists "payout_status_check";`);
87
+ this.addSql(`update "payout" set "status" = 'canceled' where "status" = 'aborted';`);
88
+ this.addSql(`update "payout" set "status" = 'pending' where "status" = 'on_hold';`);
89
+ this.addSql(`alter table if exists "payout" add constraint "payout_status_check" check ("status" in ('pending', 'processing', 'paid', 'failed', 'canceled'));`);
90
+ this.addSql(`alter table if exists "payout" drop column if exists "order_id", drop column if exists "status_reason", drop column if exists "metadata";`);
91
+ this.addSql(`DROP INDEX IF EXISTS "IDX_payout_account_external_id";`);
92
+ this.addSql(`DROP INDEX IF EXISTS "IDX_payout_account_onboarding_token";`);
93
+ this.addSql(`alter table if exists "payout_account" drop column if exists "external_id", drop column if exists "kyc_status", drop column if exists "payouts_enabled", drop column if exists "charges_enabled", drop column if exists "details_submitted", drop column if exists "disabled_reason", drop column if exists "onboarding_token", drop column if exists "onboarding_token_issued_at", drop column if exists "last_synced_at";`);
94
+ }
95
+ }
96
+ exports.Migration20261028120000 = Migration20261028120000;
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjEwMjgxMjAwMDAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9wYXlvdXQvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI2MTAyODEyMDAwMC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5RUFBb0U7QUFFcEUsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUMzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsMEZBQTBGLENBQUMsQ0FBQTtRQUN2RyxJQUFJLENBQUMsTUFBTSxDQUFDLGtEQUFrRCxDQUFDLENBQUE7UUFDL0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyx1RUFBdUUsQ0FBQyxDQUFBO1FBQ3BGLElBQUksQ0FBQyxNQUFNLENBQUMsb0pBQW9KLENBQUMsQ0FBQTtRQUVqSyxJQUFJLENBQUMsTUFBTSxDQUFDLGdFQUFnRSxDQUFDLENBQUE7UUFDN0UsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7O0tBWVgsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyx5ckJBQXlyQixDQUFDLENBQUE7UUFDdHNCLElBQUksQ0FBQyxNQUFNLENBQUMsc0hBQXNILENBQUMsQ0FBQTtRQUNuSSxJQUFJLENBQUMsTUFBTSxDQUFDLG9LQUFvSyxDQUFDLENBQUE7UUFDakwsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpSkFBaUosQ0FBQyxDQUFBO1FBQzlKLElBQUksQ0FBQyxNQUFNLENBQUMsOEpBQThKLENBQUMsQ0FBQTtRQUMzSyxJQUFJLENBQUMsTUFBTSxDQUFDLDZLQUE2SyxDQUFDLENBQUE7UUFFMUwsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtTEFBbUwsQ0FBQyxDQUFBO1FBQ2hNLDRFQUE0RTtRQUM1RSw2RUFBNkU7UUFDN0UsZ0VBQWdFO1FBQ2hFLElBQUksQ0FBQyxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7S0FhWCxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDOzs7Ozs7O0tBT1gsQ0FBQyxDQUFBO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxnTEFBZ0wsQ0FBQyxDQUFBO1FBQzdMLElBQUksQ0FBQyxNQUFNLENBQUMsdURBQXVELENBQUMsQ0FBQTtRQUNwRSxJQUFJLENBQUMsTUFBTSxDQUFDLDRFQUE0RSxDQUFDLENBQUE7UUFDekYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpRkFBaUYsQ0FBQyxDQUFBO1FBQzlGLElBQUksQ0FBQyxNQUFNLENBQUMsdUVBQXVFLENBQUMsQ0FBQTtRQUNwRixJQUFJLENBQUMsTUFBTSxDQUFDLDRKQUE0SixDQUFDLENBQUE7UUFDekssSUFBSSxDQUFDLE1BQU0sQ0FBQyxxSUFBcUksQ0FBQyxDQUFBO1FBQ2xKLElBQUksQ0FBQyxNQUFNLENBQUMsa0lBQWtJLENBQUMsQ0FBQTtRQUMvSSxJQUFJLENBQUMsTUFBTSxDQUFDLDBIQUEwSCxDQUFDLENBQUE7UUFFdkksSUFBSSxDQUFDLE1BQU0sQ0FBQyxtaEJBQW1oQixDQUFDLENBQUE7UUFDaGlCLElBQUksQ0FBQyxNQUFNLENBQUM7Ozs7Ozs7S0FPWCxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLHVGQUF1RixDQUFDLENBQUE7UUFDcEcsSUFBSSxDQUFDLE1BQU0sQ0FBQywySEFBMkgsQ0FBQyxDQUFBO1FBQ3hJLElBQUksQ0FBQyxNQUFNLENBQUMseUhBQXlILENBQUMsQ0FBQTtRQUN0SSxJQUFJLENBQUMsTUFBTSxDQUFDLDBKQUEwSixDQUFDLENBQUE7UUFDdkssSUFBSSxDQUFDLE1BQU0sQ0FBQyw0SUFBNEksQ0FBQyxDQUFBO1FBQ3pKLElBQUksQ0FBQyxNQUFNLENBQUMsd0dBQXdHLENBQUMsQ0FBQTtRQUNySCxJQUFJLENBQUMsTUFBTSxDQUFDLHNMQUFzTCxDQUFDLENBQUE7SUFDck0sQ0FBQztJQUVRLEtBQUssQ0FBQyxJQUFJO1FBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsaURBQWlELENBQUMsQ0FBQTtRQUU5RCxJQUFJLENBQUMsTUFBTSxDQUFDLDZDQUE2QyxDQUFDLENBQUE7UUFDMUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpRkFBaUYsQ0FBQyxDQUFBO1FBQzlGLElBQUksQ0FBQyxNQUFNLENBQUMsdUVBQXVFLENBQUMsQ0FBQTtRQUNwRixJQUFJLENBQUMsTUFBTSxDQUFDLHNFQUFzRSxDQUFDLENBQUE7UUFDbkYsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrSkFBa0osQ0FBQyxDQUFBO1FBQy9KLElBQUksQ0FBQyxNQUFNLENBQUMsMklBQTJJLENBQUMsQ0FBQTtRQUV4SixJQUFJLENBQUMsTUFBTSxDQUFDLHdEQUF3RCxDQUFDLENBQUE7UUFDckUsSUFBSSxDQUFDLE1BQU0sQ0FBQyw2REFBNkQsQ0FBQyxDQUFBO1FBQzFFLElBQUksQ0FBQyxNQUFNLENBQUMsNlpBQTZaLENBQUMsQ0FBQTtJQUM1YSxDQUFDO0NBQ0Y7QUFoR0QsMERBZ0dDIn0=
@@ -1,3 +1,4 @@
1
1
  export { Onboarding } from './onboarding';
2
2
  export { Payout } from './payout';
3
3
  export { PayoutAccount } from './payout-account';
4
+ export { PayoutReversal } from './payout-reversal';
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PayoutAccount = exports.Payout = exports.Onboarding = void 0;
3
+ exports.PayoutReversal = exports.PayoutAccount = exports.Payout = exports.Onboarding = void 0;
4
4
  var onboarding_1 = require("./onboarding");
5
5
  Object.defineProperty(exports, "Onboarding", { enumerable: true, get: function () { return onboarding_1.Onboarding; } });
6
6
  var payout_1 = require("./payout");
7
7
  Object.defineProperty(exports, "Payout", { enumerable: true, get: function () { return payout_1.Payout; } });
8
8
  var payout_account_1 = require("./payout-account");
9
9
  Object.defineProperty(exports, "PayoutAccount", { enumerable: true, get: function () { return payout_account_1.PayoutAccount; } });
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9wYXlvdXQvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUF5QztBQUFoQyx3R0FBQSxVQUFVLE9BQUE7QUFDbkIsbUNBQWlDO0FBQXhCLGdHQUFBLE1BQU0sT0FBQTtBQUNmLG1EQUFnRDtBQUF2QywrR0FBQSxhQUFhLE9BQUEifQ==
10
+ var payout_reversal_1 = require("./payout-reversal");
11
+ Object.defineProperty(exports, "PayoutReversal", { enumerable: true, get: function () { return payout_reversal_1.PayoutReversal; } });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9wYXlvdXQvbW9kZWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJDQUF5QztBQUFoQyx3R0FBQSxVQUFVLE9BQUE7QUFDbkIsbUNBQWlDO0FBQXhCLGdHQUFBLE1BQU0sT0FBQTtBQUNmLG1EQUFnRDtBQUF2QywrR0FBQSxhQUFhLE9BQUE7QUFDdEIscURBQWtEO0FBQXpDLGlIQUFBLGNBQWMsT0FBQSJ9
@@ -4,18 +4,39 @@ export declare const Onboarding: import("@medusajs/framework/utils").DmlEntity<i
4
4
  context: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
5
5
  account: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
6
6
  id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
7
+ external_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
7
8
  status: import("@medusajs/framework/utils").EnumProperty<typeof import("@mercurjs/types").PayoutAccountStatus>;
9
+ kyc_status: import("@medusajs/framework/utils").NullableModifier<import("@mercurjs/types").PayoutKycStatus, import("@medusajs/framework/utils").EnumProperty<typeof import("@mercurjs/types").PayoutKycStatus>>;
10
+ payouts_enabled: import("@medusajs/framework/utils").BooleanProperty;
11
+ charges_enabled: import("@medusajs/framework/utils").BooleanProperty;
12
+ details_submitted: import("@medusajs/framework/utils").BooleanProperty;
13
+ disabled_reason: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
14
+ onboarding_token: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
15
+ onboarding_token_issued_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
16
+ last_synced_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
8
17
  data: import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>;
9
18
  context: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
10
19
  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>;
11
20
  payouts: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
12
21
  id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
13
22
  display_id: import("@medusajs/framework/utils").AutoIncrementProperty;
23
+ order_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
14
24
  currency_code: import("@medusajs/framework/utils").TextProperty;
15
25
  amount: import("@medusajs/framework/utils").BigNumberProperty;
26
+ status: import("@medusajs/framework/utils").EnumProperty<typeof import("@mercurjs/types").PayoutStatus>;
27
+ status_reason: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
16
28
  data: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
29
+ metadata: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
17
30
  account: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "payout_account">, undefined>;
18
- status: import("@medusajs/framework/utils").EnumProperty<typeof import("@mercurjs/types").PayoutStatus>;
31
+ reversals: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
32
+ id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
33
+ refund_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
34
+ amount: import("@medusajs/framework/utils").BigNumberProperty;
35
+ status: import("@medusajs/framework/utils").EnumProperty<typeof import("@mercurjs/types").PayoutStatus>;
36
+ status_reason: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
37
+ data: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
38
+ payout: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "payout">, undefined>;
39
+ }>, "payout_reversal">>;
19
40
  }>, "payout">>;
20
41
  }>, "payout_account">, undefined>;
21
42
  }>, "onboarding">;
@@ -1,7 +1,16 @@
1
- import { PayoutAccountStatus } from "@mercurjs/types";
1
+ import { PayoutAccountStatus, PayoutKycStatus } from "@mercurjs/types";
2
2
  export declare const PayoutAccount: 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
+ external_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
4
5
  status: import("@medusajs/framework/utils").EnumProperty<typeof PayoutAccountStatus>;
6
+ kyc_status: import("@medusajs/framework/utils").NullableModifier<PayoutKycStatus, import("@medusajs/framework/utils").EnumProperty<typeof PayoutKycStatus>>;
7
+ payouts_enabled: import("@medusajs/framework/utils").BooleanProperty;
8
+ charges_enabled: import("@medusajs/framework/utils").BooleanProperty;
9
+ details_submitted: import("@medusajs/framework/utils").BooleanProperty;
10
+ disabled_reason: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
11
+ onboarding_token: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
12
+ onboarding_token_issued_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
13
+ last_synced_at: import("@medusajs/framework/utils").NullableModifier<Date, import("@medusajs/framework/utils").DateTimeProperty>;
5
14
  data: import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>;
6
15
  context: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
7
16
  onboarding: import("@medusajs/framework/utils").RelationNullableModifier<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
@@ -18,10 +27,22 @@ export declare const PayoutAccount: import("@medusajs/framework/utils").DmlEntit
18
27
  payouts: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
19
28
  id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
20
29
  display_id: import("@medusajs/framework/utils").AutoIncrementProperty;
30
+ order_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
21
31
  currency_code: import("@medusajs/framework/utils").TextProperty;
22
32
  amount: import("@medusajs/framework/utils").BigNumberProperty;
33
+ status: import("@medusajs/framework/utils").EnumProperty<typeof import("@mercurjs/types").PayoutStatus>;
34
+ status_reason: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
23
35
  data: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
36
+ metadata: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
24
37
  account: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "payout_account">, undefined>;
25
- status: import("@medusajs/framework/utils").EnumProperty<typeof import("@mercurjs/types").PayoutStatus>;
38
+ reversals: import("@medusajs/framework/utils").HasMany<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
39
+ id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
40
+ refund_id: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
41
+ amount: import("@medusajs/framework/utils").BigNumberProperty;
42
+ status: import("@medusajs/framework/utils").EnumProperty<typeof import("@mercurjs/types").PayoutStatus>;
43
+ status_reason: import("@medusajs/framework/utils").NullableModifier<string, import("@medusajs/framework/utils").TextProperty>;
44
+ data: import("@medusajs/framework/utils").NullableModifier<NoInfer<Record<string, unknown>>, import("@medusajs/framework/utils").JSONProperty<NoInfer<Record<string, unknown>>>>;
45
+ payout: import("@medusajs/framework/utils").BelongsTo<() => import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder</*elided*/ any>, "payout">, undefined>;
46
+ }>, "payout_reversal">>;
26
47
  }>, "payout">>;
27
48
  }>, "payout_account">;
@@ -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