@hartl-services/medusa-base 0.4.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/.medusa/server/src/admin/index.js +1657 -111
  2. package/.medusa/server/src/admin/index.mjs +1647 -101
  3. package/.medusa/server/src/api/admin/email/messages/[id]/resends/route.js +24 -0
  4. package/.medusa/server/src/api/admin/email/messages/[id]/route.js +12 -0
  5. package/.medusa/server/src/api/admin/email/messages/route.js +12 -0
  6. package/.medusa/server/src/api/admin/email/terms-versions/[id]/download/route.js +16 -0
  7. package/.medusa/server/src/api/admin/email/terms-versions/route.js +47 -0
  8. package/.medusa/server/src/api/admin/orders/[id]/documents/[document_id]/download/route.js +21 -0
  9. package/.medusa/server/src/api/admin/orders/[id]/documents/[document_id]/regenerate/route.js +38 -0
  10. package/.medusa/server/src/api/admin/orders/[id]/documents/regenerate/route.js +32 -0
  11. package/.medusa/server/src/api/admin/orders/[id]/documents/route.js +36 -0
  12. package/.medusa/server/src/api/admin/orders/[id]/packing-lists/[fulfillment_id]/download/route.js +24 -0
  13. package/.medusa/server/src/api/admin/orders/[id]/packing-lists/[fulfillment_id]/retry/route.js +44 -0
  14. package/.medusa/server/src/api/admin/orders/[id]/packing-lists/route.js +82 -0
  15. package/.medusa/server/src/api/document-download-response.js +16 -0
  16. package/.medusa/server/src/api/document-response.js +23 -0
  17. package/.medusa/server/src/api/files/[asset]/route.js +24 -0
  18. package/.medusa/server/src/api/files/file-response.js +43 -0
  19. package/.medusa/server/src/api/files/gateway-options.js +31 -0
  20. package/.medusa/server/src/api/files/private/[token]/route.js +29 -0
  21. package/.medusa/server/src/api/files/upload/[token]/route.js +66 -0
  22. package/.medusa/server/src/api/middlewares.js +168 -1
  23. package/.medusa/server/src/api/packing-list-response.js +22 -0
  24. package/.medusa/server/src/api/route.js +27 -0
  25. package/.medusa/server/src/api/store/documents/[id]/download/route.js +21 -0
  26. package/.medusa/server/src/api/store/documents/[id]/route.js +15 -0
  27. package/.medusa/server/src/api/store/documents/route.js +11 -0
  28. package/.medusa/server/src/api/terms-download-response.js +12 -0
  29. package/.medusa/server/src/documents/config/index.js +18 -0
  30. package/.medusa/server/src/documents/paths/documents.js +6 -0
  31. package/.medusa/server/src/documents/paths/index.js +18 -0
  32. package/.medusa/server/src/documents/plugin-features.js +38 -0
  33. package/.medusa/server/src/documents/schemas/documents.js +18 -0
  34. package/.medusa/server/src/documents/schemas/index.js +18 -0
  35. package/.medusa/server/src/documents/scripts/verify-documents-file-storage.js +55 -0
  36. package/.medusa/server/src/documents/templates/financial-document.js +160 -0
  37. package/.medusa/server/src/documents/templates/format.js +73 -0
  38. package/.medusa/server/src/documents/templates/html-factory.js +42 -0
  39. package/.medusa/server/src/documents/templates/html-utils.js +23 -0
  40. package/.medusa/server/src/documents/templates/layout.js +142 -0
  41. package/.medusa/server/src/documents/templates/packing-list.js +52 -0
  42. package/.medusa/server/src/documents/types/admin-api.js +3 -0
  43. package/.medusa/server/src/documents/types/document-summary.js +3 -0
  44. package/.medusa/server/src/documents/types/documents.js +3 -0
  45. package/.medusa/server/src/documents/types/html-factory.js +6 -0
  46. package/.medusa/server/src/documents/types/index.js +22 -0
  47. package/.medusa/server/src/documents/types/store-api.js +3 -0
  48. package/.medusa/server/src/documents/utils/document-merchant.js +22 -0
  49. package/.medusa/server/src/documents/utils/document-render-settings.js +59 -0
  50. package/.medusa/server/src/documents/utils/html-to-pdf.js +61 -0
  51. package/.medusa/server/src/documents/utils/private-file-storage.js +64 -0
  52. package/.medusa/server/src/documents/utils/resolve-services.js +7 -0
  53. package/.medusa/server/src/email/application/handle-invite-event.js +318 -0
  54. package/.medusa/server/src/email/application/handle-password-reset-event.js +366 -0
  55. package/.medusa/server/src/email/config/index.js +84 -0
  56. package/.medusa/server/src/email/config/notification-module.js +20 -0
  57. package/.medusa/server/src/email/domain/business-keys.js +50 -0
  58. package/.medusa/server/src/email/domain/documents-fact-fingerprint.js +7 -0
  59. package/.medusa/server/src/email/domain/event-schemas.js +36 -0
  60. package/.medusa/server/src/email/domain/failure-classification.js +53 -0
  61. package/.medusa/server/src/email/domain/order-summary.js +103 -0
  62. package/.medusa/server/src/email/domain/refund-summary.js +43 -0
  63. package/.medusa/server/src/email/domain/return-summary.js +118 -0
  64. package/.medusa/server/src/email/domain/shipment-summary.js +74 -0
  65. package/.medusa/server/src/email/plugin-features.js +39 -0
  66. package/.medusa/server/src/email/rendering/default-templates.js +719 -0
  67. package/.medusa/server/src/email/rendering/load-email-shop-details.js +36 -0
  68. package/.medusa/server/src/email/rendering/render-email.js +50 -0
  69. package/.medusa/server/src/email/rendering/resolve-shop-configuration.js +67 -0
  70. package/.medusa/server/src/email/types/email-kinds.js +18 -0
  71. package/.medusa/server/src/email/types/index.js +21 -0
  72. package/.medusa/server/src/email/types/shop-configuration.js +3 -0
  73. package/.medusa/server/src/email/types/smtp-configuration.js +3 -0
  74. package/.medusa/server/src/email/types/template-data.js +232 -0
  75. package/.medusa/server/src/files/config/index.js +256 -0
  76. package/.medusa/server/src/files/gateway/index.js +115 -0
  77. package/.medusa/server/src/files/types/index.js +6 -0
  78. package/.medusa/server/src/files/types/public.js +6 -0
  79. package/.medusa/server/src/jobs/document-fact-publication-reconciliation.js +18 -0
  80. package/.medusa/server/src/jobs/document-resolution-reconciliation.js +20 -0
  81. package/.medusa/server/src/jobs/packing-list-reconciliation.js +49 -0
  82. package/.medusa/server/src/jobs/reconcile-email-attempts.js +63 -0
  83. package/.medusa/server/src/jobs/reconcile-pending-email-messages.js +41 -0
  84. package/.medusa/server/src/jobs/retry-email-messages.js +27 -0
  85. package/.medusa/server/src/migration-scripts/dismiss-orphaned-cart-promotion-links.js +26 -0
  86. package/.medusa/server/src/modules/documents/domain/cancellation-snapshot.js +97 -0
  87. package/.medusa/server/src/modules/documents/domain/document-number.js +36 -0
  88. package/.medusa/server/src/modules/documents/domain/document-resolution.js +24 -0
  89. package/.medusa/server/src/modules/documents/domain/issuance-rules.js +37 -0
  90. package/.medusa/server/src/modules/documents/domain/merchant.js +86 -0
  91. package/.medusa/server/src/modules/documents/domain/options.js +40 -0
  92. package/.medusa/server/src/modules/documents/domain/packing-list.js +90 -0
  93. package/.medusa/server/src/modules/documents/domain/snapshot-normalization.js +17 -0
  94. package/.medusa/server/src/modules/documents/domain/tax-breakdown.js +66 -0
  95. package/.medusa/server/src/modules/documents/index.js +15 -0
  96. package/.medusa/server/src/modules/documents/loaders/assert-private-file-storage.js +20 -0
  97. package/.medusa/server/src/modules/documents/migrations/Migration20260827061749.js +75 -0
  98. package/.medusa/server/src/modules/documents/migrations/Migration20260830111207.js +28 -0
  99. package/.medusa/server/src/modules/documents/models/document-artifact.js +25 -0
  100. package/.medusa/server/src/modules/documents/models/document-number-sequence.js +29 -0
  101. package/.medusa/server/src/modules/documents/models/document.js +82 -0
  102. package/.medusa/server/src/modules/documents/models/order-cancellation-resolution.js +51 -0
  103. package/.medusa/server/src/modules/documents/models/packing-list-revision.js +36 -0
  104. package/.medusa/server/src/modules/documents/models/packing-list.js +27 -0
  105. package/.medusa/server/src/modules/documents/models/refund-document-resolution.js +66 -0
  106. package/.medusa/server/src/modules/documents/models/shipment-invoice-assignment.js +51 -0
  107. package/.medusa/server/src/modules/documents/models/shipment-invoice-coordinator.js +44 -0
  108. package/.medusa/server/src/modules/documents/service.js +1701 -0
  109. package/.medusa/server/src/modules/email/domain/attachment.js +25 -0
  110. package/.medusa/server/src/modules/email/domain/message-state.js +69 -0
  111. package/.medusa/server/src/modules/email/index.js +13 -0
  112. package/.medusa/server/src/modules/email/migrations/Migration20260826173422.js +32 -0
  113. package/.medusa/server/src/modules/email/migrations/Migration20260827172945.js +16 -0
  114. package/.medusa/server/src/modules/email/migrations/Migration20260827194804.js +22 -0
  115. package/.medusa/server/src/modules/email/migrations/Migration20260906195205.js +16 -0
  116. package/.medusa/server/src/modules/email/models/email-attempt.js +56 -0
  117. package/.medusa/server/src/modules/email/models/email-message.js +71 -0
  118. package/.medusa/server/src/modules/email/models/email-terms-version.js +37 -0
  119. package/.medusa/server/src/modules/email/service.js +1285 -0
  120. package/.medusa/server/src/modules/plugin-features/domain/plugin-settings.js +4 -3
  121. package/.medusa/server/src/providers/s3-cache/cache/atomic-write.js +25 -0
  122. package/.medusa/server/src/providers/s3-cache/cache/cache-manager.js +115 -0
  123. package/.medusa/server/src/providers/s3-cache/cache/keyed-lock.js +28 -0
  124. package/.medusa/server/src/providers/s3-cache/index.js +8 -0
  125. package/.medusa/server/src/providers/s3-cache/object-key.js +53 -0
  126. package/.medusa/server/src/providers/s3-cache/s3-cache-file.js +229 -0
  127. package/.medusa/server/src/providers/s3-cache/s3-object-store.js +86 -0
  128. package/.medusa/server/src/providers/smtp/index.js +8 -0
  129. package/.medusa/server/src/providers/smtp/service.js +236 -0
  130. package/.medusa/server/src/providers/smtp/types.js +11 -0
  131. package/.medusa/server/src/public/config.js +186 -0
  132. package/.medusa/server/src/public/descriptor.js +3 -1
  133. package/.medusa/server/src/public/gateway.js +19 -0
  134. package/.medusa/server/src/public/instrumentation.js +56 -0
  135. package/.medusa/server/src/public/shop-config.js +12 -0
  136. package/.medusa/server/src/public/shop-master-data.js +2 -2
  137. package/.medusa/server/src/public/shop-types.js +24 -0
  138. package/.medusa/server/src/shop-config/build-food-shop-config.js +252 -0
  139. package/.medusa/server/src/shop-config/options.js +75 -0
  140. package/.medusa/server/src/subscribers/affiliate-consignment-reminder-due.js +26 -0
  141. package/.medusa/server/src/subscribers/documents-order-canceled.js +24 -0
  142. package/.medusa/server/src/subscribers/documents-order-cancellation-ready.js +26 -0
  143. package/.medusa/server/src/subscribers/documents-refund-ready.js +24 -0
  144. package/.medusa/server/src/subscribers/documents-shipment-created.js +36 -0
  145. package/.medusa/server/src/subscribers/documents-shipment-invoice-assignment-decided.js +26 -0
  146. package/.medusa/server/src/subscribers/email-order-canceled.js +28 -0
  147. package/.medusa/server/src/subscribers/email-shipment-created.js +32 -0
  148. package/.medusa/server/src/subscribers/order-placed.js +27 -0
  149. package/.medusa/server/src/subscribers/packing-list-allocation-revised.js +32 -0
  150. package/.medusa/server/src/subscribers/packing-list-fulfillment-canceled.js +54 -0
  151. package/.medusa/server/src/subscribers/packing-list-fulfillment-created.js +31 -0
  152. package/.medusa/server/src/subscribers/password-reset.js +23 -0
  153. package/.medusa/server/src/subscribers/payment-refunded.js +38 -0
  154. package/.medusa/server/src/subscribers/return-received.js +27 -0
  155. package/.medusa/server/src/subscribers/return-requested.js +27 -0
  156. package/.medusa/server/src/subscribers/user-invite.js +23 -0
  157. package/.medusa/server/src/utils/cart-promotion-links.js +101 -0
  158. package/.medusa/server/src/workflows/documents/issue-cancellation-after-refund.js +246 -0
  159. package/.medusa/server/src/workflows/documents/issue-document.js +165 -0
  160. package/.medusa/server/src/workflows/documents/issue-invoice-after-shipment.js +521 -0
  161. package/.medusa/server/src/workflows/documents/issue-packing-list.js +390 -0
  162. package/.medusa/server/src/workflows/documents/publish-document-facts.js +53 -0
  163. package/.medusa/server/src/workflows/documents/reconcile-document-resolutions.js +48 -0
  164. package/.medusa/server/src/workflows/documents/reconcile-order-cancellation.js +92 -0
  165. package/.medusa/server/src/workflows/documents/regenerate-issued-document.js +61 -0
  166. package/.medusa/server/src/workflows/email/dispatch-email-message.js +301 -0
  167. package/.medusa/server/src/workflows/email/documents-required-facts.js +30 -0
  168. package/.medusa/server/src/workflows/email/prepare-affiliate-reminder-email.js +58 -0
  169. package/.medusa/server/src/workflows/email/prepare-order-canceled-email.js +102 -0
  170. package/.medusa/server/src/workflows/email/prepare-order-received-email.js +82 -0
  171. package/.medusa/server/src/workflows/email/prepare-refund-email.js +71 -0
  172. package/.medusa/server/src/workflows/email/prepare-return-email.js +136 -0
  173. package/.medusa/server/src/workflows/email/prepare-shipment-email.js +115 -0
  174. package/.medusa/server/src/workflows/email/retry-email-messages.js +31 -0
  175. package/.medusa/server/src/workflows/hooks/dismiss-deleted-promotion-cart-links.js +23 -0
  176. package/README.md +1777 -8
  177. package/dist/admin-components/features/plugin-features/components/ImageSettingInput.d.ts +15 -0
  178. package/dist/admin-components/features/plugin-features/components/ImageSettingInput.js +42 -0
  179. package/dist/admin-components/features/plugin-features/components/PluginSettingsForm.js +4 -2
  180. package/dist/admin-components/features/plugin-features/hooks/usePluginFeatureEnabled.d.ts +1 -1
  181. package/dist/admin-components/features/plugin-features/hooks/usePluginFeatures.d.ts +4 -4
  182. package/dist/admin-components/features/plugin-features/hooks/usePluginSettingsForm.d.ts +1 -1
  183. package/dist/admin-components/features/plugin-features/lib/image-upload.d.ts +6 -0
  184. package/dist/admin-components/features/plugin-features/lib/image-upload.js +17 -0
  185. package/dist/admin-components/features/plugin-features/lib/plugin-features-admin-client.d.ts +4 -4
  186. package/dist/admin-components/i18n/texts.d.ts +6 -0
  187. package/dist/admin-components/i18n/texts.js +6 -0
  188. package/dist/documents/config/index.d.ts +11 -0
  189. package/dist/documents/config/index.js +17 -0
  190. package/dist/documents/templates/financial-document.d.ts +3 -0
  191. package/dist/documents/templates/financial-document.js +159 -0
  192. package/dist/documents/templates/format.d.ts +30 -0
  193. package/dist/documents/templates/format.js +72 -0
  194. package/dist/documents/templates/html-factory.d.ts +15 -0
  195. package/dist/documents/templates/html-factory.js +41 -0
  196. package/dist/documents/templates/html-utils.d.ts +8 -0
  197. package/dist/documents/templates/html-utils.js +22 -0
  198. package/dist/documents/templates/layout.d.ts +35 -0
  199. package/dist/documents/templates/layout.js +141 -0
  200. package/dist/documents/templates/packing-list.d.ts +3 -0
  201. package/dist/documents/templates/packing-list.js +51 -0
  202. package/dist/documents/types/admin-api.d.ts +1 -0
  203. package/dist/documents/types/admin-api.js +2 -0
  204. package/dist/documents/types/document-summary.d.ts +1 -0
  205. package/dist/documents/types/document-summary.js +2 -0
  206. package/dist/documents/types/documents.d.ts +191 -0
  207. package/dist/documents/types/documents.js +2 -0
  208. package/dist/documents/types/html-factory.d.ts +8 -0
  209. package/dist/documents/types/html-factory.js +5 -0
  210. package/dist/documents/types/index.d.ts +5 -0
  211. package/dist/documents/types/index.js +21 -0
  212. package/dist/documents/types/store-api.d.ts +1 -0
  213. package/dist/documents/types/store-api.js +2 -0
  214. package/dist/email/config/index.d.ts +17 -0
  215. package/dist/email/config/index.js +83 -0
  216. package/dist/email/config/notification-module.d.ts +22 -0
  217. package/dist/email/config/notification-module.js +19 -0
  218. package/dist/email/types/email-kinds.d.ts +15 -0
  219. package/dist/email/types/email-kinds.js +17 -0
  220. package/dist/email/types/index.d.ts +4 -0
  221. package/dist/email/types/index.js +20 -0
  222. package/dist/email/types/shop-configuration.d.ts +68 -0
  223. package/dist/email/types/shop-configuration.js +2 -0
  224. package/dist/email/types/smtp-configuration.d.ts +9 -0
  225. package/dist/email/types/smtp-configuration.js +2 -0
  226. package/dist/email/types/template-data.d.ts +609 -0
  227. package/dist/email/types/template-data.js +231 -0
  228. package/dist/files/config/index.d.ts +32 -0
  229. package/dist/files/config/index.js +255 -0
  230. package/dist/files/gateway/index.d.ts +30 -0
  231. package/dist/files/gateway/index.js +114 -0
  232. package/dist/files/types/index.d.ts +2 -0
  233. package/dist/files/types/index.js +5 -0
  234. package/dist/files/types/public.d.ts +90 -0
  235. package/dist/files/types/public.js +5 -0
  236. package/dist/modules/documents/domain/merchant.d.ts +22 -0
  237. package/dist/modules/documents/domain/merchant.js +85 -0
  238. package/dist/modules/documents/domain/options.d.ts +34 -0
  239. package/dist/modules/documents/domain/options.js +39 -0
  240. package/dist/public/config.d.ts +59 -0
  241. package/dist/public/config.js +185 -0
  242. package/dist/public/descriptor.js +2 -0
  243. package/dist/public/gateway.d.ts +2 -0
  244. package/dist/public/gateway.js +18 -0
  245. package/dist/public/instrumentation.d.ts +12 -0
  246. package/dist/public/instrumentation.js +55 -0
  247. package/dist/public/shop-config.d.ts +8 -0
  248. package/dist/public/shop-config.js +11 -0
  249. package/dist/public/shop-master-data.d.ts +1 -1
  250. package/dist/public/shop-master-data.js +1 -1
  251. package/dist/public/shop-types.d.ts +7 -0
  252. package/dist/public/shop-types.js +23 -0
  253. package/dist/public/types.d.ts +19 -2
  254. package/dist/shop-config/build-food-shop-config.d.ts +44 -0
  255. package/dist/shop-config/build-food-shop-config.js +251 -0
  256. package/dist/shop-config/options.d.ts +48 -0
  257. package/dist/shop-config/options.js +74 -0
  258. package/package.json +48 -5
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20260827061749 = void 0;
4
+ const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
5
+ class Migration20260827061749 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql(`alter table if exists "documents_shipment_invoice_coordinator" drop constraint if exists "documents_shipment_coordinator_order_unique";`);
8
+ this.addSql(`alter table if exists "documents_shipment_invoice_assignment" drop constraint if exists "documents_shipment_assignment_invoice_unique";`);
9
+ this.addSql(`alter table if exists "documents_shipment_invoice_assignment" drop constraint if exists "documents_shipment_assignment_order_carrier_unique";`);
10
+ this.addSql(`alter table if exists "documents_shipment_invoice_assignment" drop constraint if exists "documents_shipment_assignment_fulfillment_unique";`);
11
+ this.addSql(`alter table if exists "documents_refund_document_resolution" drop constraint if exists "documents_refund_resolution_refund_unique";`);
12
+ this.addSql(`alter table if exists "documents_packing_list_revision" drop constraint if exists "documents_packing_list_revision_source_unique";`);
13
+ this.addSql(`alter table if exists "documents_packing_list" drop constraint if exists "documents_packing_list_fulfillment_id_unique";`);
14
+ this.addSql(`alter table if exists "documents_order_cancellation_resolution" drop constraint if exists "documents_cancellation_resolution_order_unique";`);
15
+ this.addSql(`alter table if exists "documents_document_artifact" drop constraint if exists "documents_artifact_file_unique";`);
16
+ this.addSql(`alter table if exists "documents_document" drop constraint if exists "documents_document_refund_unique";`);
17
+ this.addSql(`create table if not exists "documents_document" ("id" text not null, "kind" text check ("kind" in ('invoice', 'cancellation', 'credit_note')) not null, "status" text check ("status" in ('processing', 'issued', 'failed')) not null default 'processing', "issuance_key" text not null, "order_id" text not null, "order_display_id" integer null, "customer_id" text null, "recipient_email" text not null, "document_number" text null, "source_document_id" text null, "refund_id" text null, "snapshot" jsonb null, "file_id" text null, "filename" text null, "current_artifact_id" text null, "attempt_token" text null, "lease_started_at" timestamptz null, "lease_expires_at" timestamptz null, "issued_at" timestamptz null, "failure_reason" text null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "documents_document_pkey" primary key ("id"), constraint CHK_documents_document_lease_order check (lease_started_at is null or lease_expires_at is null or lease_expires_at > lease_started_at), constraint CHK_documents_document_attempt_fields check (((status = 'processing' and attempt_token is not null and lease_started_at is not null and lease_expires_at is not null) or (status = 'failed' and attempt_token is null and lease_started_at is null and lease_expires_at is null) or (status = 'issued' and ((attempt_token is null and lease_started_at is null and lease_expires_at is null) or (attempt_token is not null and lease_started_at is not null and lease_expires_at is not null))))), constraint CHK_documents_document_issued_fields check (status <> 'issued' or (snapshot is not null and file_id is not null and filename is not null and current_artifact_id is not null and document_number is not null and issued_at is not null)));`);
18
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_document_order_id" ON "documents_document" ("order_id") WHERE deleted_at IS NULL;`);
19
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_document_customer_id" ON "documents_document" ("customer_id") WHERE deleted_at IS NULL;`);
20
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_document_issued_at" ON "documents_document" ("issued_at") WHERE deleted_at IS NULL;`);
21
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_document_deleted_at" ON "documents_document" ("deleted_at") WHERE deleted_at IS NULL;`);
22
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_documents_document_issuance_key" ON "documents_document" ("issuance_key");`);
23
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_documents_document_refund_unique" ON "documents_document" ("refund_id") WHERE refund_id IS NOT NULL AND deleted_at IS NULL;`);
24
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_document_lease" ON "documents_document" ("status", "lease_expires_at") WHERE deleted_at IS NULL;`);
25
+ this.addSql(`create table if not exists "documents_document_artifact" ("id" text not null, "document_id" text not null, "file_id" text not null, "filename" text not null, "content_type" text check ("content_type" in ('application/pdf')) not null default 'application/pdf', "communication_locked" boolean not null default false, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "documents_document_artifact_pkey" primary key ("id"));`);
26
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_artifact_document_id" ON "documents_document_artifact" ("document_id") WHERE deleted_at IS NULL;`);
27
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_document_artifact_deleted_at" ON "documents_document_artifact" ("deleted_at") WHERE deleted_at IS NULL;`);
28
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_documents_artifact_file_unique" ON "documents_document_artifact" ("file_id");`);
29
+ this.addSql(`create table if not exists "documents_order_cancellation_resolution" ("id" text not null, "order_id" text not null, "state" text check ("state" in ('pending', 'processing', 'ready', 'failed')) not null default 'pending', "expected_refund_ids" jsonb not null default '[]', "attachments" jsonb not null default '[]', "attempt_token" text null, "lease_started_at" timestamptz null, "lease_expires_at" timestamptz null, "event_emitted_at" timestamptz null, "failure_code" text null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "documents_order_cancellation_resolution_pkey" primary key ("id"), constraint CHK_documents_cancellation_resolution_lease_order check (lease_started_at is null or lease_expires_at is null or lease_expires_at > lease_started_at), constraint CHK_documents_cancellation_resolution_attempt_fields check (((state = 'processing' and attempt_token is not null and lease_started_at is not null and lease_expires_at is not null) or (state <> 'processing' and attempt_token is null and lease_started_at is null and lease_expires_at is null))));`);
30
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_order_cancellation_resolution_deleted_at" ON "documents_order_cancellation_resolution" ("deleted_at") WHERE deleted_at IS NULL;`);
31
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_documents_cancellation_resolution_order_unique" ON "documents_order_cancellation_resolution" ("order_id");`);
32
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_cancellation_resolution_reconciliation" ON "documents_order_cancellation_resolution" ("state", "lease_expires_at") WHERE deleted_at IS NULL;`);
33
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_cancellation_resolution_publication" ON "documents_order_cancellation_resolution" ("state", "event_emitted_at") WHERE deleted_at IS NULL;`);
34
+ this.addSql(`create table if not exists "documents_packing_list" ("id" text not null, "order_id" text not null, "order_display_id" integer null, "fulfillment_id" text not null, "fulfillment_created_at" timestamptz not null, "lifecycle_status" text not null default 'active', "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "documents_packing_list_pkey" primary key ("id"));`);
35
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_packing_list_order_id" ON "documents_packing_list" ("order_id") WHERE deleted_at IS NULL;`);
36
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_packing_list_fulfillment_created_at" ON "documents_packing_list" ("fulfillment_created_at") WHERE deleted_at IS NULL;`);
37
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_packing_list_deleted_at" ON "documents_packing_list" ("deleted_at") WHERE deleted_at IS NULL;`);
38
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_documents_packing_list_fulfillment_id_unique" ON "documents_packing_list" ("fulfillment_id") WHERE deleted_at IS NULL;`);
39
+ this.addSql(`create table if not exists "documents_packing_list_revision" ("id" text not null, "packing_list_id" text not null, "source_revision" integer not null, "generation_status" text not null default 'processing', "snapshot" jsonb null, "file_id" text null, "filename" text null, "attempt_token" text null, "attempt_started_at" timestamptz null, "generated_at" timestamptz null, "failure_code" text null, "failure_reason" text null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "documents_packing_list_revision_pkey" primary key ("id"));`);
40
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_packing_list_revision_packing_list_id" ON "documents_packing_list_revision" ("packing_list_id") WHERE deleted_at IS NULL;`);
41
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_packing_list_revision_generated_at" ON "documents_packing_list_revision" ("generated_at") WHERE deleted_at IS NULL;`);
42
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_packing_list_revision_deleted_at" ON "documents_packing_list_revision" ("deleted_at") WHERE deleted_at IS NULL;`);
43
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_documents_packing_list_revision_source_unique" ON "documents_packing_list_revision" ("packing_list_id", "source_revision") WHERE deleted_at IS NULL;`);
44
+ this.addSql(`create table if not exists "documents_refund_document_resolution" ("id" text not null, "refund_id" text not null, "order_id" text not null, "payment_id" text not null, "state" text check ("state" in ('pending_source', 'processing', 'ready', 'not_applicable', 'failed')) not null default 'pending_source', "attempt_token" text null, "lease_started_at" timestamptz null, "lease_expires_at" timestamptz null, "document_id" text null, "artifact_id" text null, "communication_owner" text check ("communication_owner" in ('standalone', 'cancellation')) null, "event_emitted_at" timestamptz null, "failure_code" text null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "documents_refund_document_resolution_pkey" primary key ("id"), constraint CHK_documents_refund_resolution_lease_order check (lease_started_at is null or lease_expires_at is null or lease_expires_at > lease_started_at), constraint CHK_documents_refund_resolution_attempt_fields check (((state = 'processing' and attempt_token is not null and lease_started_at is not null and lease_expires_at is not null) or (state <> 'processing' and attempt_token is null and lease_started_at is null and lease_expires_at is null))), constraint CHK_documents_refund_resolution_final_fields check (((state = 'ready' and document_id is not null and artifact_id is not null and communication_owner is not null) or (state = 'not_applicable' and document_id is null and artifact_id is null and communication_owner is not null) or (state in ('pending_source', 'processing', 'failed') and communication_owner is null))));`);
45
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_refund_resolution_order_id" ON "documents_refund_document_resolution" ("order_id") WHERE deleted_at IS NULL;`);
46
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_refund_resolution_payment_id" ON "documents_refund_document_resolution" ("payment_id") WHERE deleted_at IS NULL;`);
47
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_refund_document_resolution_deleted_at" ON "documents_refund_document_resolution" ("deleted_at") WHERE deleted_at IS NULL;`);
48
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_documents_refund_resolution_refund_unique" ON "documents_refund_document_resolution" ("refund_id");`);
49
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_refund_resolution_reconciliation" ON "documents_refund_document_resolution" ("state", "lease_expires_at") WHERE deleted_at IS NULL;`);
50
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_refund_resolution_publication" ON "documents_refund_document_resolution" ("communication_owner", "event_emitted_at") WHERE deleted_at IS NULL;`);
51
+ this.addSql(`create table if not exists "documents_shipment_invoice_assignment" ("id" text not null, "order_id" text not null, "fulfillment_id" text not null, "decision" text check ("decision" in ('pending', 'carrier', 'non_carrier')) not null default 'pending', "invoice_document_id" text null, "invoice_artifact_id" text null, "event_emitted_at" timestamptz null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "documents_shipment_invoice_assignment_pkey" primary key ("id"), constraint CHK_documents_shipment_assignment_carrier_fields check (((decision = 'carrier' and invoice_document_id is not null and invoice_artifact_id is not null) or (decision <> 'carrier' and invoice_document_id is null and invoice_artifact_id is null))));`);
52
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_shipment_assignment_order_id" ON "documents_shipment_invoice_assignment" ("order_id") WHERE deleted_at IS NULL;`);
53
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_shipment_invoice_assignment_deleted_at" ON "documents_shipment_invoice_assignment" ("deleted_at") WHERE deleted_at IS NULL;`);
54
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_documents_shipment_assignment_fulfillment_unique" ON "documents_shipment_invoice_assignment" ("fulfillment_id");`);
55
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_documents_shipment_assignment_order_carrier_unique" ON "documents_shipment_invoice_assignment" ("order_id") WHERE decision = 'carrier';`);
56
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_documents_shipment_assignment_invoice_unique" ON "documents_shipment_invoice_assignment" ("invoice_document_id") WHERE invoice_document_id IS NOT NULL;`);
57
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_shipment_assignment_publication" ON "documents_shipment_invoice_assignment" ("decision", "event_emitted_at") WHERE deleted_at IS NULL;`);
58
+ this.addSql(`create table if not exists "documents_shipment_invoice_coordinator" ("id" text not null, "order_id" text not null, "state" text check ("state" in ('idle', 'processing', 'completed')) not null default 'idle', "candidate_fulfillment_id" text null, "carrier_assignment_id" text null, "invoice_document_id" text null, "invoice_artifact_id" text null, "attempt_token" text null, "lease_started_at" timestamptz null, "lease_expires_at" timestamptz null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "documents_shipment_invoice_coordinator_pkey" primary key ("id"), constraint CHK_documents_shipment_coordinator_lease_order check (lease_started_at is null or lease_expires_at is null or lease_expires_at > lease_started_at), constraint CHK_documents_shipment_coordinator_state_fields check (((state = 'processing' and attempt_token is not null and lease_started_at is not null and lease_expires_at is not null) or (state <> 'processing' and attempt_token is null and lease_started_at is null and lease_expires_at is null))));`);
59
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_shipment_invoice_coordinator_deleted_at" ON "documents_shipment_invoice_coordinator" ("deleted_at") WHERE deleted_at IS NULL;`);
60
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_documents_shipment_coordinator_order_unique" ON "documents_shipment_invoice_coordinator" ("order_id");`);
61
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_shipment_coordinator_lease" ON "documents_shipment_invoice_coordinator" ("state", "lease_expires_at") WHERE deleted_at IS NULL;`);
62
+ }
63
+ async down() {
64
+ this.addSql(`drop table if exists "documents_document" cascade;`);
65
+ this.addSql(`drop table if exists "documents_document_artifact" cascade;`);
66
+ this.addSql(`drop table if exists "documents_order_cancellation_resolution" cascade;`);
67
+ this.addSql(`drop table if exists "documents_packing_list" cascade;`);
68
+ this.addSql(`drop table if exists "documents_packing_list_revision" cascade;`);
69
+ this.addSql(`drop table if exists "documents_refund_document_resolution" cascade;`);
70
+ this.addSql(`drop table if exists "documents_shipment_invoice_assignment" cascade;`);
71
+ this.addSql(`drop table if exists "documents_shipment_invoice_coordinator" cascade;`);
72
+ }
73
+ }
74
+ exports.Migration20260827061749 = Migration20260827061749;
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjA4MjcwNjE3NDkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9kb2N1bWVudHMvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI2MDgyNzA2MTc0OS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5RUFBcUU7QUFFckUsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUUzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMseUlBQXlJLENBQUMsQ0FBQztRQUN2SixJQUFJLENBQUMsTUFBTSxDQUFDLHlJQUF5SSxDQUFDLENBQUM7UUFDdkosSUFBSSxDQUFDLE1BQU0sQ0FBQywrSUFBK0ksQ0FBQyxDQUFDO1FBQzdKLElBQUksQ0FBQyxNQUFNLENBQUMsNklBQTZJLENBQUMsQ0FBQztRQUMzSixJQUFJLENBQUMsTUFBTSxDQUFDLHFJQUFxSSxDQUFDLENBQUM7UUFDbkosSUFBSSxDQUFDLE1BQU0sQ0FBQyxvSUFBb0ksQ0FBQyxDQUFDO1FBQ2xKLElBQUksQ0FBQyxNQUFNLENBQUMsMEhBQTBILENBQUMsQ0FBQztRQUN4SSxJQUFJLENBQUMsTUFBTSxDQUFDLDZJQUE2SSxDQUFDLENBQUM7UUFDM0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxpSEFBaUgsQ0FBQyxDQUFDO1FBQy9ILElBQUksQ0FBQyxNQUFNLENBQUMsMEdBQTBHLENBQUMsQ0FBQztRQUN4SCxJQUFJLENBQUMsTUFBTSxDQUFDLHd4REFBd3hELENBQUMsQ0FBQztRQUN0eUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyw2SEFBNkgsQ0FBQyxDQUFDO1FBQzNJLElBQUksQ0FBQyxNQUFNLENBQUMsbUlBQW1JLENBQUMsQ0FBQztRQUNqSixJQUFJLENBQUMsTUFBTSxDQUFDLCtIQUErSCxDQUFDLENBQUM7UUFDN0ksSUFBSSxDQUFDLE1BQU0sQ0FBQyxpSUFBaUksQ0FBQyxDQUFDO1FBQy9JLElB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
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20260830111207 = void 0;
4
+ const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
5
+ class Migration20260830111207 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql(`alter table if exists "documents_document" drop constraint if exists "documents_document_number_unique";`);
8
+ this.addSql(`alter table if exists "documents_document_number_sequence" drop constraint if exists "documents_number_sequence_scope_unique";`);
9
+ this.addSql(`create table if not exists "documents_document_number_sequence" ("id" text not null, "kind" text check ("kind" in ('invoice', 'cancellation', 'credit_note')) not null, "period_year" integer not null, "last_value" integer not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "documents_document_number_sequence_pkey" primary key ("id"), constraint CHK_documents_number_sequence_values check (period_year > 0 and last_value > 0));`);
10
+ this.addSql(`CREATE INDEX IF NOT EXISTS "IDX_documents_document_number_sequence_deleted_at" ON "documents_document_number_sequence" ("deleted_at") WHERE deleted_at IS NULL;`);
11
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_documents_number_sequence_scope_unique" ON "documents_document_number_sequence" ("kind", "period_year");`);
12
+ this.addSql(`alter table if exists "documents_document" alter column "document_number" type text using ("document_number"::text);`);
13
+ this.addSql(`alter table if exists "documents_document" alter column "document_number" set not null;`);
14
+ this.addSql(`alter table if exists "documents_document" alter column "issued_at" type timestamptz using ("issued_at"::timestamptz);`);
15
+ this.addSql(`alter table if exists "documents_document" alter column "issued_at" set not null;`);
16
+ this.addSql(`CREATE UNIQUE INDEX IF NOT EXISTS "IDX_documents_document_number_unique" ON "documents_document" ("document_number");`);
17
+ }
18
+ async down() {
19
+ this.addSql(`drop table if exists "documents_document_number_sequence" cascade;`);
20
+ this.addSql(`drop index if exists "IDX_documents_document_number_unique";`);
21
+ this.addSql(`alter table if exists "documents_document" alter column "document_number" type text using ("document_number"::text);`);
22
+ this.addSql(`alter table if exists "documents_document" alter column "document_number" drop not null;`);
23
+ this.addSql(`alter table if exists "documents_document" alter column "issued_at" type timestamptz using ("issued_at"::timestamptz);`);
24
+ this.addSql(`alter table if exists "documents_document" alter column "issued_at" drop not null;`);
25
+ }
26
+ }
27
+ exports.Migration20260830111207 = Migration20260830111207;
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjA4MzAxMTEyMDcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9kb2N1bWVudHMvbWlncmF0aW9ucy9NaWdyYXRpb24yMDI2MDgzMDExMTIwNy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5RUFBcUU7QUFFckUsTUFBYSx1QkFBd0IsU0FBUSxzQkFBUztJQUUzQyxLQUFLLENBQUMsRUFBRTtRQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsMEdBQTBHLENBQUMsQ0FBQztRQUN4SCxJQUFJLENBQUMsTUFBTSxDQUFDLGdJQUFnSSxDQUFDLENBQUM7UUFDOUksSUFBSSxDQUFDLE1BQU0sQ0FBQywrZ0JBQStnQixDQUFDLENBQUM7UUFDN2hCLElBQUksQ0FBQyxNQUFNLENBQUMsaUtBQWlLLENBQUMsQ0FBQztRQUMvSyxJQUFJLENBQUMsTUFBTSxDQUFDLGlKQUFpSixDQUFDLENBQUM7UUFFL0osSUFBSSxDQUFDLE1BQU0sQ0FBQyxzSEFBc0gsQ0FBQyxDQUFDO1FBQ3BJLElBQUksQ0FBQyxNQUFNLENBQUMseUZBQXlGLENBQUMsQ0FBQztRQUN2RyxJQUFJLENBQUMsTUFBTSxDQUFDLHdIQUF3SCxDQUFDLENBQUM7UUFDdEksSUFBSSxDQUFDLE1BQU0sQ0FBQyxtRkFBbUYsQ0FBQyxDQUFDO1FBQ2pHLElBQUksQ0FBQyxNQUFNLENBQUMsdUhBQXVILENBQUMsQ0FBQztJQUN2SSxDQUFDO0lBRVEsS0FBSyxDQUFDLElBQUk7UUFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvRUFBb0UsQ0FBQyxDQUFDO1FBRWxGLElBQUksQ0FBQyxNQUFNLENBQUMsOERBQThELENBQUMsQ0FBQztRQUU1RSxJQUFJLENBQUMsTUFBTSxDQUFDLHNIQUFzSCxDQUFDLENBQUM7UUFDcEksSUFBSSxDQUFDLE1BQU0sQ0FBQywwRkFBMEYsQ0FBQyxDQUFDO1FBQ3hHLElBQUksQ0FBQyxNQUFNLENBQUMsd0hBQXdILENBQUMsQ0FBQztRQUN0SSxJQUFJLENBQUMsTUFBTSxDQUFDLG9GQUFvRixDQUFDLENBQUM7SUFDcEcsQ0FBQztDQUVGO0FBM0JELDBEQTJCQyJ9
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@medusajs/framework/utils");
4
+ const DocumentArtifact = utils_1.model
5
+ .define({
6
+ name: "document_artifact",
7
+ tableName: "documents_document_artifact",
8
+ }, {
9
+ id: utils_1.model.id({ prefix: "docart" }).primaryKey(),
10
+ document_id: utils_1.model.text().index("IDX_documents_artifact_document_id"),
11
+ file_id: utils_1.model.text(),
12
+ filename: utils_1.model.text(),
13
+ content_type: utils_1.model.enum(["application/pdf"]).default("application/pdf"),
14
+ communication_locked: utils_1.model.boolean().default(false),
15
+ })
16
+ .indexes([
17
+ {
18
+ name: "IDX_documents_artifact_file_unique",
19
+ on: ["file_id"],
20
+ unique: true,
21
+ where: null,
22
+ },
23
+ ]);
24
+ exports.default = DocumentArtifact;
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtYXJ0aWZhY3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9kb2N1bWVudHMvbW9kZWxzL2RvY3VtZW50LWFydGlmYWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscURBQWlEO0FBRWpELE1BQU0sZ0JBQWdCLEdBQUcsYUFBSztLQUMzQixNQUFNLENBQ0w7SUFDRSxJQUFJLEVBQUUsbUJBQW1CO0lBQ3pCLFNBQVMsRUFBRSw2QkFBNkI7Q0FDekMsRUFDRDtJQUNFLEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFO0lBQy9DLFdBQVcsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLG9DQUFvQyxDQUFDO0lBQ3JFLE9BQU8sRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQ3JCLFFBQVEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQ3RCLFlBQVksRUFBRSxhQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztJQUN4RSxvQkFBb0IsRUFBRSxhQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQztDQUNyRCxDQUNGO0tBQ0EsT0FBTyxDQUFDO0lBQ1A7UUFDRSxJQUFJLEVBQUUsb0NBQW9DO1FBQzFDLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUNmLE1BQU0sRUFBRSxJQUFJO1FBQ1osS0FBSyxFQUFFLElBQUk7S0FDWjtDQUNGLENBQUMsQ0FBQTtBQUVKLGtCQUFlLGdCQUFnQixDQUFBIn0=
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@medusajs/framework/utils");
4
+ const DocumentNumberSequence = utils_1.model
5
+ .define({
6
+ name: "document_number_sequence",
7
+ tableName: "documents_document_number_sequence",
8
+ }, {
9
+ id: utils_1.model.id({ prefix: "docseq" }).primaryKey(),
10
+ kind: utils_1.model.enum(["invoice", "cancellation", "credit_note"]),
11
+ period_year: utils_1.model.number(),
12
+ last_value: utils_1.model.number(),
13
+ })
14
+ .indexes([
15
+ {
16
+ name: "IDX_documents_number_sequence_scope_unique",
17
+ on: ["kind", "period_year"],
18
+ unique: true,
19
+ where: null,
20
+ },
21
+ ])
22
+ .checks([
23
+ {
24
+ name: "CHK_documents_number_sequence_values",
25
+ expression: ({ period_year, last_value }) => `${period_year} > 0 and ${last_value} > 0`,
26
+ },
27
+ ]);
28
+ exports.default = DocumentNumberSequence;
29
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQtbnVtYmVyLXNlcXVlbmNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvZG9jdW1lbnRzL21vZGVscy9kb2N1bWVudC1udW1iZXItc2VxdWVuY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxREFBaUQ7QUFFakQsTUFBTSxzQkFBc0IsR0FBRyxhQUFLO0tBQ2pDLE1BQU0sQ0FDTDtJQUNFLElBQUksRUFBRSwwQkFBMEI7SUFDaEMsU0FBUyxFQUFFLG9DQUFvQztDQUNoRCxFQUNEO0lBQ0UsRUFBRSxFQUFFLGFBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUU7SUFDL0MsSUFBSSxFQUFFLGFBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsY0FBYyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzVELFdBQVcsRUFBRSxhQUFLLENBQUMsTUFBTSxFQUFFO0lBQzNCLFVBQVUsRUFBRSxhQUFLLENBQUMsTUFBTSxFQUFFO0NBQzNCLENBQ0Y7S0FDQSxPQUFPLENBQUM7SUFDUDtRQUNFLElBQUksRUFBRSw0Q0FBNEM7UUFDbEQsRUFBRSxFQUFFLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQztRQUMzQixNQUFNLEVBQUUsSUFBSTtRQUNaLEtBQUssRUFBRSxJQUFJO0tBQ1o7Q0FDRixDQUFDO0tBQ0QsTUFBTSxDQUFDO0lBQ047UUFDRSxJQUFJLEVBQUUsc0NBQXNDO1FBQzVDLFVBQVUsRUFBRSxDQUFDLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsQ0FDMUMsR0FBRyxXQUFXLFlBQVksVUFBVSxNQUFNO0tBQzdDO0NBQ0YsQ0FBQyxDQUFBO0FBRUosa0JBQWUsc0JBQXNCLENBQUEifQ==
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@medusajs/framework/utils");
4
+ /**
5
+ * `order_id` and `customer_id` are scalar historical references, so an issued
6
+ * accounting document still identifies its original order and customer even if
7
+ * a live association is later changed or removed. `file_id` points to the
8
+ * currently stored private PDF and is intentionally replaceable by the Admin
9
+ * regeneration workflow.
10
+ */
11
+ const Document = utils_1.model
12
+ .define({
13
+ name: "document",
14
+ tableName: "documents_document",
15
+ }, {
16
+ id: utils_1.model.id({ prefix: "doc" }).primaryKey(),
17
+ kind: utils_1.model.enum(["invoice", "cancellation", "credit_note"]),
18
+ status: utils_1.model.enum(["processing", "issued", "failed"]).default("processing"),
19
+ issuance_key: utils_1.model.text(),
20
+ order_id: utils_1.model.text().index("IDX_documents_document_order_id"),
21
+ order_display_id: utils_1.model.number().nullable(),
22
+ customer_id: utils_1.model
23
+ .text()
24
+ .index("IDX_documents_document_customer_id")
25
+ .nullable(),
26
+ recipient_email: utils_1.model.text(),
27
+ document_number: utils_1.model.text(),
28
+ source_document_id: utils_1.model.text().nullable(),
29
+ refund_id: utils_1.model.text().nullable(),
30
+ snapshot: utils_1.model.json().nullable(),
31
+ file_id: utils_1.model.text().nullable(),
32
+ filename: utils_1.model.text().nullable(),
33
+ current_artifact_id: utils_1.model.text().nullable(),
34
+ attempt_token: utils_1.model.text().nullable(),
35
+ lease_started_at: utils_1.model.dateTime().nullable(),
36
+ lease_expires_at: utils_1.model.dateTime().nullable(),
37
+ issued_at: utils_1.model
38
+ .dateTime()
39
+ .index("IDX_documents_document_issued_at"),
40
+ failure_reason: utils_1.model.text().nullable(),
41
+ })
42
+ .indexes([
43
+ {
44
+ name: "IDX_documents_document_issuance_key",
45
+ on: ["issuance_key"],
46
+ unique: true,
47
+ where: null,
48
+ },
49
+ {
50
+ name: "IDX_documents_document_number_unique",
51
+ on: ["document_number"],
52
+ unique: true,
53
+ where: null,
54
+ },
55
+ {
56
+ name: "IDX_documents_document_refund_unique",
57
+ on: ["refund_id"],
58
+ unique: true,
59
+ where: "refund_id IS NOT NULL",
60
+ },
61
+ {
62
+ name: "IDX_documents_document_lease",
63
+ on: ["status", "lease_expires_at"],
64
+ where: "deleted_at IS NULL",
65
+ },
66
+ ])
67
+ .checks([
68
+ {
69
+ name: "CHK_documents_document_lease_order",
70
+ expression: ({ lease_started_at, lease_expires_at }) => `${lease_started_at} is null or ${lease_expires_at} is null or ${lease_expires_at} > ${lease_started_at}`,
71
+ },
72
+ {
73
+ name: "CHK_documents_document_attempt_fields",
74
+ expression: ({ status, attempt_token, lease_started_at, lease_expires_at, }) => `((${status} = 'processing' and ${attempt_token} is not null and ${lease_started_at} is not null and ${lease_expires_at} is not null) or (${status} = 'failed' and ${attempt_token} is null and ${lease_started_at} is null and ${lease_expires_at} is null) or (${status} = 'issued' and ((${attempt_token} is null and ${lease_started_at} is null and ${lease_expires_at} is null) or (${attempt_token} is not null and ${lease_started_at} is not null and ${lease_expires_at} is not null))))`,
75
+ },
76
+ {
77
+ name: "CHK_documents_document_issued_fields",
78
+ expression: ({ status, snapshot, file_id, filename, current_artifact_id, document_number, issued_at, }) => `${status} <> 'issued' or (${snapshot} is not null and ${file_id} is not null and ${filename} is not null and ${current_artifact_id} is not null and ${document_number} is not null and ${issued_at} is not null)`,
79
+ },
80
+ ]);
81
+ exports.default = Document;
82
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9jdW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9kb2N1bWVudHMvbW9kZWxzL2RvY3VtZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscURBQWlEO0FBRWpEOzs7Ozs7R0FNRztBQUNILE1BQU0sUUFBUSxHQUFHLGFBQUs7S0FDbkIsTUFBTSxDQUNMO0lBQ0UsSUFBSSxFQUFFLFVBQVU7SUFDaEIsU0FBUyxFQUFFLG9CQUFvQjtDQUNoQyxFQUNEO0lBQ0UsRUFBRSxFQUFFLGFBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUU7SUFDNUMsSUFBSSxFQUFFLGFBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsY0FBYyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzVELE1BQU0sRUFBRSxhQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUM7SUFDNUUsWUFBWSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUU7SUFDMUIsUUFBUSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsaUNBQWlDLENBQUM7SUFDL0QsZ0JBQWdCLEVBQUUsYUFBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUMzQyxXQUFXLEVBQUUsYUFBSztTQUNmLElBQUksRUFBRTtTQUNOLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQztTQUMzQyxRQUFRLEVBQUU7SUFDYixlQUFlLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRTtJQUM3QixlQUFlLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRTtJQUM3QixrQkFBa0IsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzNDLFNBQVMsRUFBRSxh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
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@medusajs/framework/utils");
4
+ const OrderCancellationResolution = utils_1.model
5
+ .define({
6
+ name: "order_cancellation_resolution",
7
+ tableName: "documents_order_cancellation_resolution",
8
+ }, {
9
+ id: utils_1.model.id({ prefix: "doccancel" }).primaryKey(),
10
+ order_id: utils_1.model.text(),
11
+ state: utils_1.model
12
+ .enum(["pending", "processing", "ready", "failed"])
13
+ .default("pending"),
14
+ expected_refund_ids: utils_1.model.json().default([]),
15
+ attachments: utils_1.model.json().default([]),
16
+ attempt_token: utils_1.model.text().nullable(),
17
+ lease_started_at: utils_1.model.dateTime().nullable(),
18
+ lease_expires_at: utils_1.model.dateTime().nullable(),
19
+ event_emitted_at: utils_1.model.dateTime().nullable(),
20
+ failure_code: utils_1.model.text().nullable(),
21
+ })
22
+ .indexes([
23
+ {
24
+ name: "IDX_documents_cancellation_resolution_order_unique",
25
+ on: ["order_id"],
26
+ unique: true,
27
+ where: null,
28
+ },
29
+ {
30
+ name: "IDX_documents_cancellation_resolution_reconciliation",
31
+ on: ["state", "lease_expires_at"],
32
+ where: "deleted_at IS NULL",
33
+ },
34
+ {
35
+ name: "IDX_documents_cancellation_resolution_publication",
36
+ on: ["state", "event_emitted_at"],
37
+ where: "deleted_at IS NULL",
38
+ },
39
+ ])
40
+ .checks([
41
+ {
42
+ name: "CHK_documents_cancellation_resolution_lease_order",
43
+ expression: ({ lease_started_at, lease_expires_at }) => `${lease_started_at} is null or ${lease_expires_at} is null or ${lease_expires_at} > ${lease_started_at}`,
44
+ },
45
+ {
46
+ name: "CHK_documents_cancellation_resolution_attempt_fields",
47
+ expression: ({ state, attempt_token, lease_started_at, lease_expires_at }) => `((${state} = 'processing' and ${attempt_token} is not null and ${lease_started_at} is not null and ${lease_expires_at} is not null) or (${state} <> 'processing' and ${attempt_token} is null and ${lease_started_at} is null and ${lease_expires_at} is null))`,
48
+ },
49
+ ]);
50
+ exports.default = OrderCancellationResolution;
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JkZXItY2FuY2VsbGF0aW9uLXJlc29sdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9kb2N1bWVudHMvbW9kZWxzL29yZGVyLWNhbmNlbGxhdGlvbi1yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscURBQWlEO0FBUWpELE1BQU0sMkJBQTJCLEdBQUcsYUFBSztLQUN0QyxNQUFNLENBQ0w7SUFDRSxJQUFJLEVBQUUsK0JBQStCO0lBQ3JDLFNBQVMsRUFBRSx5Q0FBeUM7Q0FDckQsRUFDRDtJQUNFLEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFO0lBQ2xELFFBQVEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQ3RCLEtBQUssRUFBRSxhQUFLO1NBQ1QsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDbEQsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUNyQixtQkFBbUIsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFZLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztJQUN2RCxXQUFXLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBNEIsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0lBQy9ELGFBQWEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3RDLGdCQUFnQixFQUFFLGFBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0MsZ0JBQWdCLEVBQUUsYUFBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QyxnQkFBZ0IsRUFBRSxhQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzdDLFlBQVksRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ3RDLENBQ0Y7S0FDQSxPQUFPLENBQUM7SUFDUDtRQUNFLElBQUksRUFBRSxvREFBb0Q7UUFDMUQsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDO1FBQ2hCLE1BQU0sRUFBRSxJQUFJO1FBQ1osS0FBSyxFQUFFLElBQUk7S0FDWjtJQUNEO1FBQ0UsSUFBSSxFQUFFLHNEQUFzRDtRQUM1RCxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENBQUM7UUFDakMsS0FBSyxFQUFFLG9CQUFvQjtLQUM1QjtJQUNEO1FBQ0UsSUFBSSxFQUFFLG1EQUFtRDtRQUN6RCxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENBQUM7UUFDakMsS0FBSyxFQUFFLG9CQUFvQjtLQUM1QjtDQUNGLENBQUM7S0FDRCxNQUFNLENBQUM7SUFDTjtRQUNFLElBQUksRUFBRSxtREFBbUQ7UUFDekQsVUFBVSxFQUFFLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsQ0FDckQsR0FBRyxnQkFBZ0IsZUFBZSxnQkFBZ0IsZUFBZSxnQkFBZ0IsTUFBTSxnQkFBZ0IsRUFBRTtLQUM1RztJQUNEO1FBQ0UsSUFBSSxFQUFFLHNEQUFzRDtRQUM1RCxVQUFVLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLENBQzNFLEtBQUssS0FBSyx1QkFBdUIsYUFBYSxvQkFBb0IsZ0JBQWdCLG9CQUFvQixnQkFBZ0IscUJBQXFCLEtBQUssd0JBQXdCLGFBQWEsZ0JBQWdCLGdCQUFnQixnQkFBZ0IsZ0JBQWdCLFlBQVk7S0FDcFE7Q0FDRixDQUFDLENBQUE7QUFFSixrQkFBZSwyQkFBMkIsQ0FBQSJ9
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@medusajs/framework/utils");
4
+ const PackingListRevision = utils_1.model
5
+ .define({
6
+ name: "packing_list_revision",
7
+ tableName: "documents_packing_list_revision",
8
+ }, {
9
+ id: utils_1.model.id({ prefix: "packrev" }).primaryKey(),
10
+ packing_list_id: utils_1.model
11
+ .text()
12
+ .index("IDX_documents_packing_list_revision_packing_list_id"),
13
+ source_revision: utils_1.model.number(),
14
+ generation_status: utils_1.model.text().default("processing"),
15
+ snapshot: utils_1.model.json().nullable(),
16
+ file_id: utils_1.model.text().nullable(),
17
+ filename: utils_1.model.text().nullable(),
18
+ attempt_token: utils_1.model.text().nullable(),
19
+ attempt_started_at: utils_1.model.dateTime().nullable(),
20
+ generated_at: utils_1.model
21
+ .dateTime()
22
+ .index("IDX_documents_packing_list_revision_generated_at")
23
+ .nullable(),
24
+ failure_code: utils_1.model.text().nullable(),
25
+ failure_reason: utils_1.model.text().nullable(),
26
+ })
27
+ .indexes([
28
+ {
29
+ name: "IDX_documents_packing_list_revision_source_unique",
30
+ on: ["packing_list_id", "source_revision"],
31
+ unique: true,
32
+ where: "deleted_at IS NULL",
33
+ },
34
+ ]);
35
+ exports.default = PackingListRevision;
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2luZy1saXN0LXJldmlzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvZG9jdW1lbnRzL21vZGVscy9wYWNraW5nLWxpc3QtcmV2aXNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxREFBaUQ7QUFFakQsTUFBTSxtQkFBbUIsR0FBRyxhQUFLO0tBQzlCLE1BQU0sQ0FDTDtJQUNFLElBQUksRUFBRSx1QkFBdUI7SUFDN0IsU0FBUyxFQUFFLGlDQUFpQztDQUM3QyxFQUNEO0lBQ0UsRUFBRSxFQUFFLGFBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUU7SUFDaEQsZUFBZSxFQUFFLGFBQUs7U0FDbkIsSUFBSSxFQUFFO1NBQ04sS0FBSyxDQUFDLHFEQUFxRCxDQUFDO0lBQy9ELGVBQWUsRUFBRSxhQUFLLENBQUMsTUFBTSxFQUFFO0lBQy9CLGlCQUFpQixFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDO0lBQ3JELFFBQVEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2pDLE9BQU8sRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2hDLFFBQVEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ2pDLGFBQWEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3RDLGtCQUFrQixFQUFFLGFBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDL0MsWUFBWSxFQUFFLGFBQUs7U0FDaEIsUUFBUSxFQUFFO1NBQ1YsS0FBSyxDQUFDLGtEQUFrRCxDQUFDO1NBQ3pELFFBQVEsRUFBRTtJQUNiLFlBQVksRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3JDLGNBQWMsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ3hDLENBQ0Y7S0FDQSxPQUFPLENBQUM7SUFDUDtRQUNFLElBQUksRUFBRSxtREFBbUQ7UUFDekQsRUFBRSxFQUFFLENBQUMsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUM7UUFDMUMsTUFBTSxFQUFFLElBQUk7UUFDWixLQUFLLEVBQUUsb0JBQW9CO0tBQzVCO0NBQ0YsQ0FBQyxDQUFBO0FBRUosa0JBQWUsbUJBQW1CLENBQUEifQ==
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@medusajs/framework/utils");
4
+ const PackingList = utils_1.model
5
+ .define({
6
+ name: "packing_list",
7
+ tableName: "documents_packing_list",
8
+ }, {
9
+ id: utils_1.model.id({ prefix: "packlist" }).primaryKey(),
10
+ order_id: utils_1.model.text().index("IDX_documents_packing_list_order_id"),
11
+ order_display_id: utils_1.model.number().nullable(),
12
+ fulfillment_id: utils_1.model.text(),
13
+ fulfillment_created_at: utils_1.model
14
+ .dateTime()
15
+ .index("IDX_documents_packing_list_fulfillment_created_at"),
16
+ lifecycle_status: utils_1.model.text().default("active"),
17
+ })
18
+ .indexes([
19
+ {
20
+ name: "IDX_documents_packing_list_fulfillment_id_unique",
21
+ on: ["fulfillment_id"],
22
+ unique: true,
23
+ where: "deleted_at IS NULL",
24
+ },
25
+ ]);
26
+ exports.default = PackingList;
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2luZy1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvZG9jdW1lbnRzL21vZGVscy9wYWNraW5nLWxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxREFBaUQ7QUFFakQsTUFBTSxXQUFXLEdBQUcsYUFBSztLQUN0QixNQUFNLENBQ0w7SUFDRSxJQUFJLEVBQUUsY0FBYztJQUNwQixTQUFTLEVBQUUsd0JBQXdCO0NBQ3BDLEVBQ0Q7SUFDRSxFQUFFLEVBQUUsYUFBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRTtJQUNqRCxRQUFRLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxxQ0FBcUMsQ0FBQztJQUNuRSxnQkFBZ0IsRUFBRSxhQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzNDLGNBQWMsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQzVCLHNCQUFzQixFQUFFLGFBQUs7U0FDMUIsUUFBUSxFQUFFO1NBQ1YsS0FBSyxDQUFDLG1EQUFtRCxDQUFDO0lBQzdELGdCQUFnQixFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO0NBQ2pELENBQ0Y7S0FDQSxPQUFPLENBQUM7SUFDUDtRQUNFLElBQUksRUFBRSxrREFBa0Q7UUFDeEQsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUM7UUFDdEIsTUFBTSxFQUFFLElBQUk7UUFDWixLQUFLLEVBQUUsb0JBQW9CO0tBQzVCO0NBQ0YsQ0FBQyxDQUFBO0FBRUosa0JBQWUsV0FBVyxDQUFBIn0=
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@medusajs/framework/utils");
4
+ const RefundDocumentResolution = utils_1.model
5
+ .define({
6
+ name: "refund_document_resolution",
7
+ tableName: "documents_refund_document_resolution",
8
+ }, {
9
+ id: utils_1.model.id({ prefix: "docrefund" }).primaryKey(),
10
+ refund_id: utils_1.model.text(),
11
+ order_id: utils_1.model.text().index("IDX_documents_refund_resolution_order_id"),
12
+ payment_id: utils_1.model.text().index("IDX_documents_refund_resolution_payment_id"),
13
+ state: utils_1.model
14
+ .enum([
15
+ "pending_source",
16
+ "processing",
17
+ "ready",
18
+ "not_applicable",
19
+ "failed",
20
+ ])
21
+ .default("pending_source"),
22
+ attempt_token: utils_1.model.text().nullable(),
23
+ lease_started_at: utils_1.model.dateTime().nullable(),
24
+ lease_expires_at: utils_1.model.dateTime().nullable(),
25
+ document_id: utils_1.model.text().nullable(),
26
+ artifact_id: utils_1.model.text().nullable(),
27
+ communication_owner: utils_1.model
28
+ .enum(["standalone", "cancellation"])
29
+ .nullable(),
30
+ event_emitted_at: utils_1.model.dateTime().nullable(),
31
+ failure_code: utils_1.model.text().nullable(),
32
+ })
33
+ .indexes([
34
+ {
35
+ name: "IDX_documents_refund_resolution_refund_unique",
36
+ on: ["refund_id"],
37
+ unique: true,
38
+ where: null,
39
+ },
40
+ {
41
+ name: "IDX_documents_refund_resolution_reconciliation",
42
+ on: ["state", "lease_expires_at"],
43
+ where: "deleted_at IS NULL",
44
+ },
45
+ {
46
+ name: "IDX_documents_refund_resolution_publication",
47
+ on: ["communication_owner", "event_emitted_at"],
48
+ where: "deleted_at IS NULL",
49
+ },
50
+ ])
51
+ .checks([
52
+ {
53
+ name: "CHK_documents_refund_resolution_lease_order",
54
+ expression: ({ lease_started_at, lease_expires_at }) => `${lease_started_at} is null or ${lease_expires_at} is null or ${lease_expires_at} > ${lease_started_at}`,
55
+ },
56
+ {
57
+ name: "CHK_documents_refund_resolution_attempt_fields",
58
+ expression: ({ state, attempt_token, lease_started_at, lease_expires_at }) => `((${state} = 'processing' and ${attempt_token} is not null and ${lease_started_at} is not null and ${lease_expires_at} is not null) or (${state} <> 'processing' and ${attempt_token} is null and ${lease_started_at} is null and ${lease_expires_at} is null))`,
59
+ },
60
+ {
61
+ name: "CHK_documents_refund_resolution_final_fields",
62
+ expression: ({ state, document_id, artifact_id, communication_owner }) => `((${state} = 'ready' and ${document_id} is not null and ${artifact_id} is not null and ${communication_owner} is not null) or (${state} = 'not_applicable' and ${document_id} is null and ${artifact_id} is null and ${communication_owner} is not null) or (${state} in ('pending_source', 'processing', 'failed') and ${communication_owner} is null))`,
63
+ },
64
+ ]);
65
+ exports.default = RefundDocumentResolution;
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmdW5kLWRvY3VtZW50LXJlc29sdXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9kb2N1bWVudHMvbW9kZWxzL3JlZnVuZC1kb2N1bWVudC1yZXNvbHV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscURBQWlEO0FBRWpELE1BQU0sd0JBQXdCLEdBQUcsYUFBSztLQUNuQyxNQUFNLENBQ0w7SUFDRSxJQUFJLEVBQUUsNEJBQTRCO0lBQ2xDLFNBQVMsRUFBRSxzQ0FBc0M7Q0FDbEQsRUFDRDtJQUNFLEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFO0lBQ2xELFNBQVMsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQ3ZCLFFBQVEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxDQUFDO0lBQ3hFLFVBQVUsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLDRDQUE0QyxDQUFDO0lBQzVFLEtBQUssRUFBRSxhQUFLO1NBQ1QsSUFBSSxDQUFDO1FBQ0osZ0JBQWdCO1FBQ2hCLFlBQVk7UUFDWixPQUFPO1FBQ1AsZ0JBQWdCO1FBQ2hCLFFBQVE7S0FDVCxDQUFDO1NBQ0QsT0FBTyxDQUFDLGdCQUFnQixDQUFDO0lBQzVCLGFBQWEsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQ3RDLGdCQUFnQixFQUFFLGFBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDN0MsZ0JBQWdCLEVBQUUsYUFBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QyxXQUFXLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNwQyxXQUFXLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUNwQyxtQkFBbUIsRUFBRSxhQUFLO1NBQ3ZCLElBQUksQ0FBQyxDQUFDLFlBQVksRUFBRSxjQUFjLENBQUMsQ0FBQztTQUNwQyxRQUFRLEVBQUU7SUFDYixnQkFBZ0IsRUFBRSxhQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzdDLFlBQVksRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ3RDLENBQ0Y7S0FDQSxPQUFPLENBQUM7SUFDUDtRQUNFLElBQUksRUFBRSwrQ0FBK0M7UUFDckQsRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDO1FBQ2pCLE1BQU0sRUFBRSxJQUFJO1FBQ1osS0FBSyxFQUFFLElBQUk7S0FDWjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGdEQUFnRDtRQUN0RCxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENBQUM7UUFDakMsS0FBSyxFQUFFLG9CQUFvQjtLQUM1QjtJQUNEO1FBQ0UsSUFBSSxFQUFFLDZDQUE2QztRQUNuRCxFQUFFLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSxrQkFBa0IsQ0FBQztRQUMvQyxLQUFLLEVBQUUsb0JBQW9CO0tBQzVCO0NBQ0YsQ0FBQztLQUNELE1BQU0sQ0FBQztJQUNOO1FBQ0UsSUFBSSxFQUFFLDZDQUE2QztRQUNuRCxVQUFVLEVBQUUsQ0FBQyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLEVBQUUsRUFBRSxDQUNyRCxHQUFHLGdCQUFnQixlQUFlLGdCQUFnQixlQUFlLGdCQUFnQixNQUFNLGdCQUFnQixFQUFFO0tBQzVHO0lBQ0Q7UUFDRSxJQUFJLEVBQUUsZ0RBQWdEO1FBQ3RELFVBQVUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsQ0FDM0UsS0FBSyxLQUFLLHVCQUF1QixhQUFhLG9CQUFvQixnQkFBZ0Isb0JBQW9CLGdCQUFnQixxQkFBcUIsS0FBSyx3QkFBd0IsYUFBYSxnQkFBZ0IsZ0JBQWdCLGdCQUFnQixnQkFBZ0IsWUFBWTtLQUNwUTtJQUNEO1FBQ0UsSUFBSSxFQUFFLDhDQUE4QztRQUNwRCxVQUFVLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLEVBQUUsRUFBRSxDQUN2RSxLQUFLLEtBQUssa0JBQWtCLFdBQVcsb0JBQW9CLFdBQVcsb0JBQW9CLG1CQUFtQixxQkFBcUIsS0FBSywyQkFBMkIsV0FBVyxnQkFBZ0IsV0FBVyxnQkFBZ0IsbUJBQW1CLHFCQUFxQixLQUFLLHNEQUFzRCxtQkFBbUIsWUFBWTtLQUM3VjtDQUNGLENBQUMsQ0FBQTtBQUVKLGtCQUFlLHdCQUF3QixDQUFBIn0=
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@medusajs/framework/utils");
4
+ const ShipmentInvoiceAssignment = utils_1.model
5
+ .define({
6
+ name: "shipment_invoice_assignment",
7
+ tableName: "documents_shipment_invoice_assignment",
8
+ }, {
9
+ id: utils_1.model.id({ prefix: "docship" }).primaryKey(),
10
+ order_id: utils_1.model.text().index("IDX_documents_shipment_assignment_order_id"),
11
+ fulfillment_id: utils_1.model.text(),
12
+ decision: utils_1.model
13
+ .enum(["pending", "carrier", "non_carrier"])
14
+ .default("pending"),
15
+ invoice_document_id: utils_1.model.text().nullable(),
16
+ invoice_artifact_id: utils_1.model.text().nullable(),
17
+ event_emitted_at: utils_1.model.dateTime().nullable(),
18
+ })
19
+ .indexes([
20
+ {
21
+ name: "IDX_documents_shipment_assignment_fulfillment_unique",
22
+ on: ["fulfillment_id"],
23
+ unique: true,
24
+ where: null,
25
+ },
26
+ {
27
+ name: "IDX_documents_shipment_assignment_order_carrier_unique",
28
+ on: ["order_id"],
29
+ unique: true,
30
+ where: "decision = 'carrier'",
31
+ },
32
+ {
33
+ name: "IDX_documents_shipment_assignment_invoice_unique",
34
+ on: ["invoice_document_id"],
35
+ unique: true,
36
+ where: "invoice_document_id IS NOT NULL",
37
+ },
38
+ {
39
+ name: "IDX_documents_shipment_assignment_publication",
40
+ on: ["decision", "event_emitted_at"],
41
+ where: "deleted_at IS NULL",
42
+ },
43
+ ])
44
+ .checks([
45
+ {
46
+ name: "CHK_documents_shipment_assignment_carrier_fields",
47
+ expression: ({ decision, invoice_document_id, invoice_artifact_id }) => `((${decision} = 'carrier' and ${invoice_document_id} is not null and ${invoice_artifact_id} is not null) or (${decision} <> 'carrier' and ${invoice_document_id} is null and ${invoice_artifact_id} is null))`,
48
+ },
49
+ ]);
50
+ exports.default = ShipmentInvoiceAssignment;
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpcG1lbnQtaW52b2ljZS1hc3NpZ25tZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvZG9jdW1lbnRzL21vZGVscy9zaGlwbWVudC1pbnZvaWNlLWFzc2lnbm1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxxREFBaUQ7QUFFakQsTUFBTSx5QkFBeUIsR0FBRyxhQUFLO0tBQ3BDLE1BQU0sQ0FDTDtJQUNFLElBQUksRUFBRSw2QkFBNkI7SUFDbkMsU0FBUyxFQUFFLHVDQUF1QztDQUNuRCxFQUNEO0lBQ0UsRUFBRSxFQUFFLGFBQUssQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxVQUFVLEVBQUU7SUFDaEQsUUFBUSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsNENBQTRDLENBQUM7SUFDMUUsY0FBYyxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUU7SUFDNUIsUUFBUSxFQUFFLGFBQUs7U0FDWixJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUUsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1NBQzNDLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDckIsbUJBQW1CLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM1QyxtQkFBbUIsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzVDLGdCQUFnQixFQUFFLGFBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLEVBQUU7Q0FDOUMsQ0FDRjtLQUNBLE9BQU8sQ0FBQztJQUNQO1FBQ0UsSUFBSSxFQUFFLHNEQUFzRDtRQUM1RCxFQUFFLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUN0QixNQUFNLEVBQUUsSUFBSTtRQUNaLEtBQUssRUFBRSxJQUFJO0tBQ1o7SUFDRDtRQUNFLElBQUksRUFBRSx3REFBd0Q7UUFDOUQsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDO1FBQ2hCLE1BQU0sRUFBRSxJQUFJO1FBQ1osS0FBSyxFQUFFLHNCQUFzQjtLQUM5QjtJQUNEO1FBQ0UsSUFBSSxFQUFFLGtEQUFrRDtRQUN4RCxFQUFFLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztRQUMzQixNQUFNLEVBQUUsSUFBSTtRQUNaLEtBQUssRUFBRSxpQ0FBaUM7S0FDekM7SUFDRDtRQUNFLElBQUksRUFBRSwrQ0FBK0M7UUFDckQsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFLGtCQUFrQixDQUFDO1FBQ3BDLEtBQUssRUFBRSxvQkFBb0I7S0FDNUI7Q0FDRixDQUFDO0tBQ0QsTUFBTSxDQUFDO0lBQ047UUFDRSxJQUFJLEVBQUUsa0RBQWtEO1FBQ3hELFVBQVUsRUFBRSxDQUFDLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLEVBQUUsRUFBRSxDQUNyRSxLQUFLLFFBQVEsb0JBQW9CLG1CQUFtQixvQkFBb0IsbUJBQW1CLHFCQUFxQixRQUFRLHFCQUFxQixtQkFBbUIsZ0JBQWdCLG1CQUFtQixZQUFZO0tBQ2xOO0NBQ0YsQ0FBQyxDQUFBO0FBRUosa0JBQWUseUJBQXlCLENBQUEifQ==
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const utils_1 = require("@medusajs/framework/utils");
4
+ const ShipmentInvoiceCoordinator = utils_1.model
5
+ .define({
6
+ name: "shipment_invoice_coordinator",
7
+ tableName: "documents_shipment_invoice_coordinator",
8
+ }, {
9
+ id: utils_1.model.id({ prefix: "doccoord" }).primaryKey(),
10
+ order_id: utils_1.model.text(),
11
+ state: utils_1.model.enum(["idle", "processing", "completed"]).default("idle"),
12
+ candidate_fulfillment_id: utils_1.model.text().nullable(),
13
+ carrier_assignment_id: utils_1.model.text().nullable(),
14
+ invoice_document_id: utils_1.model.text().nullable(),
15
+ invoice_artifact_id: utils_1.model.text().nullable(),
16
+ attempt_token: utils_1.model.text().nullable(),
17
+ lease_started_at: utils_1.model.dateTime().nullable(),
18
+ lease_expires_at: utils_1.model.dateTime().nullable(),
19
+ })
20
+ .indexes([
21
+ {
22
+ name: "IDX_documents_shipment_coordinator_order_unique",
23
+ on: ["order_id"],
24
+ unique: true,
25
+ where: null,
26
+ },
27
+ {
28
+ name: "IDX_documents_shipment_coordinator_lease",
29
+ on: ["state", "lease_expires_at"],
30
+ where: "deleted_at IS NULL",
31
+ },
32
+ ])
33
+ .checks([
34
+ {
35
+ name: "CHK_documents_shipment_coordinator_lease_order",
36
+ expression: ({ lease_started_at, lease_expires_at }) => `${lease_started_at} is null or ${lease_expires_at} is null or ${lease_expires_at} > ${lease_started_at}`,
37
+ },
38
+ {
39
+ name: "CHK_documents_shipment_coordinator_state_fields",
40
+ expression: ({ state, attempt_token, lease_started_at, lease_expires_at }) => `((${state} = 'processing' and ${attempt_token} is not null and ${lease_started_at} is not null and ${lease_expires_at} is not null) or (${state} <> 'processing' and ${attempt_token} is null and ${lease_started_at} is null and ${lease_expires_at} is null))`,
41
+ },
42
+ ]);
43
+ exports.default = ShipmentInvoiceCoordinator;
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2hpcG1lbnQtaW52b2ljZS1jb29yZGluYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2RvY3VtZW50cy9tb2RlbHMvc2hpcG1lbnQtaW52b2ljZS1jb29yZGluYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHFEQUFpRDtBQUVqRCxNQUFNLDBCQUEwQixHQUFHLGFBQUs7S0FDckMsTUFBTSxDQUNMO0lBQ0UsSUFBSSxFQUFFLDhCQUE4QjtJQUNwQyxTQUFTLEVBQUUsd0NBQXdDO0NBQ3BELEVBQ0Q7SUFDRSxFQUFFLEVBQUUsYUFBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLFVBQVUsRUFBRTtJQUNqRCxRQUFRLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRTtJQUN0QixLQUFLLEVBQUUsYUFBSyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO0lBQ3RFLHdCQUF3QixFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDakQscUJBQXFCLEVBQUUsYUFBSyxDQUFDLElBQUksRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM5QyxtQkFBbUIsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzVDLG1CQUFtQixFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDNUMsYUFBYSxFQUFFLGFBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDdEMsZ0JBQWdCLEVBQUUsYUFBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVEsRUFBRTtJQUM3QyxnQkFBZ0IsRUFBRSxhQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQzlDLENBQ0Y7S0FDQSxPQUFPLENBQUM7SUFDUDtRQUNFLElBQUksRUFBRSxpREFBaUQ7UUFDdkQsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDO1FBQ2hCLE1BQU0sRUFBRSxJQUFJO1FBQ1osS0FBSyxFQUFFLElBQUk7S0FDWjtJQUNEO1FBQ0UsSUFBSSxFQUFFLDBDQUEwQztRQUNoRCxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLENBQUM7UUFDakMsS0FBSyxFQUFFLG9CQUFvQjtLQUM1QjtDQUNGLENBQUM7S0FDRCxNQUFNLENBQUM7SUFDTjtRQUNFLElBQUksRUFBRSxnREFBZ0Q7UUFDdEQsVUFBVSxFQUFFLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLEVBQUUsQ0FDckQsR0FBRyxnQkFBZ0IsZUFBZSxnQkFBZ0IsZUFBZSxnQkFBZ0IsTUFBTSxnQkFBZ0IsRUFBRTtLQUM1RztJQUNEO1FBQ0UsSUFBSSxFQUFFLGlEQUFpRDtRQUN2RCxVQUFVLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsRUFBRSxFQUFFLENBQzNFLEtBQUssS0FBSyx1QkFBdUIsYUFBYSxvQkFBb0IsZ0JBQWdCLG9CQUFvQixnQkFBZ0IscUJBQXFCLEtBQUssd0JBQXdCLGFBQWEsZ0JBQWdCLGdCQUFnQixnQkFBZ0IsZ0JBQWdCLFlBQVk7S0FDcFE7Q0FDRixDQUFDLENBQUE7QUFFSixrQkFBZSwwQkFBMEIsQ0FBQSJ9