@dainamite/cpq 0.2.2
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.
- package/CHANGELOG.md +70 -0
- package/LICENSE +21 -0
- package/MIGRATION.md +236 -0
- package/README.md +108 -0
- package/dist/modules/cpq/acl.js +30 -0
- package/dist/modules/cpq/acl.js.map +7 -0
- package/dist/modules/cpq/api/_helpers/handleArcError.js +37 -0
- package/dist/modules/cpq/api/_helpers/handleArcError.js.map +7 -0
- package/dist/modules/cpq/api/attribute-options/route.js +47 -0
- package/dist/modules/cpq/api/attribute-options/route.js.map +7 -0
- package/dist/modules/cpq/api/bundle-slots/route.js +101 -0
- package/dist/modules/cpq/api/bundle-slots/route.js.map +7 -0
- package/dist/modules/cpq/api/bundle-tree/route.js +28 -0
- package/dist/modules/cpq/api/bundle-tree/route.js.map +7 -0
- package/dist/modules/cpq/api/context.js +29 -0
- package/dist/modules/cpq/api/context.js.map +7 -0
- package/dist/modules/cpq/api/inventory/assets/route.js +113 -0
- package/dist/modules/cpq/api/inventory/assets/route.js.map +7 -0
- package/dist/modules/cpq/api/inventory/assets/status/route.js +35 -0
- package/dist/modules/cpq/api/inventory/assets/status/route.js.map +7 -0
- package/dist/modules/cpq/api/inventory/customer/[customerId]/parent-items/route.js +30 -0
- package/dist/modules/cpq/api/inventory/customer/[customerId]/parent-items/route.js.map +7 -0
- package/dist/modules/cpq/api/inventory/customer/[customerId]/route.js +31 -0
- package/dist/modules/cpq/api/inventory/customer/[customerId]/route.js.map +7 -0
- package/dist/modules/cpq/api/inventory/subscription-items/route.js +99 -0
- package/dist/modules/cpq/api/inventory/subscription-items/route.js.map +7 -0
- package/dist/modules/cpq/api/inventory/subscriptions/[subscriptionId]/change-log/route.js +57 -0
- package/dist/modules/cpq/api/inventory/subscriptions/[subscriptionId]/change-log/route.js.map +7 -0
- package/dist/modules/cpq/api/inventory/subscriptions/expiring/route.js +62 -0
- package/dist/modules/cpq/api/inventory/subscriptions/expiring/route.js.map +7 -0
- package/dist/modules/cpq/api/inventory/subscriptions/route.js +116 -0
- package/dist/modules/cpq/api/inventory/subscriptions/route.js.map +7 -0
- package/dist/modules/cpq/api/inventory/subscriptions/status/route.js +35 -0
- package/dist/modules/cpq/api/inventory/subscriptions/status/route.js.map +7 -0
- package/dist/modules/cpq/api/offering-components/route.js +91 -0
- package/dist/modules/cpq/api/offering-components/route.js.map +7 -0
- package/dist/modules/cpq/api/orders/[orderId]/activate/route.js +39 -0
- package/dist/modules/cpq/api/orders/[orderId]/activate/route.js.map +7 -0
- package/dist/modules/cpq/api/orders/[orderId]/route.js +28 -0
- package/dist/modules/cpq/api/orders/[orderId]/route.js.map +7 -0
- package/dist/modules/cpq/api/orders/[orderId]/status/route.js +38 -0
- package/dist/modules/cpq/api/orders/[orderId]/status/route.js.map +7 -0
- package/dist/modules/cpq/api/orders/route.js +71 -0
- package/dist/modules/cpq/api/orders/route.js.map +7 -0
- package/dist/modules/cpq/api/price-rules/route.js +180 -0
- package/dist/modules/cpq/api/price-rules/route.js.map +7 -0
- package/dist/modules/cpq/api/pricing-table-entries/route.js +142 -0
- package/dist/modules/cpq/api/pricing-table-entries/route.js.map +7 -0
- package/dist/modules/cpq/api/pricing-tables/route.js +179 -0
- package/dist/modules/cpq/api/pricing-tables/route.js.map +7 -0
- package/dist/modules/cpq/api/product-attributes/route.js +160 -0
- package/dist/modules/cpq/api/product-attributes/route.js.map +7 -0
- package/dist/modules/cpq/api/product-charges/route.js +166 -0
- package/dist/modules/cpq/api/product-charges/route.js.map +7 -0
- package/dist/modules/cpq/api/product-offerings/route.js +294 -0
- package/dist/modules/cpq/api/product-offerings/route.js.map +7 -0
- package/dist/modules/cpq/api/product-relationships/route.js +144 -0
- package/dist/modules/cpq/api/product-relationships/route.js.map +7 -0
- package/dist/modules/cpq/api/product-specifications/route.js +292 -0
- package/dist/modules/cpq/api/product-specifications/route.js.map +7 -0
- package/dist/modules/cpq/api/quotes/[quoteId]/cancel-meta/route.js +71 -0
- package/dist/modules/cpq/api/quotes/[quoteId]/cancel-meta/route.js.map +7 -0
- package/dist/modules/cpq/api/quotes/[quoteId]/clone/route.js +29 -0
- package/dist/modules/cpq/api/quotes/[quoteId]/clone/route.js.map +7 -0
- package/dist/modules/cpq/api/quotes/[quoteId]/items/[lineId]/route.js +54 -0
- package/dist/modules/cpq/api/quotes/[quoteId]/items/[lineId]/route.js.map +7 -0
- package/dist/modules/cpq/api/quotes/[quoteId]/items/route.js +27 -0
- package/dist/modules/cpq/api/quotes/[quoteId]/items/route.js.map +7 -0
- package/dist/modules/cpq/api/quotes/[quoteId]/merge-meta/route.js +72 -0
- package/dist/modules/cpq/api/quotes/[quoteId]/merge-meta/route.js.map +7 -0
- package/dist/modules/cpq/api/quotes/[quoteId]/recalculate/route.js +35 -0
- package/dist/modules/cpq/api/quotes/[quoteId]/recalculate/route.js.map +7 -0
- package/dist/modules/cpq/api/quotes/[quoteId]/route.js +102 -0
- package/dist/modules/cpq/api/quotes/[quoteId]/route.js.map +7 -0
- package/dist/modules/cpq/api/quotes/[quoteId]/status/route.js +27 -0
- package/dist/modules/cpq/api/quotes/[quoteId]/status/route.js.map +7 -0
- package/dist/modules/cpq/api/quotes/[quoteId]/target-subscriptions/[targetId]/route.js +79 -0
- package/dist/modules/cpq/api/quotes/[quoteId]/target-subscriptions/[targetId]/route.js.map +7 -0
- package/dist/modules/cpq/api/quotes/[quoteId]/target-subscriptions/route.js +95 -0
- package/dist/modules/cpq/api/quotes/[quoteId]/target-subscriptions/route.js.map +7 -0
- package/dist/modules/cpq/api/quotes/attributes/route.js +52 -0
- package/dist/modules/cpq/api/quotes/attributes/route.js.map +7 -0
- package/dist/modules/cpq/api/quotes/from-subscription/route.js +72 -0
- package/dist/modules/cpq/api/quotes/from-subscription/route.js.map +7 -0
- package/dist/modules/cpq/api/quotes/price/route.js +69 -0
- package/dist/modules/cpq/api/quotes/price/route.js.map +7 -0
- package/dist/modules/cpq/api/quotes/route.js +97 -0
- package/dist/modules/cpq/api/quotes/route.js.map +7 -0
- package/dist/modules/cpq/api/quotes/validate-relationships/route.js +86 -0
- package/dist/modules/cpq/api/quotes/validate-relationships/route.js.map +7 -0
- package/dist/modules/cpq/api/resolveQuotingService.js +7 -0
- package/dist/modules/cpq/api/resolveQuotingService.js.map +7 -0
- package/dist/modules/cpq/api/wizards/resolve/route.js +38 -0
- package/dist/modules/cpq/api/wizards/resolve/route.js.map +7 -0
- package/dist/modules/cpq/api/wizards/route.js +111 -0
- package/dist/modules/cpq/api/wizards/route.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/inventory/AssetsTable.js +136 -0
- package/dist/modules/cpq/backend/cpq/inventory/AssetsTable.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/inventory/SubscriptionsTable.js +185 -0
- package/dist/modules/cpq/backend/cpq/inventory/SubscriptionsTable.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/inventory/assets/[id]/page.js +343 -0
- package/dist/modules/cpq/backend/cpq/inventory/assets/[id]/page.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/inventory/assets/[id]/page.meta.js +13 -0
- package/dist/modules/cpq/backend/cpq/inventory/assets/[id]/page.meta.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/inventory/page.js +35 -0
- package/dist/modules/cpq/backend/cpq/inventory/page.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/inventory/page.meta.js +18 -0
- package/dist/modules/cpq/backend/cpq/inventory/page.meta.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/inventory/shared.js +20 -0
- package/dist/modules/cpq/backend/cpq/inventory/shared.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/inventory/subscriptions/[id]/page.js +794 -0
- package/dist/modules/cpq/backend/cpq/inventory/subscriptions/[id]/page.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/inventory/subscriptions/[id]/page.meta.js +13 -0
- package/dist/modules/cpq/backend/cpq/inventory/subscriptions/[id]/page.meta.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/offerings/[id]/page.js +917 -0
- package/dist/modules/cpq/backend/cpq/offerings/[id]/page.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/offerings/page.js +405 -0
- package/dist/modules/cpq/backend/cpq/offerings/page.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/offerings/page.meta.js +18 -0
- package/dist/modules/cpq/backend/cpq/offerings/page.meta.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/orders/[id]/page.js +677 -0
- package/dist/modules/cpq/backend/cpq/orders/[id]/page.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/orders/page.js +134 -0
- package/dist/modules/cpq/backend/cpq/orders/page.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/orders/page.meta.js +18 -0
- package/dist/modules/cpq/backend/cpq/orders/page.meta.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/price-rules/PriceRuleForm.js +272 -0
- package/dist/modules/cpq/backend/cpq/price-rules/PriceRuleForm.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/price-rules/[id]/page.js +407 -0
- package/dist/modules/cpq/backend/cpq/price-rules/[id]/page.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/price-rules/[id]/page.meta.js +13 -0
- package/dist/modules/cpq/backend/cpq/price-rules/[id]/page.meta.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/price-rules/page.js +211 -0
- package/dist/modules/cpq/backend/cpq/price-rules/page.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/price-rules/page.meta.js +18 -0
- package/dist/modules/cpq/backend/cpq/price-rules/page.meta.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/pricing/[id]/EntriesEditor.js +275 -0
- package/dist/modules/cpq/backend/cpq/pricing/[id]/EntriesEditor.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/pricing/[id]/ImportPreview.js +112 -0
- package/dist/modules/cpq/backend/cpq/pricing/[id]/ImportPreview.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/pricing/[id]/page.js +492 -0
- package/dist/modules/cpq/backend/cpq/pricing/[id]/page.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/pricing/[id]/xlsxExport.js +50 -0
- package/dist/modules/cpq/backend/cpq/pricing/[id]/xlsxExport.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/pricing/[id]/xlsxImport.js +249 -0
- package/dist/modules/cpq/backend/cpq/pricing/[id]/xlsxImport.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/pricing/page.js +87 -0
- package/dist/modules/cpq/backend/cpq/pricing/page.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/pricing/page.meta.js +18 -0
- package/dist/modules/cpq/backend/cpq/pricing/page.meta.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/quotes/[id]/_components/ArcQuoteConfigurator.js +652 -0
- package/dist/modules/cpq/backend/cpq/quotes/[id]/_components/ArcQuoteConfigurator.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/quotes/[id]/page.js +1289 -0
- package/dist/modules/cpq/backend/cpq/quotes/[id]/page.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/quotes/page.js +283 -0
- package/dist/modules/cpq/backend/cpq/quotes/page.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/quotes/page.meta.js +18 -0
- package/dist/modules/cpq/backend/cpq/quotes/page.meta.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/specifications/[id]/DependsOnRulesEditor.js +214 -0
- package/dist/modules/cpq/backend/cpq/specifications/[id]/DependsOnRulesEditor.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/specifications/[id]/page.js +1399 -0
- package/dist/modules/cpq/backend/cpq/specifications/[id]/page.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/specifications/page.js +148 -0
- package/dist/modules/cpq/backend/cpq/specifications/page.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/specifications/page.meta.js +18 -0
- package/dist/modules/cpq/backend/cpq/specifications/page.meta.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/wizards/[definitionCode]/detail/page.js +204 -0
- package/dist/modules/cpq/backend/cpq/wizards/[definitionCode]/detail/page.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/wizards/[definitionCode]/page.js +191 -0
- package/dist/modules/cpq/backend/cpq/wizards/[definitionCode]/page.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/wizards/page.js +119 -0
- package/dist/modules/cpq/backend/cpq/wizards/page.js.map +7 -0
- package/dist/modules/cpq/backend/cpq/wizards/page.meta.js +18 -0
- package/dist/modules/cpq/backend/cpq/wizards/page.meta.js.map +7 -0
- package/dist/modules/cpq/ce.js +151 -0
- package/dist/modules/cpq/ce.js.map +7 -0
- package/dist/modules/cpq/cli.js +11 -0
- package/dist/modules/cpq/cli.js.map +7 -0
- package/dist/modules/cpq/components/CpqListView.js +265 -0
- package/dist/modules/cpq/components/CpqListView.js.map +7 -0
- package/dist/modules/cpq/components/NumberInput.js +95 -0
- package/dist/modules/cpq/components/NumberInput.js.map +7 -0
- package/dist/modules/cpq/components/StatusPath.js +60 -0
- package/dist/modules/cpq/components/StatusPath.js.map +7 -0
- package/dist/modules/cpq/components/statusMaps.js +66 -0
- package/dist/modules/cpq/components/statusMaps.js.map +7 -0
- package/dist/modules/cpq/components/useCpqRowActions.js +125 -0
- package/dist/modules/cpq/components/useCpqRowActions.js.map +7 -0
- package/dist/modules/cpq/data/entities.js +1556 -0
- package/dist/modules/cpq/data/entities.js.map +7 -0
- package/dist/modules/cpq/data/validators.js +575 -0
- package/dist/modules/cpq/data/validators.js.map +7 -0
- package/dist/modules/cpq/di.js +57 -0
- package/dist/modules/cpq/di.js.map +7 -0
- package/dist/modules/cpq/events.js +50 -0
- package/dist/modules/cpq/events.js.map +7 -0
- package/dist/modules/cpq/index.js +16 -0
- package/dist/modules/cpq/index.js.map +7 -0
- package/dist/modules/cpq/lib/seeds/api.js +32 -0
- package/dist/modules/cpq/lib/seeds/api.js.map +7 -0
- package/dist/modules/cpq/lib/seeds/tenant-provisioning.js +158 -0
- package/dist/modules/cpq/lib/seeds/tenant-provisioning.js.map +7 -0
- package/dist/modules/cpq/lib/seeds.js +6 -0
- package/dist/modules/cpq/lib/seeds.js.map +7 -0
- package/dist/modules/cpq/migrations/Migration20260220220000_cpq.js +40 -0
- package/dist/modules/cpq/migrations/Migration20260220220000_cpq.js.map +7 -0
- package/dist/modules/cpq/migrations/Migration20260330000000_cpq_product_domain.js +54 -0
- package/dist/modules/cpq/migrations/Migration20260330000000_cpq_product_domain.js.map +7 -0
- package/dist/modules/cpq/migrations/Migration20260331000000_cpq_charge_unique_per_offering.js +15 -0
- package/dist/modules/cpq/migrations/Migration20260331000000_cpq_charge_unique_per_offering.js.map +7 -0
- package/dist/modules/cpq/migrations/Migration20260401000000_cpq_quoting_v2.js +62 -0
- package/dist/modules/cpq/migrations/Migration20260401000000_cpq_quoting_v2.js.map +7 -0
- package/dist/modules/cpq/migrations/Migration20260402000000_cpq_workflows.js +56 -0
- package/dist/modules/cpq/migrations/Migration20260402000000_cpq_workflows.js.map +7 -0
- package/dist/modules/cpq/migrations/Migration20260407000000_cpq_pricing_tables_v2.js +26 -0
- package/dist/modules/cpq/migrations/Migration20260407000000_cpq_pricing_tables_v2.js.map +7 -0
- package/dist/modules/cpq/migrations/Migration20260407100000_cpq_price_rules.js +37 -0
- package/dist/modules/cpq/migrations/Migration20260407100000_cpq_price_rules.js.map +7 -0
- package/dist/modules/cpq/migrations/Migration20260408000000_cpq_price_rules.js +35 -0
- package/dist/modules/cpq/migrations/Migration20260408000000_cpq_price_rules.js.map +7 -0
- package/dist/modules/cpq/migrations/Migration20260410000000_cpq_drop_datacentres_inventory.js +21 -0
- package/dist/modules/cpq/migrations/Migration20260410000000_cpq_drop_datacentres_inventory.js.map +7 -0
- package/dist/modules/cpq/migrations/Migration20260410000000_cpq_wizard_rename.js +46 -0
- package/dist/modules/cpq/migrations/Migration20260410000000_cpq_wizard_rename.js.map +7 -0
- package/dist/modules/cpq/migrations/Migration20260410100000_cpq_inventory.js +118 -0
- package/dist/modules/cpq/migrations/Migration20260410100000_cpq_inventory.js.map +7 -0
- package/dist/modules/cpq/migrations/Migration20260411000000_cpq_orders.js +63 -0
- package/dist/modules/cpq/migrations/Migration20260411000000_cpq_orders.js.map +7 -0
- package/dist/modules/cpq/migrations/Migration20260412000000_cpq_bundled_offerings.js +28 -0
- package/dist/modules/cpq/migrations/Migration20260412000000_cpq_bundled_offerings.js.map +7 -0
- package/dist/modules/cpq/migrations/Migration20260504064621_cpq_arc.js +36 -0
- package/dist/modules/cpq/migrations/Migration20260504064621_cpq_arc.js.map +7 -0
- package/dist/modules/cpq/migrations/Migration20260514000000_cpq_spec_merge_retired_deprecated.js +14 -0
- package/dist/modules/cpq/migrations/Migration20260514000000_cpq_spec_merge_retired_deprecated.js.map +7 -0
- package/dist/modules/cpq/migrations/Migration20260514100000_cpq_offering_merge_retired_deprecated.js +14 -0
- package/dist/modules/cpq/migrations/Migration20260514100000_cpq_offering_merge_retired_deprecated.js.map +7 -0
- package/dist/modules/cpq/migrations/Migration20260514110000_cpq_list_search_indexes.js +58 -0
- package/dist/modules/cpq/migrations/Migration20260514110000_cpq_list_search_indexes.js.map +7 -0
- package/dist/modules/cpq/migrations/Migration20260515000000_cpq_inventory_subscriptions_search_indexes.js +29 -0
- package/dist/modules/cpq/migrations/Migration20260515000000_cpq_inventory_subscriptions_search_indexes.js.map +7 -0
- package/dist/modules/cpq/services/cpqBundleService.js +447 -0
- package/dist/modules/cpq/services/cpqBundleService.js.map +7 -0
- package/dist/modules/cpq/services/cpqInventoryService.js +1371 -0
- package/dist/modules/cpq/services/cpqInventoryService.js.map +7 -0
- package/dist/modules/cpq/services/cpqOrderService.js +901 -0
- package/dist/modules/cpq/services/cpqOrderService.js.map +7 -0
- package/dist/modules/cpq/services/cpqPricingService.js +289 -0
- package/dist/modules/cpq/services/cpqPricingService.js.map +7 -0
- package/dist/modules/cpq/services/cpqProductService.js +204 -0
- package/dist/modules/cpq/services/cpqProductService.js.map +7 -0
- package/dist/modules/cpq/services/cpqQuotingService.js +1867 -0
- package/dist/modules/cpq/services/cpqQuotingService.js.map +7 -0
- package/dist/modules/cpq/services/cpqValidationService.js +234 -0
- package/dist/modules/cpq/services/cpqValidationService.js.map +7 -0
- package/dist/modules/cpq/services/cpqWizardService.js +137 -0
- package/dist/modules/cpq/services/cpqWizardService.js.map +7 -0
- package/dist/modules/cpq/services/types.js +114 -0
- package/dist/modules/cpq/services/types.js.map +7 -0
- package/dist/modules/cpq/setup.js +49 -0
- package/dist/modules/cpq/setup.js.map +7 -0
- package/dist/modules/cpq/subscribers/subscription-amended-log.js +18 -0
- package/dist/modules/cpq/subscribers/subscription-amended-log.js.map +7 -0
- package/dist/modules/cpq/subscribers/subscription-cancelled-log.js +19 -0
- package/dist/modules/cpq/subscribers/subscription-cancelled-log.js.map +7 -0
- package/dist/modules/cpq/subscribers/subscription-merged-log.js +20 -0
- package/dist/modules/cpq/subscribers/subscription-merged-log.js.map +7 -0
- package/dist/modules/cpq/subscribers/subscription-renewed-log.js +18 -0
- package/dist/modules/cpq/subscribers/subscription-renewed-log.js.map +7 -0
- package/dist/modules/cpq/subscribers/subscription-superseded-log.js +18 -0
- package/dist/modules/cpq/subscribers/subscription-superseded-log.js.map +7 -0
- package/dist/modules/cpq/widgets/injection/customer-inventory/widget.client.js +192 -0
- package/dist/modules/cpq/widgets/injection/customer-inventory/widget.client.js.map +7 -0
- package/dist/modules/cpq/widgets/injection/customer-inventory/widget.js +17 -0
- package/dist/modules/cpq/widgets/injection/customer-inventory/widget.js.map +7 -0
- package/dist/modules/cpq/widgets/injection/order-cpq-tab/widget.client.js +79 -0
- package/dist/modules/cpq/widgets/injection/order-cpq-tab/widget.client.js.map +7 -0
- package/dist/modules/cpq/widgets/injection/order-cpq-tab/widget.js +17 -0
- package/dist/modules/cpq/widgets/injection/order-cpq-tab/widget.js.map +7 -0
- package/dist/modules/cpq/widgets/injection/quote-configurator/widget.client.js +181 -0
- package/dist/modules/cpq/widgets/injection/quote-configurator/widget.client.js.map +7 -0
- package/dist/modules/cpq/widgets/injection/quote-configurator/widget.js +17 -0
- package/dist/modules/cpq/widgets/injection/quote-configurator/widget.js.map +7 -0
- package/dist/modules/cpq/widgets/injection-table.js +44 -0
- package/dist/modules/cpq/widgets/injection-table.js.map +7 -0
- package/dist/modules/cpq/workflows/WizardRunner.js +113 -0
- package/dist/modules/cpq/workflows/WizardRunner.js.map +7 -0
- package/dist/modules/cpq/workflows/WizardTrigger.js +116 -0
- package/dist/modules/cpq/workflows/WizardTrigger.js.map +7 -0
- package/dist/modules/cpq/workflows/engine.js +188 -0
- package/dist/modules/cpq/workflows/engine.js.map +7 -0
- package/dist/modules/cpq/workflows/registry.js +16 -0
- package/dist/modules/cpq/workflows/registry.js.map +7 -0
- package/dist/modules/cpq/workflows/steps/CustomerSelectStep.js +119 -0
- package/dist/modules/cpq/workflows/steps/CustomerSelectStep.js.map +7 -0
- package/dist/modules/cpq/workflows/steps/InventorySelectStep.js +24 -0
- package/dist/modules/cpq/workflows/steps/InventorySelectStep.js.map +7 -0
- package/dist/modules/cpq/workflows/steps/ItemListStep.js +115 -0
- package/dist/modules/cpq/workflows/steps/ItemListStep.js.map +7 -0
- package/dist/modules/cpq/workflows/steps/OfferingSelectStep.js +327 -0
- package/dist/modules/cpq/workflows/steps/OfferingSelectStep.js.map +7 -0
- package/dist/modules/cpq/workflows/steps/ProductConfigureStep.js +231 -0
- package/dist/modules/cpq/workflows/steps/ProductConfigureStep.js.map +7 -0
- package/dist/modules/cpq/workflows/steps/ReviewStep.js +152 -0
- package/dist/modules/cpq/workflows/steps/ReviewStep.js.map +7 -0
- package/dist/modules/cpq/workflows/steps/index.js +49 -0
- package/dist/modules/cpq/workflows/steps/index.js.map +7 -0
- package/dist/modules/cpq/workflows/types.js +1 -0
- package/dist/modules/cpq/workflows/types.js.map +7 -0
- package/package.json +150 -0
- package/src/modules/cpq/__integration__/TC-CPQ-001.spec.ts +177 -0
- package/src/modules/cpq/__integration__/TC-CPQ-002.spec.ts +123 -0
- package/src/modules/cpq/__integration__/TC-CPQ-003.spec.ts +115 -0
- package/src/modules/cpq/__integration__/TC-CPQ-004.spec.ts +184 -0
- package/src/modules/cpq/__integration__/TC-CPQ-005.spec.ts +43 -0
- package/src/modules/cpq/__integration__/TC-CPQ-006.spec.ts +87 -0
- package/src/modules/cpq/__integration__/TC-CPQ-007.spec.ts +79 -0
- package/src/modules/cpq/__integration__/TC-CPQ-008.spec.ts +55 -0
- package/src/modules/cpq/__integration__/TC-CPQ-009.spec.ts +45 -0
- package/src/modules/cpq/__integration__/TC-CPQ-010.spec.ts +54 -0
- package/src/modules/cpq/__integration__/TC-CPQ-011.spec.ts +24 -0
- package/src/modules/cpq/__integration__/TC-CPQ-012.spec.ts +62 -0
- package/src/modules/cpq/__integration__/TC-CPQ-ARC-001.spec.ts +52 -0
- package/src/modules/cpq/__integration__/TC-CPQ-ARC-002.spec.ts +65 -0
- package/src/modules/cpq/__integration__/TC-CPQ-ARC-003.spec.ts +107 -0
- package/src/modules/cpq/__integration__/TC-CPQ-ARC-004.spec.ts +74 -0
- package/src/modules/cpq/__integration__/TC-CPQ-ARC-005.spec.ts +86 -0
- package/src/modules/cpq/__integration__/TC-CPQ-ARC-006.spec.ts +79 -0
- package/src/modules/cpq/__integration__/TC-CPQ-ARC-007.spec.ts +63 -0
- package/src/modules/cpq/__integration__/TC-CPQ-ARC-008.spec.ts +62 -0
- package/src/modules/cpq/__integration__/TC-CPQ-ARC-009.spec.ts +62 -0
- package/src/modules/cpq/__integration__/TC-CPQ-ARC-010.spec.ts +59 -0
- package/src/modules/cpq/__integration__/TC-CPQ-ARC-011.spec.ts +128 -0
- package/src/modules/cpq/__integration__/_helpers/cpqArcFixtures.ts +208 -0
- package/src/modules/cpq/__tests__/package-isolation.test.ts +232 -0
- package/src/modules/cpq/acl.ts +26 -0
- package/src/modules/cpq/api/_helpers/__tests__/handleArcError.test.ts +117 -0
- package/src/modules/cpq/api/_helpers/handleArcError.ts +81 -0
- package/src/modules/cpq/api/attribute-options/route.ts +55 -0
- package/src/modules/cpq/api/bundle-slots/route.ts +112 -0
- package/src/modules/cpq/api/bundle-tree/route.ts +31 -0
- package/src/modules/cpq/api/context.ts +39 -0
- package/src/modules/cpq/api/inventory/assets/route.ts +123 -0
- package/src/modules/cpq/api/inventory/assets/status/route.ts +34 -0
- package/src/modules/cpq/api/inventory/customer/[customerId]/parent-items/route.ts +30 -0
- package/src/modules/cpq/api/inventory/customer/[customerId]/route.ts +31 -0
- package/src/modules/cpq/api/inventory/subscription-items/route.ts +107 -0
- package/src/modules/cpq/api/inventory/subscriptions/[subscriptionId]/change-log/route.ts +64 -0
- package/src/modules/cpq/api/inventory/subscriptions/expiring/route.ts +66 -0
- package/src/modules/cpq/api/inventory/subscriptions/route.ts +126 -0
- package/src/modules/cpq/api/inventory/subscriptions/status/route.ts +34 -0
- package/src/modules/cpq/api/offering-components/route.ts +103 -0
- package/src/modules/cpq/api/orders/[orderId]/activate/route.ts +48 -0
- package/src/modules/cpq/api/orders/[orderId]/route.ts +28 -0
- package/src/modules/cpq/api/orders/[orderId]/status/route.ts +38 -0
- package/src/modules/cpq/api/orders/route.ts +77 -0
- package/src/modules/cpq/api/price-rules/route.ts +210 -0
- package/src/modules/cpq/api/pricing-table-entries/route.ts +159 -0
- package/src/modules/cpq/api/pricing-tables/route.ts +202 -0
- package/src/modules/cpq/api/product-attributes/route.ts +175 -0
- package/src/modules/cpq/api/product-charges/route.ts +181 -0
- package/src/modules/cpq/api/product-offerings/route.ts +329 -0
- package/src/modules/cpq/api/product-relationships/route.ts +156 -0
- package/src/modules/cpq/api/product-specifications/route.ts +325 -0
- package/src/modules/cpq/api/quotes/[quoteId]/cancel-meta/route.ts +77 -0
- package/src/modules/cpq/api/quotes/[quoteId]/clone/route.ts +28 -0
- package/src/modules/cpq/api/quotes/[quoteId]/items/[lineId]/route.ts +55 -0
- package/src/modules/cpq/api/quotes/[quoteId]/items/route.ts +26 -0
- package/src/modules/cpq/api/quotes/[quoteId]/merge-meta/route.ts +78 -0
- package/src/modules/cpq/api/quotes/[quoteId]/recalculate/route.ts +34 -0
- package/src/modules/cpq/api/quotes/[quoteId]/route.ts +109 -0
- package/src/modules/cpq/api/quotes/[quoteId]/status/route.ts +26 -0
- package/src/modules/cpq/api/quotes/[quoteId]/target-subscriptions/[targetId]/route.ts +91 -0
- package/src/modules/cpq/api/quotes/[quoteId]/target-subscriptions/route.ts +107 -0
- package/src/modules/cpq/api/quotes/attributes/route.ts +61 -0
- package/src/modules/cpq/api/quotes/from-subscription/route.ts +85 -0
- package/src/modules/cpq/api/quotes/price/route.ts +81 -0
- package/src/modules/cpq/api/quotes/route.ts +114 -0
- package/src/modules/cpq/api/quotes/validate-relationships/route.ts +100 -0
- package/src/modules/cpq/api/resolveQuotingService.ts +11 -0
- package/src/modules/cpq/api/wizards/resolve/route.ts +39 -0
- package/src/modules/cpq/api/wizards/route.ts +127 -0
- package/src/modules/cpq/backend/cpq/inventory/AssetsTable.tsx +166 -0
- package/src/modules/cpq/backend/cpq/inventory/SubscriptionsTable.tsx +251 -0
- package/src/modules/cpq/backend/cpq/inventory/assets/[id]/page.meta.ts +9 -0
- package/src/modules/cpq/backend/cpq/inventory/assets/[id]/page.tsx +440 -0
- package/src/modules/cpq/backend/cpq/inventory/page.meta.ts +16 -0
- package/src/modules/cpq/backend/cpq/inventory/page.tsx +49 -0
- package/src/modules/cpq/backend/cpq/inventory/shared.tsx +32 -0
- package/src/modules/cpq/backend/cpq/inventory/subscriptions/[id]/page.meta.ts +9 -0
- package/src/modules/cpq/backend/cpq/inventory/subscriptions/[id]/page.tsx +1085 -0
- package/src/modules/cpq/backend/cpq/offerings/[id]/page.tsx +1165 -0
- package/src/modules/cpq/backend/cpq/offerings/page.meta.ts +16 -0
- package/src/modules/cpq/backend/cpq/offerings/page.tsx +468 -0
- package/src/modules/cpq/backend/cpq/orders/[id]/page.tsx +921 -0
- package/src/modules/cpq/backend/cpq/orders/page.meta.ts +16 -0
- package/src/modules/cpq/backend/cpq/orders/page.tsx +182 -0
- package/src/modules/cpq/backend/cpq/price-rules/PriceRuleForm.tsx +310 -0
- package/src/modules/cpq/backend/cpq/price-rules/[id]/page.meta.ts +9 -0
- package/src/modules/cpq/backend/cpq/price-rules/[id]/page.tsx +472 -0
- package/src/modules/cpq/backend/cpq/price-rules/page.meta.ts +16 -0
- package/src/modules/cpq/backend/cpq/price-rules/page.tsx +253 -0
- package/src/modules/cpq/backend/cpq/pricing/[id]/EntriesEditor.tsx +431 -0
- package/src/modules/cpq/backend/cpq/pricing/[id]/ImportPreview.tsx +122 -0
- package/src/modules/cpq/backend/cpq/pricing/[id]/page.tsx +588 -0
- package/src/modules/cpq/backend/cpq/pricing/[id]/xlsxExport.ts +90 -0
- package/src/modules/cpq/backend/cpq/pricing/[id]/xlsxImport.ts +338 -0
- package/src/modules/cpq/backend/cpq/pricing/page.meta.ts +16 -0
- package/src/modules/cpq/backend/cpq/pricing/page.tsx +111 -0
- package/src/modules/cpq/backend/cpq/quotes/[id]/_components/ArcQuoteConfigurator.tsx +737 -0
- package/src/modules/cpq/backend/cpq/quotes/[id]/page.tsx +1721 -0
- package/src/modules/cpq/backend/cpq/quotes/page.meta.ts +16 -0
- package/src/modules/cpq/backend/cpq/quotes/page.tsx +370 -0
- package/src/modules/cpq/backend/cpq/specifications/[id]/DependsOnRulesEditor.tsx +300 -0
- package/src/modules/cpq/backend/cpq/specifications/[id]/page.tsx +1722 -0
- package/src/modules/cpq/backend/cpq/specifications/page.meta.ts +16 -0
- package/src/modules/cpq/backend/cpq/specifications/page.tsx +191 -0
- package/src/modules/cpq/backend/cpq/wizards/[definitionCode]/detail/page.tsx +319 -0
- package/src/modules/cpq/backend/cpq/wizards/[definitionCode]/page.tsx +234 -0
- package/src/modules/cpq/backend/cpq/wizards/page.meta.ts +16 -0
- package/src/modules/cpq/backend/cpq/wizards/page.tsx +141 -0
- package/src/modules/cpq/ce.ts +150 -0
- package/src/modules/cpq/cli.ts +10 -0
- package/src/modules/cpq/components/CpqListView.tsx +431 -0
- package/src/modules/cpq/components/NumberInput.tsx +166 -0
- package/src/modules/cpq/components/StatusPath.tsx +116 -0
- package/src/modules/cpq/components/statusMaps.ts +148 -0
- package/src/modules/cpq/components/useCpqRowActions.tsx +183 -0
- package/src/modules/cpq/data/__tests__/validators.arc.test.ts +271 -0
- package/src/modules/cpq/data/__tests__/validators.test.ts +782 -0
- package/src/modules/cpq/data/entities.ts +1467 -0
- package/src/modules/cpq/data/validators.ts +663 -0
- package/src/modules/cpq/di.ts +70 -0
- package/src/modules/cpq/events.ts +62 -0
- package/src/modules/cpq/index.ts +15 -0
- package/src/modules/cpq/lib/seeds/__tests__/api.test.ts +86 -0
- package/src/modules/cpq/lib/seeds/__tests__/tenant-provisioning.test.ts +349 -0
- package/src/modules/cpq/lib/seeds/api.ts +119 -0
- package/src/modules/cpq/lib/seeds/tenant-provisioning.ts +239 -0
- package/src/modules/cpq/lib/seeds.ts +18 -0
- package/src/modules/cpq/migrations/.snapshot-open-mercato.json +7473 -0
- package/src/modules/cpq/migrations/Migration20260220220000_cpq.ts +51 -0
- package/src/modules/cpq/migrations/Migration20260330000000_cpq_product_domain.ts +70 -0
- package/src/modules/cpq/migrations/Migration20260331000000_cpq_charge_unique_per_offering.ts +15 -0
- package/src/modules/cpq/migrations/Migration20260401000000_cpq_quoting_v2.ts +73 -0
- package/src/modules/cpq/migrations/Migration20260402000000_cpq_workflows.ts +59 -0
- package/src/modules/cpq/migrations/Migration20260407000000_cpq_pricing_tables_v2.ts +30 -0
- package/src/modules/cpq/migrations/Migration20260407100000_cpq_price_rules.ts +36 -0
- package/src/modules/cpq/migrations/Migration20260408000000_cpq_price_rules.ts +33 -0
- package/src/modules/cpq/migrations/Migration20260410000000_cpq_drop_datacentres_inventory.ts +22 -0
- package/src/modules/cpq/migrations/Migration20260410000000_cpq_wizard_rename.ts +56 -0
- package/src/modules/cpq/migrations/Migration20260410100000_cpq_inventory.ts +118 -0
- package/src/modules/cpq/migrations/Migration20260411000000_cpq_orders.ts +62 -0
- package/src/modules/cpq/migrations/Migration20260412000000_cpq_bundled_offerings.ts +33 -0
- package/src/modules/cpq/migrations/Migration20260504064621_cpq_arc.ts +68 -0
- package/src/modules/cpq/migrations/Migration20260514000000_cpq_spec_merge_retired_deprecated.ts +30 -0
- package/src/modules/cpq/migrations/Migration20260514100000_cpq_offering_merge_retired_deprecated.ts +27 -0
- package/src/modules/cpq/migrations/Migration20260514110000_cpq_list_search_indexes.ts +82 -0
- package/src/modules/cpq/migrations/Migration20260515000000_cpq_inventory_subscriptions_search_indexes.ts +52 -0
- package/src/modules/cpq/services/__tests__/_helpers/mockEm.ts +59 -0
- package/src/modules/cpq/services/__tests__/cpqBundleService.test.ts +661 -0
- package/src/modules/cpq/services/__tests__/cpqInventoryService.arc.test.ts +357 -0
- package/src/modules/cpq/services/__tests__/cpqInventoryService.test.ts +718 -0
- package/src/modules/cpq/services/__tests__/cpqOrderService.test.ts +603 -0
- package/src/modules/cpq/services/__tests__/cpqPricingService.test.ts +1012 -0
- package/src/modules/cpq/services/__tests__/cpqProductService.test.ts +603 -0
- package/src/modules/cpq/services/__tests__/cpqQuotingService.arc.test.ts +143 -0
- package/src/modules/cpq/services/__tests__/cpqQuotingService.test.ts +658 -0
- package/src/modules/cpq/services/__tests__/cpqValidationService.test.ts +811 -0
- package/src/modules/cpq/services/__tests__/cpqWizardService.test.ts +389 -0
- package/src/modules/cpq/services/__tests__/types.test.ts +359 -0
- package/src/modules/cpq/services/cpqBundleService.ts +671 -0
- package/src/modules/cpq/services/cpqInventoryService.ts +1929 -0
- package/src/modules/cpq/services/cpqOrderService.ts +1230 -0
- package/src/modules/cpq/services/cpqPricingService.ts +412 -0
- package/src/modules/cpq/services/cpqProductService.ts +311 -0
- package/src/modules/cpq/services/cpqQuotingService.ts +2638 -0
- package/src/modules/cpq/services/cpqValidationService.ts +323 -0
- package/src/modules/cpq/services/cpqWizardService.ts +204 -0
- package/src/modules/cpq/services/types.ts +303 -0
- package/src/modules/cpq/setup.ts +63 -0
- package/src/modules/cpq/subscribers/subscription-amended-log.ts +20 -0
- package/src/modules/cpq/subscribers/subscription-cancelled-log.ts +19 -0
- package/src/modules/cpq/subscribers/subscription-merged-log.ts +22 -0
- package/src/modules/cpq/subscribers/subscription-renewed-log.ts +18 -0
- package/src/modules/cpq/subscribers/subscription-superseded-log.ts +19 -0
- package/src/modules/cpq/widgets/injection/customer-inventory/widget.client.tsx +339 -0
- package/src/modules/cpq/widgets/injection/customer-inventory/widget.ts +16 -0
- package/src/modules/cpq/widgets/injection/order-cpq-tab/widget.client.tsx +96 -0
- package/src/modules/cpq/widgets/injection/order-cpq-tab/widget.ts +16 -0
- package/src/modules/cpq/widgets/injection/quote-configurator/widget.client.tsx +265 -0
- package/src/modules/cpq/widgets/injection/quote-configurator/widget.ts +16 -0
- package/src/modules/cpq/widgets/injection-table.ts +42 -0
- package/src/modules/cpq/workflows/WizardRunner.tsx +158 -0
- package/src/modules/cpq/workflows/WizardTrigger.tsx +142 -0
- package/src/modules/cpq/workflows/engine.tsx +278 -0
- package/src/modules/cpq/workflows/registry.ts +15 -0
- package/src/modules/cpq/workflows/steps/CustomerSelectStep.tsx +136 -0
- package/src/modules/cpq/workflows/steps/InventorySelectStep.tsx +34 -0
- package/src/modules/cpq/workflows/steps/ItemListStep.tsx +146 -0
- package/src/modules/cpq/workflows/steps/OfferingSelectStep.tsx +438 -0
- package/src/modules/cpq/workflows/steps/ProductConfigureStep.tsx +287 -0
- package/src/modules/cpq/workflows/steps/ReviewStep.tsx +219 -0
- package/src/modules/cpq/workflows/steps/index.ts +51 -0
- package/src/modules/cpq/workflows/types.ts +102 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/modules/cpq/migrations/Migration20260220220000_cpq.ts"],
|
|
4
|
+
"sourcesContent": ["import { Migration } from '@mikro-orm/migrations'\n\nexport class Migration20260220220000_cpq extends Migration {\n async up(): Promise<void> {\n // cpq_data_centres\n this.addSql(`create table \"cpq_data_centres\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"code\" text not null, \"name\" text not null, \"city\" text null, \"country\" text null, \"address\" text null, \"capabilities\" jsonb null, \"is_active\" boolean not null default true, \"metadata\" jsonb null, \"created_at\" timestamptz not null, \"updated_at\" timestamptz not null, \"deleted_at\" timestamptz null, constraint \"cpq_data_centres_pkey\" primary key (\"id\"));`)\n this.addSql(`create index \"cpq_data_centres_scope_idx\" on \"cpq_data_centres\" (\"organization_id\", \"tenant_id\");`)\n this.addSql(`alter table \"cpq_data_centres\" add constraint \"cpq_data_centres_code_unique\" unique (\"organization_id\", \"tenant_id\", \"code\");`)\n\n // cpq_product_attributes\n this.addSql(`create table \"cpq_product_attributes\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"product_id\" uuid not null, \"code\" text not null, \"name\" text not null, \"attribute_type\" text not null, \"options\" jsonb null, \"constraints\" jsonb null, \"sort_order\" int not null default 0, \"is_required\" boolean not null default true, \"is_active\" boolean not null default true, \"created_at\" timestamptz not null, \"updated_at\" timestamptz not null, \"deleted_at\" timestamptz null, constraint \"cpq_product_attributes_pkey\" primary key (\"id\"));`)\n this.addSql(`create index \"cpq_product_attributes_scope_idx\" on \"cpq_product_attributes\" (\"organization_id\", \"tenant_id\", \"product_id\");`)\n this.addSql(`alter table \"cpq_product_attributes\" add constraint \"cpq_product_attributes_code_unique\" unique (\"organization_id\", \"tenant_id\", \"product_id\", \"code\");`)\n\n // cpq_pricing_tables\n this.addSql(`create table \"cpq_pricing_tables\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"code\" text not null, \"name\" text not null, \"description\" text null, \"product_id\" uuid null, \"dimensions\" jsonb not null, \"price_columns\" jsonb not null, \"pricing_model\" text not null, \"currency_code\" text not null default 'USD', \"is_active\" boolean not null default true, \"created_at\" timestamptz not null, \"updated_at\" timestamptz not null, \"deleted_at\" timestamptz null, constraint \"cpq_pricing_tables_pkey\" primary key (\"id\"));`)\n this.addSql(`create index \"cpq_pricing_tables_scope_idx\" on \"cpq_pricing_tables\" (\"organization_id\", \"tenant_id\");`)\n this.addSql(`alter table \"cpq_pricing_tables\" add constraint \"cpq_pricing_tables_code_unique\" unique (\"organization_id\", \"tenant_id\", \"code\");`)\n\n // cpq_pricing_table_entries\n this.addSql(`create table \"cpq_pricing_table_entries\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"pricing_table_id\" uuid not null, \"dimension_values\" jsonb not null, \"tier_number\" int null, \"range_from\" numeric null, \"range_to\" numeric null, \"prices\" jsonb not null, \"is_active\" boolean not null default true, \"created_at\" timestamptz not null, \"updated_at\" timestamptz not null, \"deleted_at\" timestamptz null, constraint \"cpq_pricing_table_entries_pkey\" primary key (\"id\"));`)\n this.addSql(`create index \"cpq_pricing_table_entries_scope_idx\" on \"cpq_pricing_table_entries\" (\"organization_id\", \"tenant_id\", \"pricing_table_id\");`)\n this.addSql(`create index \"cpq_pricing_table_entries_dim_gin_idx\" on \"cpq_pricing_table_entries\" using gin (\"dimension_values\");`)\n\n // cpq_product_charges\n this.addSql(`create table \"cpq_product_charges\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"product_id\" uuid not null, \"code\" text not null, \"name\" text not null, \"charge_type\" text not null, \"pricing_method\" text not null, \"pricing_table_id\" uuid null, \"price_column_key\" text null, \"quantity_attribute_code\" text null, \"applicability_condition\" jsonb null, \"sort_order\" int not null default 0, \"is_active\" boolean not null default true, \"created_at\" timestamptz not null, \"updated_at\" timestamptz not null, \"deleted_at\" timestamptz null, constraint \"cpq_product_charges_pkey\" primary key (\"id\"));`)\n this.addSql(`create index \"cpq_product_charges_scope_idx\" on \"cpq_product_charges\" (\"organization_id\", \"tenant_id\", \"product_id\");`)\n this.addSql(`alter table \"cpq_product_charges\" add constraint \"cpq_product_charges_code_unique\" unique (\"organization_id\", \"tenant_id\", \"product_id\", \"code\");`)\n\n // cpq_inventory_items\n this.addSql(`create table \"cpq_inventory_items\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"customer_id\" uuid not null, \"product_id\" uuid not null, \"parent_inventory_item_id\" uuid null, \"status\" text not null default 'pending', \"configuration\" jsonb not null, \"charges\" jsonb null, \"data_centre_id\" uuid null, \"currency_code\" text not null default 'USD', \"activated_at\" timestamptz null, \"terminated_at\" timestamptz null, \"source_quote_id\" uuid null, \"source_order_id\" uuid null, \"metadata\" jsonb null, \"created_at\" timestamptz not null, \"updated_at\" timestamptz not null, \"deleted_at\" timestamptz null, constraint \"cpq_inventory_items_pkey\" primary key (\"id\"));`)\n this.addSql(`create index \"cpq_inventory_items_customer_idx\" on \"cpq_inventory_items\" (\"organization_id\", \"tenant_id\", \"customer_id\");`)\n this.addSql(`create index \"cpq_inventory_items_parent_idx\" on \"cpq_inventory_items\" (\"organization_id\", \"tenant_id\", \"parent_inventory_item_id\");`)\n this.addSql(`create index \"cpq_inventory_items_status_idx\" on \"cpq_inventory_items\" (\"customer_id\", \"status\");`)\n this.addSql(`create index \"cpq_inventory_items_config_gin_idx\" on \"cpq_inventory_items\" using gin (\"configuration\");`)\n\n // cpq_quote_configurations\n this.addSql(`create table \"cpq_quote_configurations\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"quote_id\" uuid not null, \"customer_id\" uuid not null, \"quote_type\" text not null, \"selected_parent_inventory_item_id\" uuid null, \"primary_item_configuration\" jsonb null, \"child_item_configurations\" jsonb null, \"validation_result\" jsonb null, \"pricing_summary\" jsonb null, \"created_at\" timestamptz not null, \"updated_at\" timestamptz not null, \"deleted_at\" timestamptz null, constraint \"cpq_quote_configurations_pkey\" primary key (\"id\"));`)\n this.addSql(`alter table \"cpq_quote_configurations\" add constraint \"cpq_quote_configurations_quote_unique\" unique (\"organization_id\", \"tenant_id\", \"quote_id\");`)\n }\n\n async down(): Promise<void> {\n this.addSql(`drop table if exists \"cpq_quote_configurations\" cascade;`)\n this.addSql(`drop table if exists \"cpq_inventory_items\" cascade;`)\n this.addSql(`drop table if exists \"cpq_product_charges\" cascade;`)\n this.addSql(`drop table if exists \"cpq_pricing_table_entries\" cascade;`)\n this.addSql(`drop table if exists \"cpq_pricing_tables\" cascade;`)\n this.addSql(`drop table if exists \"cpq_product_attributes\" cascade;`)\n this.addSql(`drop table if exists \"cpq_data_centres\" cascade;`)\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,iBAAiB;AAEnB,MAAM,oCAAoC,UAAU;AAAA,EACzD,MAAM,KAAoB;AAExB,SAAK,OAAO,8eAA8e;AAC1f,SAAK,OAAO,mGAAmG;AAC/G,SAAK,OAAO,+HAA+H;AAG3I,SAAK,OAAO,0kBAA0kB;AACtlB,SAAK,OAAO,6HAA6H;AACzI,SAAK,OAAO,yJAAyJ;AAGrK,SAAK,OAAO,8jBAA8jB;AAC1kB,SAAK,OAAO,uGAAuG;AACnH,SAAK,OAAO,mIAAmI;AAG/I,SAAK,OAAO,ghBAAghB;AAC5hB,SAAK,OAAO,yIAAyI;AACrJ,SAAK,OAAO,qHAAqH;AAGjI,SAAK,OAAO,2oBAA2oB;AACvpB,SAAK,OAAO,uHAAuH;AACnI,SAAK,OAAO,mJAAmJ;AAG/J,SAAK,OAAO,2sBAA2sB;AACvtB,SAAK,OAAO,2HAA2H;AACvI,SAAK,OAAO,sIAAsI;AAClJ,SAAK,OAAO,mGAAmG;AAC/G,SAAK,OAAO,yGAAyG;AAGrH,SAAK,OAAO,0kBAA0kB;AACtlB,SAAK,OAAO,oJAAoJ;AAAA,EAClK;AAAA,EAEA,MAAM,OAAsB;AAC1B,SAAK,OAAO,0DAA0D;AACtE,SAAK,OAAO,qDAAqD;AACjE,SAAK,OAAO,qDAAqD;AACjE,SAAK,OAAO,2DAA2D;AACvE,SAAK,OAAO,oDAAoD;AAChE,SAAK,OAAO,wDAAwD;AACpE,SAAK,OAAO,kDAAkD;AAAA,EAChE;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Migration } from "@mikro-orm/migrations";
|
|
2
|
+
class Migration20260330000000_cpq_product_domain extends Migration {
|
|
3
|
+
async up() {
|
|
4
|
+
this.addSql(`create table "cpq_product_specifications" ("id" uuid not null default gen_random_uuid(), "organization_id" uuid not null, "tenant_id" uuid not null, "product_id" uuid not null, "code" text not null, "name" text not null, "description" text null, "lifecycle_status" text not null default 'draft', "version" int not null default 1, "effective_from" timestamptz null, "effective_to" timestamptz null, "metadata" jsonb null, "is_active" boolean not null default true, "created_at" timestamptz not null, "updated_at" timestamptz not null, "deleted_at" timestamptz null, constraint "cpq_product_specifications_pkey" primary key ("id"));`);
|
|
5
|
+
this.addSql(`alter table "cpq_product_specifications" add constraint "cpq_product_specifications_product_unique" unique ("organization_id", "tenant_id", "product_id");`);
|
|
6
|
+
this.addSql(`alter table "cpq_product_specifications" add constraint "cpq_product_specifications_code_unique" unique ("organization_id", "tenant_id", "code");`);
|
|
7
|
+
this.addSql(`create index "cpq_product_specifications_lifecycle_idx" on "cpq_product_specifications" ("organization_id", "tenant_id", "lifecycle_status");`);
|
|
8
|
+
this.addSql(`create table "cpq_product_offerings" ("id" uuid not null default gen_random_uuid(), "organization_id" uuid not null, "tenant_id" uuid not null, "spec_id" uuid not null, "catalog_offer_id" uuid null, "code" text not null, "name" text not null, "description" text null, "design_time_values" jsonb not null default '{}', "lifecycle_status" text not null default 'draft', "effective_from" timestamptz null, "effective_to" timestamptz null, "metadata" jsonb null, "is_active" boolean not null default true, "created_at" timestamptz not null, "updated_at" timestamptz not null, "deleted_at" timestamptz null, constraint "cpq_product_offerings_pkey" primary key ("id"));`);
|
|
9
|
+
this.addSql(`alter table "cpq_product_offerings" add constraint "cpq_product_offerings_code_unique" unique ("organization_id", "tenant_id", "code");`);
|
|
10
|
+
this.addSql(`create index "cpq_product_offerings_spec_idx" on "cpq_product_offerings" ("organization_id", "tenant_id", "spec_id");`);
|
|
11
|
+
this.addSql(`create index "cpq_product_offerings_lifecycle_idx" on "cpq_product_offerings" ("organization_id", "tenant_id", "lifecycle_status");`);
|
|
12
|
+
this.addSql(`create table "cpq_product_relationships" ("id" uuid not null default gen_random_uuid(), "organization_id" uuid not null, "tenant_id" uuid not null, "source_spec_id" uuid not null, "target_spec_id" uuid not null, "relationship_type" text not null, "cardinality_min" int not null default 0, "cardinality_max" int null, "condition" jsonb null, "metadata" jsonb null, "is_active" boolean not null default true, "created_at" timestamptz not null, "updated_at" timestamptz not null, "deleted_at" timestamptz null, constraint "cpq_product_relationships_pkey" primary key ("id"));`);
|
|
13
|
+
this.addSql(`alter table "cpq_product_relationships" add constraint "cpq_product_relationships_unique" unique ("organization_id", "tenant_id", "source_spec_id", "target_spec_id", "relationship_type");`);
|
|
14
|
+
this.addSql(`create index "cpq_product_relationships_source_idx" on "cpq_product_relationships" ("organization_id", "tenant_id", "source_spec_id");`);
|
|
15
|
+
this.addSql(`create index "cpq_product_relationships_target_idx" on "cpq_product_relationships" ("organization_id", "tenant_id", "target_spec_id");`);
|
|
16
|
+
this.addSql(`alter table "cpq_product_attributes" add column "spec_id" uuid null;`);
|
|
17
|
+
this.addSql(`alter table "cpq_product_attributes" add column "resolution_time" text not null default 'run_time';`);
|
|
18
|
+
this.addSql(`alter table "cpq_product_attributes" add column "reference_entity" text null;`);
|
|
19
|
+
this.addSql(`alter table "cpq_product_attributes" add column "reference_filter" jsonb null;`);
|
|
20
|
+
this.addSql(`alter table "cpq_product_attributes" add column "depends_on" jsonb null;`);
|
|
21
|
+
this.addSql(`alter table "cpq_product_attributes" add column "default_value" jsonb null;`);
|
|
22
|
+
this.addSql(`alter table "cpq_product_attributes" add column "help_text" text null;`);
|
|
23
|
+
this.addSql(`create index "cpq_product_attributes_spec_idx" on "cpq_product_attributes" ("organization_id", "tenant_id", "spec_id");`);
|
|
24
|
+
this.addSql(`create index "cpq_product_attributes_spec_resolution_idx" on "cpq_product_attributes" ("organization_id", "tenant_id", "spec_id", "resolution_time");`);
|
|
25
|
+
this.addSql(`alter table "cpq_product_charges" add column "offering_id" uuid null;`);
|
|
26
|
+
this.addSql(`alter table "cpq_product_charges" add column "fixed_price" numeric null;`);
|
|
27
|
+
this.addSql(`alter table "cpq_product_charges" add column "currency_code" text null;`);
|
|
28
|
+
this.addSql(`alter table "cpq_product_charges" add column "description" text null;`);
|
|
29
|
+
this.addSql(`create index "cpq_product_charges_offering_idx" on "cpq_product_charges" ("organization_id", "tenant_id", "offering_id");`);
|
|
30
|
+
}
|
|
31
|
+
async down() {
|
|
32
|
+
this.addSql(`drop table if exists "cpq_product_relationships" cascade;`);
|
|
33
|
+
this.addSql(`drop table if exists "cpq_product_offerings" cascade;`);
|
|
34
|
+
this.addSql(`drop table if exists "cpq_product_specifications" cascade;`);
|
|
35
|
+
this.addSql(`drop index if exists "cpq_product_attributes_spec_idx";`);
|
|
36
|
+
this.addSql(`drop index if exists "cpq_product_attributes_spec_resolution_idx";`);
|
|
37
|
+
this.addSql(`alter table "cpq_product_attributes" drop column if exists "spec_id";`);
|
|
38
|
+
this.addSql(`alter table "cpq_product_attributes" drop column if exists "resolution_time";`);
|
|
39
|
+
this.addSql(`alter table "cpq_product_attributes" drop column if exists "reference_entity";`);
|
|
40
|
+
this.addSql(`alter table "cpq_product_attributes" drop column if exists "reference_filter";`);
|
|
41
|
+
this.addSql(`alter table "cpq_product_attributes" drop column if exists "depends_on";`);
|
|
42
|
+
this.addSql(`alter table "cpq_product_attributes" drop column if exists "default_value";`);
|
|
43
|
+
this.addSql(`alter table "cpq_product_attributes" drop column if exists "help_text";`);
|
|
44
|
+
this.addSql(`drop index if exists "cpq_product_charges_offering_idx";`);
|
|
45
|
+
this.addSql(`alter table "cpq_product_charges" drop column if exists "offering_id";`);
|
|
46
|
+
this.addSql(`alter table "cpq_product_charges" drop column if exists "fixed_price";`);
|
|
47
|
+
this.addSql(`alter table "cpq_product_charges" drop column if exists "currency_code";`);
|
|
48
|
+
this.addSql(`alter table "cpq_product_charges" drop column if exists "description";`);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
export {
|
|
52
|
+
Migration20260330000000_cpq_product_domain
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=Migration20260330000000_cpq_product_domain.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/modules/cpq/migrations/Migration20260330000000_cpq_product_domain.ts"],
|
|
4
|
+
"sourcesContent": ["import { Migration } from '@mikro-orm/migrations'\n\nexport class Migration20260330000000_cpq_product_domain extends Migration {\n async up(): Promise<void> {\n // \u2500\u2500\u2500 New tables \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n // cpq_product_specifications\n this.addSql(`create table \"cpq_product_specifications\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"product_id\" uuid not null, \"code\" text not null, \"name\" text not null, \"description\" text null, \"lifecycle_status\" text not null default 'draft', \"version\" int not null default 1, \"effective_from\" timestamptz null, \"effective_to\" timestamptz null, \"metadata\" jsonb null, \"is_active\" boolean not null default true, \"created_at\" timestamptz not null, \"updated_at\" timestamptz not null, \"deleted_at\" timestamptz null, constraint \"cpq_product_specifications_pkey\" primary key (\"id\"));`)\n this.addSql(`alter table \"cpq_product_specifications\" add constraint \"cpq_product_specifications_product_unique\" unique (\"organization_id\", \"tenant_id\", \"product_id\");`)\n this.addSql(`alter table \"cpq_product_specifications\" add constraint \"cpq_product_specifications_code_unique\" unique (\"organization_id\", \"tenant_id\", \"code\");`)\n this.addSql(`create index \"cpq_product_specifications_lifecycle_idx\" on \"cpq_product_specifications\" (\"organization_id\", \"tenant_id\", \"lifecycle_status\");`)\n\n // cpq_product_offerings\n this.addSql(`create table \"cpq_product_offerings\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"spec_id\" uuid not null, \"catalog_offer_id\" uuid null, \"code\" text not null, \"name\" text not null, \"description\" text null, \"design_time_values\" jsonb not null default '{}', \"lifecycle_status\" text not null default 'draft', \"effective_from\" timestamptz null, \"effective_to\" timestamptz null, \"metadata\" jsonb null, \"is_active\" boolean not null default true, \"created_at\" timestamptz not null, \"updated_at\" timestamptz not null, \"deleted_at\" timestamptz null, constraint \"cpq_product_offerings_pkey\" primary key (\"id\"));`)\n this.addSql(`alter table \"cpq_product_offerings\" add constraint \"cpq_product_offerings_code_unique\" unique (\"organization_id\", \"tenant_id\", \"code\");`)\n this.addSql(`create index \"cpq_product_offerings_spec_idx\" on \"cpq_product_offerings\" (\"organization_id\", \"tenant_id\", \"spec_id\");`)\n this.addSql(`create index \"cpq_product_offerings_lifecycle_idx\" on \"cpq_product_offerings\" (\"organization_id\", \"tenant_id\", \"lifecycle_status\");`)\n\n // cpq_product_relationships\n this.addSql(`create table \"cpq_product_relationships\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"source_spec_id\" uuid not null, \"target_spec_id\" uuid not null, \"relationship_type\" text not null, \"cardinality_min\" int not null default 0, \"cardinality_max\" int null, \"condition\" jsonb null, \"metadata\" jsonb null, \"is_active\" boolean not null default true, \"created_at\" timestamptz not null, \"updated_at\" timestamptz not null, \"deleted_at\" timestamptz null, constraint \"cpq_product_relationships_pkey\" primary key (\"id\"));`)\n this.addSql(`alter table \"cpq_product_relationships\" add constraint \"cpq_product_relationships_unique\" unique (\"organization_id\", \"tenant_id\", \"source_spec_id\", \"target_spec_id\", \"relationship_type\");`)\n this.addSql(`create index \"cpq_product_relationships_source_idx\" on \"cpq_product_relationships\" (\"organization_id\", \"tenant_id\", \"source_spec_id\");`)\n this.addSql(`create index \"cpq_product_relationships_target_idx\" on \"cpq_product_relationships\" (\"organization_id\", \"tenant_id\", \"target_spec_id\");`)\n\n // \u2500\u2500\u2500 Alter existing tables \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n\n // cpq_product_attributes \u2014 add v2 columns\n this.addSql(`alter table \"cpq_product_attributes\" add column \"spec_id\" uuid null;`)\n this.addSql(`alter table \"cpq_product_attributes\" add column \"resolution_time\" text not null default 'run_time';`)\n this.addSql(`alter table \"cpq_product_attributes\" add column \"reference_entity\" text null;`)\n this.addSql(`alter table \"cpq_product_attributes\" add column \"reference_filter\" jsonb null;`)\n this.addSql(`alter table \"cpq_product_attributes\" add column \"depends_on\" jsonb null;`)\n this.addSql(`alter table \"cpq_product_attributes\" add column \"default_value\" jsonb null;`)\n this.addSql(`alter table \"cpq_product_attributes\" add column \"help_text\" text null;`)\n this.addSql(`create index \"cpq_product_attributes_spec_idx\" on \"cpq_product_attributes\" (\"organization_id\", \"tenant_id\", \"spec_id\");`)\n this.addSql(`create index \"cpq_product_attributes_spec_resolution_idx\" on \"cpq_product_attributes\" (\"organization_id\", \"tenant_id\", \"spec_id\", \"resolution_time\");`)\n\n // cpq_product_charges \u2014 add v2 columns\n this.addSql(`alter table \"cpq_product_charges\" add column \"offering_id\" uuid null;`)\n this.addSql(`alter table \"cpq_product_charges\" add column \"fixed_price\" numeric null;`)\n this.addSql(`alter table \"cpq_product_charges\" add column \"currency_code\" text null;`)\n this.addSql(`alter table \"cpq_product_charges\" add column \"description\" text null;`)\n this.addSql(`create index \"cpq_product_charges_offering_idx\" on \"cpq_product_charges\" (\"organization_id\", \"tenant_id\", \"offering_id\");`)\n }\n\n async down(): Promise<void> {\n // Drop new tables\n this.addSql(`drop table if exists \"cpq_product_relationships\" cascade;`)\n this.addSql(`drop table if exists \"cpq_product_offerings\" cascade;`)\n this.addSql(`drop table if exists \"cpq_product_specifications\" cascade;`)\n\n // Remove added columns from cpq_product_attributes\n this.addSql(`drop index if exists \"cpq_product_attributes_spec_idx\";`)\n this.addSql(`drop index if exists \"cpq_product_attributes_spec_resolution_idx\";`)\n this.addSql(`alter table \"cpq_product_attributes\" drop column if exists \"spec_id\";`)\n this.addSql(`alter table \"cpq_product_attributes\" drop column if exists \"resolution_time\";`)\n this.addSql(`alter table \"cpq_product_attributes\" drop column if exists \"reference_entity\";`)\n this.addSql(`alter table \"cpq_product_attributes\" drop column if exists \"reference_filter\";`)\n this.addSql(`alter table \"cpq_product_attributes\" drop column if exists \"depends_on\";`)\n this.addSql(`alter table \"cpq_product_attributes\" drop column if exists \"default_value\";`)\n this.addSql(`alter table \"cpq_product_attributes\" drop column if exists \"help_text\";`)\n\n // Remove added columns from cpq_product_charges\n this.addSql(`drop index if exists \"cpq_product_charges_offering_idx\";`)\n this.addSql(`alter table \"cpq_product_charges\" drop column if exists \"offering_id\";`)\n this.addSql(`alter table \"cpq_product_charges\" drop column if exists \"fixed_price\";`)\n this.addSql(`alter table \"cpq_product_charges\" drop column if exists \"currency_code\";`)\n this.addSql(`alter table \"cpq_product_charges\" drop column if exists \"description\";`)\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,iBAAiB;AAEnB,MAAM,mDAAmD,UAAU;AAAA,EACxE,MAAM,KAAoB;AAIxB,SAAK,OAAO,wnBAAwnB;AACpoB,SAAK,OAAO,4JAA4J;AACxK,SAAK,OAAO,mJAAmJ;AAC/J,SAAK,OAAO,+IAA+I;AAG3J,SAAK,OAAO,ypBAAypB;AACrqB,SAAK,OAAO,yIAAyI;AACrJ,SAAK,OAAO,uHAAuH;AACnI,SAAK,OAAO,qIAAqI;AAGjJ,SAAK,OAAO,8jBAA8jB;AAC1kB,SAAK,OAAO,6LAA6L;AACzM,SAAK,OAAO,wIAAwI;AACpJ,SAAK,OAAO,wIAAwI;AAKpJ,SAAK,OAAO,sEAAsE;AAClF,SAAK,OAAO,qGAAqG;AACjH,SAAK,OAAO,+EAA+E;AAC3F,SAAK,OAAO,gFAAgF;AAC5F,SAAK,OAAO,0EAA0E;AACtF,SAAK,OAAO,6EAA6E;AACzF,SAAK,OAAO,wEAAwE;AACpF,SAAK,OAAO,yHAAyH;AACrI,SAAK,OAAO,uJAAuJ;AAGnK,SAAK,OAAO,uEAAuE;AACnF,SAAK,OAAO,0EAA0E;AACtF,SAAK,OAAO,yEAAyE;AACrF,SAAK,OAAO,uEAAuE;AACnF,SAAK,OAAO,2HAA2H;AAAA,EACzI;AAAA,EAEA,MAAM,OAAsB;AAE1B,SAAK,OAAO,2DAA2D;AACvE,SAAK,OAAO,uDAAuD;AACnE,SAAK,OAAO,4DAA4D;AAGxE,SAAK,OAAO,yDAAyD;AACrE,SAAK,OAAO,oEAAoE;AAChF,SAAK,OAAO,uEAAuE;AACnF,SAAK,OAAO,+EAA+E;AAC3F,SAAK,OAAO,gFAAgF;AAC5F,SAAK,OAAO,gFAAgF;AAC5F,SAAK,OAAO,0EAA0E;AACtF,SAAK,OAAO,6EAA6E;AACzF,SAAK,OAAO,yEAAyE;AAGrF,SAAK,OAAO,0DAA0D;AACtE,SAAK,OAAO,wEAAwE;AACpF,SAAK,OAAO,wEAAwE;AACpF,SAAK,OAAO,0EAA0E;AACtF,SAAK,OAAO,wEAAwE;AAAA,EACtF;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Migration } from "@mikro-orm/migrations";
|
|
2
|
+
class Migration20260331000000_cpq_charge_unique_per_offering extends Migration {
|
|
3
|
+
async up() {
|
|
4
|
+
this.addSql(`alter table "cpq_product_charges" drop constraint if exists "cpq_product_charges_code_unique";`);
|
|
5
|
+
this.addSql(`alter table "cpq_product_charges" add constraint "cpq_product_charges_offering_code_unique" unique ("organization_id", "tenant_id", "offering_id", "code");`);
|
|
6
|
+
}
|
|
7
|
+
async down() {
|
|
8
|
+
this.addSql(`alter table "cpq_product_charges" drop constraint if exists "cpq_product_charges_offering_code_unique";`);
|
|
9
|
+
this.addSql(`alter table "cpq_product_charges" add constraint "cpq_product_charges_code_unique" unique ("organization_id", "tenant_id", "product_id", "code");`);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export {
|
|
13
|
+
Migration20260331000000_cpq_charge_unique_per_offering
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=Migration20260331000000_cpq_charge_unique_per_offering.js.map
|
package/dist/modules/cpq/migrations/Migration20260331000000_cpq_charge_unique_per_offering.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/modules/cpq/migrations/Migration20260331000000_cpq_charge_unique_per_offering.ts"],
|
|
4
|
+
"sourcesContent": ["import { Migration } from '@mikro-orm/migrations'\n\nexport class Migration20260331000000_cpq_charge_unique_per_offering extends Migration {\n async up(): Promise<void> {\n // Drop the old unique constraint scoped to product_id\n this.addSql(`alter table \"cpq_product_charges\" drop constraint if exists \"cpq_product_charges_code_unique\";`)\n // Add new unique constraint scoped to offering_id (for v2 charges)\n this.addSql(`alter table \"cpq_product_charges\" add constraint \"cpq_product_charges_offering_code_unique\" unique (\"organization_id\", \"tenant_id\", \"offering_id\", \"code\");`)\n }\n\n async down(): Promise<void> {\n this.addSql(`alter table \"cpq_product_charges\" drop constraint if exists \"cpq_product_charges_offering_code_unique\";`)\n this.addSql(`alter table \"cpq_product_charges\" add constraint \"cpq_product_charges_code_unique\" unique (\"organization_id\", \"tenant_id\", \"product_id\", \"code\");`)\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,iBAAiB;AAEnB,MAAM,+DAA+D,UAAU;AAAA,EACpF,MAAM,KAAoB;AAExB,SAAK,OAAO,gGAAgG;AAE5G,SAAK,OAAO,6JAA6J;AAAA,EAC3K;AAAA,EAEA,MAAM,OAAsB;AAC1B,SAAK,OAAO,yGAAyG;AACrH,SAAK,OAAO,mJAAmJ;AAAA,EACjK;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { Migration } from "@mikro-orm/migrations";
|
|
2
|
+
class Migration20260401000000_cpq_quoting_v2 extends Migration {
|
|
3
|
+
async up() {
|
|
4
|
+
this.addSql(`create table "cpq_quote_line_configurations" (
|
|
5
|
+
"id" uuid not null default gen_random_uuid(),
|
|
6
|
+
"organization_id" uuid not null,
|
|
7
|
+
"tenant_id" uuid not null,
|
|
8
|
+
"quote_line_id" uuid not null,
|
|
9
|
+
"quote_configuration_id" uuid not null,
|
|
10
|
+
"offering_id" uuid null,
|
|
11
|
+
"product_id" uuid null,
|
|
12
|
+
"spec_id" uuid null,
|
|
13
|
+
"action" text not null default 'add',
|
|
14
|
+
"parent_line_id" uuid null,
|
|
15
|
+
"start_date" date null,
|
|
16
|
+
"term_months" int null,
|
|
17
|
+
"end_date" date null,
|
|
18
|
+
"configuration" jsonb not null default '{}',
|
|
19
|
+
"quantity" int not null default 1,
|
|
20
|
+
"charges" jsonb null,
|
|
21
|
+
"nrc_total" numeric(18, 4) not null default 0,
|
|
22
|
+
"mrc_total" numeric(18, 4) not null default 0,
|
|
23
|
+
"usage_estimates" jsonb null,
|
|
24
|
+
"usage_total_estimated" numeric(18, 4) null,
|
|
25
|
+
"validation_errors" jsonb null,
|
|
26
|
+
"is_configured" boolean not null default false,
|
|
27
|
+
"created_at" timestamptz not null,
|
|
28
|
+
"updated_at" timestamptz not null,
|
|
29
|
+
"deleted_at" timestamptz null,
|
|
30
|
+
constraint "cpq_quote_line_configurations_pkey" primary key ("id")
|
|
31
|
+
);`);
|
|
32
|
+
this.addSql(`alter table "cpq_quote_line_configurations" add constraint "cpq_qlc_quote_line_unique" unique ("organization_id", "tenant_id", "quote_line_id");`);
|
|
33
|
+
this.addSql(`create index "cpq_qlc_quote_config_idx" on "cpq_quote_line_configurations" ("organization_id", "tenant_id", "quote_configuration_id");`);
|
|
34
|
+
this.addSql(`create index "cpq_qlc_parent_line_idx" on "cpq_quote_line_configurations" ("organization_id", "tenant_id", "parent_line_id");`);
|
|
35
|
+
this.addSql(`alter table "cpq_quote_configurations" add column "cpq_status" text not null default 'new';`);
|
|
36
|
+
this.addSql(`alter table "cpq_quote_configurations" add column "version" int not null default 1;`);
|
|
37
|
+
this.addSql(`alter table "cpq_quote_configurations" add column "parent_quote_id" uuid null;`);
|
|
38
|
+
this.addSql(`alter table "cpq_quote_configurations" add column "currency_code" text not null default 'USD';`);
|
|
39
|
+
this.addSql(`alter table "cpq_quote_configurations" add column "quote_context" jsonb null;`);
|
|
40
|
+
this.addSql(`update "cpq_quote_configurations" set "cpq_status" = 'ready' where "pricing_summary" is not null;`);
|
|
41
|
+
this.addSql(`alter table "cpq_quote_configurations" drop column if exists "quote_type";`);
|
|
42
|
+
this.addSql(`alter table "cpq_quote_configurations" drop column if exists "selected_parent_inventory_item_id";`);
|
|
43
|
+
this.addSql(`alter table "cpq_quote_configurations" drop column if exists "primary_item_configuration";`);
|
|
44
|
+
this.addSql(`alter table "cpq_quote_configurations" drop column if exists "child_item_configurations";`);
|
|
45
|
+
}
|
|
46
|
+
async down() {
|
|
47
|
+
this.addSql(`alter table "cpq_quote_configurations" add column "quote_type" text not null default 'new_primary';`);
|
|
48
|
+
this.addSql(`alter table "cpq_quote_configurations" add column "selected_parent_inventory_item_id" uuid null;`);
|
|
49
|
+
this.addSql(`alter table "cpq_quote_configurations" add column "primary_item_configuration" jsonb null;`);
|
|
50
|
+
this.addSql(`alter table "cpq_quote_configurations" add column "child_item_configurations" jsonb null;`);
|
|
51
|
+
this.addSql(`alter table "cpq_quote_configurations" drop column if exists "cpq_status";`);
|
|
52
|
+
this.addSql(`alter table "cpq_quote_configurations" drop column if exists "version";`);
|
|
53
|
+
this.addSql(`alter table "cpq_quote_configurations" drop column if exists "parent_quote_id";`);
|
|
54
|
+
this.addSql(`alter table "cpq_quote_configurations" drop column if exists "currency_code";`);
|
|
55
|
+
this.addSql(`alter table "cpq_quote_configurations" drop column if exists "quote_context";`);
|
|
56
|
+
this.addSql(`drop table if exists "cpq_quote_line_configurations" cascade;`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
export {
|
|
60
|
+
Migration20260401000000_cpq_quoting_v2
|
|
61
|
+
};
|
|
62
|
+
//# sourceMappingURL=Migration20260401000000_cpq_quoting_v2.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/modules/cpq/migrations/Migration20260401000000_cpq_quoting_v2.ts"],
|
|
4
|
+
"sourcesContent": ["import { Migration } from '@mikro-orm/migrations'\n\nexport class Migration20260401000000_cpq_quoting_v2 extends Migration {\n async up(): Promise<void> {\n // \u2500\u2500\u2500 New table: cpq_quote_line_configurations \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n this.addSql(`create table \"cpq_quote_line_configurations\" (\n \"id\" uuid not null default gen_random_uuid(),\n \"organization_id\" uuid not null,\n \"tenant_id\" uuid not null,\n \"quote_line_id\" uuid not null,\n \"quote_configuration_id\" uuid not null,\n \"offering_id\" uuid null,\n \"product_id\" uuid null,\n \"spec_id\" uuid null,\n \"action\" text not null default 'add',\n \"parent_line_id\" uuid null,\n \"start_date\" date null,\n \"term_months\" int null,\n \"end_date\" date null,\n \"configuration\" jsonb not null default '{}',\n \"quantity\" int not null default 1,\n \"charges\" jsonb null,\n \"nrc_total\" numeric(18, 4) not null default 0,\n \"mrc_total\" numeric(18, 4) not null default 0,\n \"usage_estimates\" jsonb null,\n \"usage_total_estimated\" numeric(18, 4) null,\n \"validation_errors\" jsonb null,\n \"is_configured\" boolean not null default false,\n \"created_at\" timestamptz not null,\n \"updated_at\" timestamptz not null,\n \"deleted_at\" timestamptz null,\n constraint \"cpq_quote_line_configurations_pkey\" primary key (\"id\")\n );`)\n\n this.addSql(`alter table \"cpq_quote_line_configurations\" add constraint \"cpq_qlc_quote_line_unique\" unique (\"organization_id\", \"tenant_id\", \"quote_line_id\");`)\n this.addSql(`create index \"cpq_qlc_quote_config_idx\" on \"cpq_quote_line_configurations\" (\"organization_id\", \"tenant_id\", \"quote_configuration_id\");`)\n this.addSql(`create index \"cpq_qlc_parent_line_idx\" on \"cpq_quote_line_configurations\" (\"organization_id\", \"tenant_id\", \"parent_line_id\");`)\n\n // \u2500\u2500\u2500 Alter cpq_quote_configurations: add v2 columns \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n this.addSql(`alter table \"cpq_quote_configurations\" add column \"cpq_status\" text not null default 'new';`)\n this.addSql(`alter table \"cpq_quote_configurations\" add column \"version\" int not null default 1;`)\n this.addSql(`alter table \"cpq_quote_configurations\" add column \"parent_quote_id\" uuid null;`)\n this.addSql(`alter table \"cpq_quote_configurations\" add column \"currency_code\" text not null default 'USD';`)\n this.addSql(`alter table \"cpq_quote_configurations\" add column \"quote_context\" jsonb null;`)\n\n // \u2500\u2500\u2500 Backfill existing records \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n this.addSql(`update \"cpq_quote_configurations\" set \"cpq_status\" = 'ready' where \"pricing_summary\" is not null;`)\n\n // \u2500\u2500\u2500 Drop v1 columns from cpq_quote_configurations \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n this.addSql(`alter table \"cpq_quote_configurations\" drop column if exists \"quote_type\";`)\n this.addSql(`alter table \"cpq_quote_configurations\" drop column if exists \"selected_parent_inventory_item_id\";`)\n this.addSql(`alter table \"cpq_quote_configurations\" drop column if exists \"primary_item_configuration\";`)\n this.addSql(`alter table \"cpq_quote_configurations\" drop column if exists \"child_item_configurations\";`)\n }\n\n async down(): Promise<void> {\n // Re-add v1 columns\n this.addSql(`alter table \"cpq_quote_configurations\" add column \"quote_type\" text not null default 'new_primary';`)\n this.addSql(`alter table \"cpq_quote_configurations\" add column \"selected_parent_inventory_item_id\" uuid null;`)\n this.addSql(`alter table \"cpq_quote_configurations\" add column \"primary_item_configuration\" jsonb null;`)\n this.addSql(`alter table \"cpq_quote_configurations\" add column \"child_item_configurations\" jsonb null;`)\n\n // Drop v2 columns\n this.addSql(`alter table \"cpq_quote_configurations\" drop column if exists \"cpq_status\";`)\n this.addSql(`alter table \"cpq_quote_configurations\" drop column if exists \"version\";`)\n this.addSql(`alter table \"cpq_quote_configurations\" drop column if exists \"parent_quote_id\";`)\n this.addSql(`alter table \"cpq_quote_configurations\" drop column if exists \"currency_code\";`)\n this.addSql(`alter table \"cpq_quote_configurations\" drop column if exists \"quote_context\";`)\n\n // Drop new table\n this.addSql(`drop table if exists \"cpq_quote_line_configurations\" cascade;`)\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,iBAAiB;AAEnB,MAAM,+CAA+C,UAAU;AAAA,EACpE,MAAM,KAAoB;AAExB,SAAK,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OA2BT;AAEH,SAAK,OAAO,kJAAkJ;AAC9J,SAAK,OAAO,wIAAwI;AACpJ,SAAK,OAAO,+HAA+H;AAG3I,SAAK,OAAO,6FAA6F;AACzG,SAAK,OAAO,qFAAqF;AACjG,SAAK,OAAO,gFAAgF;AAC5F,SAAK,OAAO,gGAAgG;AAC5G,SAAK,OAAO,+EAA+E;AAG3F,SAAK,OAAO,mGAAmG;AAG/G,SAAK,OAAO,4EAA4E;AACxF,SAAK,OAAO,mGAAmG;AAC/G,SAAK,OAAO,4FAA4F;AACxG,SAAK,OAAO,2FAA2F;AAAA,EACzG;AAAA,EAEA,MAAM,OAAsB;AAE1B,SAAK,OAAO,qGAAqG;AACjH,SAAK,OAAO,kGAAkG;AAC9G,SAAK,OAAO,4FAA4F;AACxG,SAAK,OAAO,2FAA2F;AAGvG,SAAK,OAAO,4EAA4E;AACxF,SAAK,OAAO,yEAAyE;AACrF,SAAK,OAAO,iFAAiF;AAC7F,SAAK,OAAO,+EAA+E;AAC3F,SAAK,OAAO,+EAA+E;AAG3F,SAAK,OAAO,+DAA+D;AAAA,EAC7E;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Migration } from "@mikro-orm/migrations";
|
|
2
|
+
class Migration20260402000000_cpq_workflows extends Migration {
|
|
3
|
+
async up() {
|
|
4
|
+
this.addSql(`create table "cpq_workflow_definitions" (
|
|
5
|
+
"id" uuid not null default gen_random_uuid(),
|
|
6
|
+
"organization_id" uuid not null,
|
|
7
|
+
"tenant_id" uuid not null,
|
|
8
|
+
"code" text not null,
|
|
9
|
+
"name" text not null,
|
|
10
|
+
"description" text null,
|
|
11
|
+
"version" int not null default 1,
|
|
12
|
+
"steps" jsonb not null default '[]',
|
|
13
|
+
"applicability" jsonb null,
|
|
14
|
+
"surface" text not null default 'backend',
|
|
15
|
+
"is_active" boolean not null default true,
|
|
16
|
+
"metadata" jsonb null,
|
|
17
|
+
"created_at" timestamptz not null,
|
|
18
|
+
"updated_at" timestamptz not null,
|
|
19
|
+
"deleted_at" timestamptz null,
|
|
20
|
+
constraint "cpq_workflow_definitions_pkey" primary key ("id")
|
|
21
|
+
);`);
|
|
22
|
+
this.addSql(`alter table "cpq_workflow_definitions" add constraint "cpq_workflow_definitions_code_unique" unique ("organization_id", "tenant_id", "code");`);
|
|
23
|
+
this.addSql(`create index "cpq_workflow_definitions_active_idx" on "cpq_workflow_definitions" ("organization_id", "tenant_id", "is_active");`);
|
|
24
|
+
this.addSql(`create index "cpq_workflow_definitions_surface_idx" on "cpq_workflow_definitions" ("organization_id", "tenant_id", "surface");`);
|
|
25
|
+
this.addSql(`create table "cpq_workflow_instances" (
|
|
26
|
+
"id" uuid not null default gen_random_uuid(),
|
|
27
|
+
"organization_id" uuid not null,
|
|
28
|
+
"tenant_id" uuid not null,
|
|
29
|
+
"workflow_definition_id" uuid not null,
|
|
30
|
+
"definition_version" int not null,
|
|
31
|
+
"quote_id" uuid null,
|
|
32
|
+
"quote_configuration_id" uuid null,
|
|
33
|
+
"customer_id" uuid null,
|
|
34
|
+
"current_step_id" text not null,
|
|
35
|
+
"completed_steps" jsonb not null default '[]',
|
|
36
|
+
"step_data" jsonb not null default '{}',
|
|
37
|
+
"status" text not null default 'active',
|
|
38
|
+
"started_by" uuid null,
|
|
39
|
+
"created_at" timestamptz not null,
|
|
40
|
+
"updated_at" timestamptz not null,
|
|
41
|
+
constraint "cpq_workflow_instances_pkey" primary key ("id")
|
|
42
|
+
);`);
|
|
43
|
+
this.addSql(`create index "cpq_workflow_instances_def_idx" on "cpq_workflow_instances" ("organization_id", "tenant_id", "workflow_definition_id");`);
|
|
44
|
+
this.addSql(`create index "cpq_workflow_instances_quote_idx" on "cpq_workflow_instances" ("organization_id", "tenant_id", "quote_id");`);
|
|
45
|
+
this.addSql(`create index "cpq_workflow_instances_user_idx" on "cpq_workflow_instances" ("organization_id", "tenant_id", "started_by", "status");`);
|
|
46
|
+
this.addSql(`create index "cpq_workflow_instances_customer_idx" on "cpq_workflow_instances" ("organization_id", "tenant_id", "customer_id");`);
|
|
47
|
+
}
|
|
48
|
+
async down() {
|
|
49
|
+
this.addSql(`drop table if exists "cpq_workflow_instances";`);
|
|
50
|
+
this.addSql(`drop table if exists "cpq_workflow_definitions";`);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
export {
|
|
54
|
+
Migration20260402000000_cpq_workflows
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=Migration20260402000000_cpq_workflows.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/modules/cpq/migrations/Migration20260402000000_cpq_workflows.ts"],
|
|
4
|
+
"sourcesContent": ["import { Migration } from '@mikro-orm/migrations'\n\nexport class Migration20260402000000_cpq_workflows extends Migration {\n async up(): Promise<void> {\n // \u2500\u2500\u2500 New table: cpq_workflow_definitions \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n this.addSql(`create table \"cpq_workflow_definitions\" (\n \"id\" uuid not null default gen_random_uuid(),\n \"organization_id\" uuid not null,\n \"tenant_id\" uuid not null,\n \"code\" text not null,\n \"name\" text not null,\n \"description\" text null,\n \"version\" int not null default 1,\n \"steps\" jsonb not null default '[]',\n \"applicability\" jsonb null,\n \"surface\" text not null default 'backend',\n \"is_active\" boolean not null default true,\n \"metadata\" jsonb null,\n \"created_at\" timestamptz not null,\n \"updated_at\" timestamptz not null,\n \"deleted_at\" timestamptz null,\n constraint \"cpq_workflow_definitions_pkey\" primary key (\"id\")\n );`)\n\n this.addSql(`alter table \"cpq_workflow_definitions\" add constraint \"cpq_workflow_definitions_code_unique\" unique (\"organization_id\", \"tenant_id\", \"code\");`)\n this.addSql(`create index \"cpq_workflow_definitions_active_idx\" on \"cpq_workflow_definitions\" (\"organization_id\", \"tenant_id\", \"is_active\");`)\n this.addSql(`create index \"cpq_workflow_definitions_surface_idx\" on \"cpq_workflow_definitions\" (\"organization_id\", \"tenant_id\", \"surface\");`)\n\n // \u2500\u2500\u2500 New table: cpq_workflow_instances \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n this.addSql(`create table \"cpq_workflow_instances\" (\n \"id\" uuid not null default gen_random_uuid(),\n \"organization_id\" uuid not null,\n \"tenant_id\" uuid not null,\n \"workflow_definition_id\" uuid not null,\n \"definition_version\" int not null,\n \"quote_id\" uuid null,\n \"quote_configuration_id\" uuid null,\n \"customer_id\" uuid null,\n \"current_step_id\" text not null,\n \"completed_steps\" jsonb not null default '[]',\n \"step_data\" jsonb not null default '{}',\n \"status\" text not null default 'active',\n \"started_by\" uuid null,\n \"created_at\" timestamptz not null,\n \"updated_at\" timestamptz not null,\n constraint \"cpq_workflow_instances_pkey\" primary key (\"id\")\n );`)\n\n this.addSql(`create index \"cpq_workflow_instances_def_idx\" on \"cpq_workflow_instances\" (\"organization_id\", \"tenant_id\", \"workflow_definition_id\");`)\n this.addSql(`create index \"cpq_workflow_instances_quote_idx\" on \"cpq_workflow_instances\" (\"organization_id\", \"tenant_id\", \"quote_id\");`)\n this.addSql(`create index \"cpq_workflow_instances_user_idx\" on \"cpq_workflow_instances\" (\"organization_id\", \"tenant_id\", \"started_by\", \"status\");`)\n this.addSql(`create index \"cpq_workflow_instances_customer_idx\" on \"cpq_workflow_instances\" (\"organization_id\", \"tenant_id\", \"customer_id\");`)\n }\n\n async down(): Promise<void> {\n this.addSql(`drop table if exists \"cpq_workflow_instances\";`)\n this.addSql(`drop table if exists \"cpq_workflow_definitions\";`)\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,iBAAiB;AAEnB,MAAM,8CAA8C,UAAU;AAAA,EACnE,MAAM,KAAoB;AAExB,SAAK,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAiBT;AAEH,SAAK,OAAO,+IAA+I;AAC3J,SAAK,OAAO,iIAAiI;AAC7I,SAAK,OAAO,gIAAgI;AAG5I,SAAK,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAiBT;AAEH,SAAK,OAAO,uIAAuI;AACnJ,SAAK,OAAO,2HAA2H;AACvI,SAAK,OAAO,sIAAsI;AAClJ,SAAK,OAAO,iIAAiI;AAAA,EAC/I;AAAA,EAEA,MAAM,OAAsB;AAC1B,SAAK,OAAO,gDAAgD;AAC5D,SAAK,OAAO,kDAAkD;AAAA,EAChE;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Migration } from "@mikro-orm/migrations";
|
|
2
|
+
class Migration20260407000000_cpq_pricing_tables_v2 extends Migration {
|
|
3
|
+
async up() {
|
|
4
|
+
this.addSql(`alter table "cpq_pricing_tables" add column "currency_code_list" jsonb;`);
|
|
5
|
+
this.addSql(`update "cpq_pricing_tables" set "currency_code_list" = jsonb_build_array(coalesce("currency_code", 'USD'));`);
|
|
6
|
+
this.addSql(`alter table "cpq_pricing_tables" alter column "currency_code_list" set not null;`);
|
|
7
|
+
this.addSql(`alter table "cpq_pricing_tables" drop column if exists "currency_code";`);
|
|
8
|
+
this.addSql(`alter table "cpq_pricing_tables" drop column if exists "pricing_model";`);
|
|
9
|
+
this.addSql(`alter table "cpq_pricing_tables" drop column if exists "product_id";`);
|
|
10
|
+
this.addSql(`alter table "cpq_pricing_tables" drop column if exists "description";`);
|
|
11
|
+
this.addSql(`alter table "cpq_pricing_table_entries" add column "currency_code" text not null default 'USD';`);
|
|
12
|
+
}
|
|
13
|
+
async down() {
|
|
14
|
+
this.addSql(`alter table "cpq_pricing_table_entries" drop column if exists "currency_code";`);
|
|
15
|
+
this.addSql(`alter table "cpq_pricing_tables" add column "description" text null;`);
|
|
16
|
+
this.addSql(`alter table "cpq_pricing_tables" add column "product_id" uuid null;`);
|
|
17
|
+
this.addSql(`alter table "cpq_pricing_tables" add column "pricing_model" text not null default 'flat';`);
|
|
18
|
+
this.addSql(`alter table "cpq_pricing_tables" add column "currency_code" text not null default 'USD';`);
|
|
19
|
+
this.addSql(`update "cpq_pricing_tables" set "currency_code" = coalesce("currency_code_list"->>0, 'USD');`);
|
|
20
|
+
this.addSql(`alter table "cpq_pricing_tables" drop column if exists "currency_code_list";`);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export {
|
|
24
|
+
Migration20260407000000_cpq_pricing_tables_v2
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=Migration20260407000000_cpq_pricing_tables_v2.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/modules/cpq/migrations/Migration20260407000000_cpq_pricing_tables_v2.ts"],
|
|
4
|
+
"sourcesContent": ["import { Migration } from '@mikro-orm/migrations'\n\nexport class Migration20260407000000_cpq_pricing_tables_v2 extends Migration {\n async up(): Promise<void> {\n // CpqPricingTable: add currency_code_list, migrate data from currency_code, drop obsolete columns\n this.addSql(`alter table \"cpq_pricing_tables\" add column \"currency_code_list\" jsonb;`)\n this.addSql(`update \"cpq_pricing_tables\" set \"currency_code_list\" = jsonb_build_array(coalesce(\"currency_code\", 'USD'));`)\n this.addSql(`alter table \"cpq_pricing_tables\" alter column \"currency_code_list\" set not null;`)\n this.addSql(`alter table \"cpq_pricing_tables\" drop column if exists \"currency_code\";`)\n this.addSql(`alter table \"cpq_pricing_tables\" drop column if exists \"pricing_model\";`)\n this.addSql(`alter table \"cpq_pricing_tables\" drop column if exists \"product_id\";`)\n this.addSql(`alter table \"cpq_pricing_tables\" drop column if exists \"description\";`)\n\n // CpqPricingTableEntry: add currency_code with default for existing rows\n this.addSql(`alter table \"cpq_pricing_table_entries\" add column \"currency_code\" text not null default 'USD';`)\n }\n\n async down(): Promise<void> {\n // Reverse entry changes\n this.addSql(`alter table \"cpq_pricing_table_entries\" drop column if exists \"currency_code\";`)\n\n // Reverse table changes: restore old columns, migrate data back\n this.addSql(`alter table \"cpq_pricing_tables\" add column \"description\" text null;`)\n this.addSql(`alter table \"cpq_pricing_tables\" add column \"product_id\" uuid null;`)\n this.addSql(`alter table \"cpq_pricing_tables\" add column \"pricing_model\" text not null default 'flat';`)\n this.addSql(`alter table \"cpq_pricing_tables\" add column \"currency_code\" text not null default 'USD';`)\n this.addSql(`update \"cpq_pricing_tables\" set \"currency_code\" = coalesce(\"currency_code_list\"->>0, 'USD');`)\n this.addSql(`alter table \"cpq_pricing_tables\" drop column if exists \"currency_code_list\";`)\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,iBAAiB;AAEnB,MAAM,sDAAsD,UAAU;AAAA,EAC3E,MAAM,KAAoB;AAExB,SAAK,OAAO,yEAAyE;AACrF,SAAK,OAAO,6GAA6G;AACzH,SAAK,OAAO,kFAAkF;AAC9F,SAAK,OAAO,yEAAyE;AACrF,SAAK,OAAO,yEAAyE;AACrF,SAAK,OAAO,sEAAsE;AAClF,SAAK,OAAO,uEAAuE;AAGnF,SAAK,OAAO,iGAAiG;AAAA,EAC/G;AAAA,EAEA,MAAM,OAAsB;AAE1B,SAAK,OAAO,gFAAgF;AAG5F,SAAK,OAAO,sEAAsE;AAClF,SAAK,OAAO,qEAAqE;AACjF,SAAK,OAAO,2FAA2F;AACvG,SAAK,OAAO,0FAA0F;AACtG,SAAK,OAAO,8FAA8F;AAC1G,SAAK,OAAO,8EAA8E;AAAA,EAC5F;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Migration } from "@mikro-orm/migrations";
|
|
2
|
+
class Migration20260407100000_cpq_price_rules extends Migration {
|
|
3
|
+
async up() {
|
|
4
|
+
this.addSql(`
|
|
5
|
+
create table "cpq_price_rules" (
|
|
6
|
+
"id" uuid not null default gen_random_uuid(),
|
|
7
|
+
"organization_id" uuid not null,
|
|
8
|
+
"tenant_id" uuid not null,
|
|
9
|
+
"code" text not null,
|
|
10
|
+
"name" text not null,
|
|
11
|
+
"description" text null,
|
|
12
|
+
"product_offering_id" uuid null,
|
|
13
|
+
"rule_type" text not null,
|
|
14
|
+
"value" numeric not null,
|
|
15
|
+
"charge_code_filter" text null,
|
|
16
|
+
"charge_type_filter" text null,
|
|
17
|
+
"applicability_condition" jsonb null,
|
|
18
|
+
"sort_order" integer not null default 0,
|
|
19
|
+
"is_active" boolean not null default true,
|
|
20
|
+
"created_at" timestamptz not null default now(),
|
|
21
|
+
"updated_at" timestamptz not null default now(),
|
|
22
|
+
"deleted_at" timestamptz null,
|
|
23
|
+
constraint "cpq_price_rules_pkey" primary key ("id")
|
|
24
|
+
);
|
|
25
|
+
`);
|
|
26
|
+
this.addSql(`create index "cpq_price_rules_scope_idx" on "cpq_price_rules" ("organization_id", "tenant_id");`);
|
|
27
|
+
this.addSql(`create unique index "cpq_price_rules_code_unique" on "cpq_price_rules" ("organization_id", "tenant_id", "code");`);
|
|
28
|
+
this.addSql(`create index "cpq_price_rules_product_idx" on "cpq_price_rules" ("organization_id", "tenant_id", "product_offering_id");`);
|
|
29
|
+
}
|
|
30
|
+
async down() {
|
|
31
|
+
this.addSql(`drop table if exists "cpq_price_rules" cascade;`);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export {
|
|
35
|
+
Migration20260407100000_cpq_price_rules
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=Migration20260407100000_cpq_price_rules.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/modules/cpq/migrations/Migration20260407100000_cpq_price_rules.ts"],
|
|
4
|
+
"sourcesContent": ["import { Migration } from '@mikro-orm/migrations'\n\nexport class Migration20260407100000_cpq_price_rules extends Migration {\n override async up(): Promise<void> {\n this.addSql(`\n create table \"cpq_price_rules\" (\n \"id\" uuid not null default gen_random_uuid(),\n \"organization_id\" uuid not null,\n \"tenant_id\" uuid not null,\n \"code\" text not null,\n \"name\" text not null,\n \"description\" text null,\n \"product_offering_id\" uuid null,\n \"rule_type\" text not null,\n \"value\" numeric not null,\n \"charge_code_filter\" text null,\n \"charge_type_filter\" text null,\n \"applicability_condition\" jsonb null,\n \"sort_order\" integer not null default 0,\n \"is_active\" boolean not null default true,\n \"created_at\" timestamptz not null default now(),\n \"updated_at\" timestamptz not null default now(),\n \"deleted_at\" timestamptz null,\n constraint \"cpq_price_rules_pkey\" primary key (\"id\")\n );\n `)\n\n this.addSql(`create index \"cpq_price_rules_scope_idx\" on \"cpq_price_rules\" (\"organization_id\", \"tenant_id\");`)\n this.addSql(`create unique index \"cpq_price_rules_code_unique\" on \"cpq_price_rules\" (\"organization_id\", \"tenant_id\", \"code\");`)\n this.addSql(`create index \"cpq_price_rules_product_idx\" on \"cpq_price_rules\" (\"organization_id\", \"tenant_id\", \"product_offering_id\");`)\n }\n\n override async down(): Promise<void> {\n this.addSql(`drop table if exists \"cpq_price_rules\" cascade;`)\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,iBAAiB;AAEnB,MAAM,gDAAgD,UAAU;AAAA,EACrE,MAAe,KAAoB;AACjC,SAAK,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,KAqBX;AAED,SAAK,OAAO,iGAAiG;AAC7G,SAAK,OAAO,kHAAkH;AAC9H,SAAK,OAAO,0HAA0H;AAAA,EACxI;AAAA,EAEA,MAAe,OAAsB;AACnC,SAAK,OAAO,iDAAiD;AAAA,EAC/D;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Migration } from "@mikro-orm/migrations";
|
|
2
|
+
class Migration20260408000000_cpq_price_rules extends Migration {
|
|
3
|
+
async up() {
|
|
4
|
+
this.addSql(`create table if not exists "cpq_price_rules" (
|
|
5
|
+
"id" uuid not null default gen_random_uuid(),
|
|
6
|
+
"organization_id" uuid not null,
|
|
7
|
+
"tenant_id" uuid not null,
|
|
8
|
+
"code" text not null,
|
|
9
|
+
"name" text not null,
|
|
10
|
+
"description" text null,
|
|
11
|
+
"product_offering_id" uuid null,
|
|
12
|
+
"rule_type" text not null,
|
|
13
|
+
"value" numeric not null,
|
|
14
|
+
"charge_code_filter" text null,
|
|
15
|
+
"charge_type_filter" text null,
|
|
16
|
+
"applicability_condition" jsonb null,
|
|
17
|
+
"sort_order" int not null default 0,
|
|
18
|
+
"is_active" boolean not null default true,
|
|
19
|
+
"created_at" timestamptz not null,
|
|
20
|
+
"updated_at" timestamptz not null,
|
|
21
|
+
"deleted_at" timestamptz null,
|
|
22
|
+
constraint "cpq_price_rules_pkey" primary key ("id")
|
|
23
|
+
);`);
|
|
24
|
+
this.addSql(`create index if not exists "cpq_price_rules_scope_idx" on "cpq_price_rules" ("organization_id", "tenant_id");`);
|
|
25
|
+
this.addSql(`create unique index if not exists "cpq_price_rules_code_unique" on "cpq_price_rules" ("organization_id", "tenant_id", "code");`);
|
|
26
|
+
this.addSql(`create index if not exists "cpq_price_rules_product_idx" on "cpq_price_rules" ("organization_id", "tenant_id", "product_offering_id");`);
|
|
27
|
+
}
|
|
28
|
+
async down() {
|
|
29
|
+
this.addSql(`drop table if exists "cpq_price_rules" cascade;`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
export {
|
|
33
|
+
Migration20260408000000_cpq_price_rules
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=Migration20260408000000_cpq_price_rules.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/modules/cpq/migrations/Migration20260408000000_cpq_price_rules.ts"],
|
|
4
|
+
"sourcesContent": ["import { Migration } from '@mikro-orm/migrations'\n\nexport class Migration20260408000000_cpq_price_rules extends Migration {\n async up(): Promise<void> {\n this.addSql(`create table if not exists \"cpq_price_rules\" (\n \"id\" uuid not null default gen_random_uuid(),\n \"organization_id\" uuid not null,\n \"tenant_id\" uuid not null,\n \"code\" text not null,\n \"name\" text not null,\n \"description\" text null,\n \"product_offering_id\" uuid null,\n \"rule_type\" text not null,\n \"value\" numeric not null,\n \"charge_code_filter\" text null,\n \"charge_type_filter\" text null,\n \"applicability_condition\" jsonb null,\n \"sort_order\" int not null default 0,\n \"is_active\" boolean not null default true,\n \"created_at\" timestamptz not null,\n \"updated_at\" timestamptz not null,\n \"deleted_at\" timestamptz null,\n constraint \"cpq_price_rules_pkey\" primary key (\"id\")\n );`)\n this.addSql(`create index if not exists \"cpq_price_rules_scope_idx\" on \"cpq_price_rules\" (\"organization_id\", \"tenant_id\");`)\n this.addSql(`create unique index if not exists \"cpq_price_rules_code_unique\" on \"cpq_price_rules\" (\"organization_id\", \"tenant_id\", \"code\");`)\n this.addSql(`create index if not exists \"cpq_price_rules_product_idx\" on \"cpq_price_rules\" (\"organization_id\", \"tenant_id\", \"product_offering_id\");`)\n }\n\n async down(): Promise<void> {\n this.addSql(`drop table if exists \"cpq_price_rules\" cascade;`)\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,iBAAiB;AAEnB,MAAM,gDAAgD,UAAU;AAAA,EACrE,MAAM,KAAoB;AACxB,SAAK,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAmBT;AACH,SAAK,OAAO,+GAA+G;AAC3H,SAAK,OAAO,gIAAgI;AAC5I,SAAK,OAAO,wIAAwI;AAAA,EACtJ;AAAA,EAEA,MAAM,OAAsB;AAC1B,SAAK,OAAO,iDAAiD;AAAA,EAC/D;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Migration } from "@mikro-orm/migrations";
|
|
2
|
+
class Migration20260410000000_cpq_drop_datacentres_inventory extends Migration {
|
|
3
|
+
async up() {
|
|
4
|
+
this.addSql(`drop table if exists "cpq_inventory_items" cascade;`);
|
|
5
|
+
this.addSql(`drop table if exists "cpq_data_centres" cascade;`);
|
|
6
|
+
}
|
|
7
|
+
async down() {
|
|
8
|
+
this.addSql(`create table "cpq_data_centres" ("id" uuid not null default gen_random_uuid(), "organization_id" uuid not null, "tenant_id" uuid not null, "code" text not null, "name" text not null, "city" text null, "country" text null, "address" text null, "capabilities" jsonb null, "is_active" boolean not null default true, "metadata" jsonb null, "created_at" timestamptz not null, "updated_at" timestamptz not null, "deleted_at" timestamptz null, constraint "cpq_data_centres_pkey" primary key ("id"));`);
|
|
9
|
+
this.addSql(`create index "cpq_data_centres_scope_idx" on "cpq_data_centres" ("organization_id", "tenant_id");`);
|
|
10
|
+
this.addSql(`alter table "cpq_data_centres" add constraint "cpq_data_centres_code_unique" unique ("organization_id", "tenant_id", "code");`);
|
|
11
|
+
this.addSql(`create table "cpq_inventory_items" ("id" uuid not null default gen_random_uuid(), "organization_id" uuid not null, "tenant_id" uuid not null, "customer_id" uuid not null, "product_id" uuid not null, "parent_inventory_item_id" uuid null, "status" text not null default 'pending', "configuration" jsonb not null, "charges" jsonb null, "data_centre_id" uuid null, "currency_code" text not null default 'USD', "activated_at" timestamptz null, "terminated_at" timestamptz null, "source_quote_id" uuid null, "source_order_id" uuid null, "metadata" jsonb null, "created_at" timestamptz not null, "updated_at" timestamptz not null, "deleted_at" timestamptz null, constraint "cpq_inventory_items_pkey" primary key ("id"));`);
|
|
12
|
+
this.addSql(`create index "cpq_inventory_items_customer_idx" on "cpq_inventory_items" ("organization_id", "tenant_id", "customer_id");`);
|
|
13
|
+
this.addSql(`create index "cpq_inventory_items_parent_idx" on "cpq_inventory_items" ("organization_id", "tenant_id", "parent_inventory_item_id");`);
|
|
14
|
+
this.addSql(`create index "cpq_inventory_items_status_idx" on "cpq_inventory_items" ("customer_id", "status");`);
|
|
15
|
+
this.addSql(`create index "cpq_inventory_items_config_gin_idx" on "cpq_inventory_items" using gin ("configuration");`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export {
|
|
19
|
+
Migration20260410000000_cpq_drop_datacentres_inventory
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=Migration20260410000000_cpq_drop_datacentres_inventory.js.map
|
package/dist/modules/cpq/migrations/Migration20260410000000_cpq_drop_datacentres_inventory.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/modules/cpq/migrations/Migration20260410000000_cpq_drop_datacentres_inventory.ts"],
|
|
4
|
+
"sourcesContent": ["import { Migration } from '@mikro-orm/migrations'\n\nexport class Migration20260410000000_cpq_drop_datacentres_inventory extends Migration {\n async up(): Promise<void> {\n this.addSql(`drop table if exists \"cpq_inventory_items\" cascade;`)\n this.addSql(`drop table if exists \"cpq_data_centres\" cascade;`)\n }\n\n async down(): Promise<void> {\n // cpq_data_centres\n this.addSql(`create table \"cpq_data_centres\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"code\" text not null, \"name\" text not null, \"city\" text null, \"country\" text null, \"address\" text null, \"capabilities\" jsonb null, \"is_active\" boolean not null default true, \"metadata\" jsonb null, \"created_at\" timestamptz not null, \"updated_at\" timestamptz not null, \"deleted_at\" timestamptz null, constraint \"cpq_data_centres_pkey\" primary key (\"id\"));`)\n this.addSql(`create index \"cpq_data_centres_scope_idx\" on \"cpq_data_centres\" (\"organization_id\", \"tenant_id\");`)\n this.addSql(`alter table \"cpq_data_centres\" add constraint \"cpq_data_centres_code_unique\" unique (\"organization_id\", \"tenant_id\", \"code\");`)\n\n // cpq_inventory_items\n this.addSql(`create table \"cpq_inventory_items\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"customer_id\" uuid not null, \"product_id\" uuid not null, \"parent_inventory_item_id\" uuid null, \"status\" text not null default 'pending', \"configuration\" jsonb not null, \"charges\" jsonb null, \"data_centre_id\" uuid null, \"currency_code\" text not null default 'USD', \"activated_at\" timestamptz null, \"terminated_at\" timestamptz null, \"source_quote_id\" uuid null, \"source_order_id\" uuid null, \"metadata\" jsonb null, \"created_at\" timestamptz not null, \"updated_at\" timestamptz not null, \"deleted_at\" timestamptz null, constraint \"cpq_inventory_items_pkey\" primary key (\"id\"));`)\n this.addSql(`create index \"cpq_inventory_items_customer_idx\" on \"cpq_inventory_items\" (\"organization_id\", \"tenant_id\", \"customer_id\");`)\n this.addSql(`create index \"cpq_inventory_items_parent_idx\" on \"cpq_inventory_items\" (\"organization_id\", \"tenant_id\", \"parent_inventory_item_id\");`)\n this.addSql(`create index \"cpq_inventory_items_status_idx\" on \"cpq_inventory_items\" (\"customer_id\", \"status\");`)\n this.addSql(`create index \"cpq_inventory_items_config_gin_idx\" on \"cpq_inventory_items\" using gin (\"configuration\");`)\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,iBAAiB;AAEnB,MAAM,+DAA+D,UAAU;AAAA,EACpF,MAAM,KAAoB;AACxB,SAAK,OAAO,qDAAqD;AACjE,SAAK,OAAO,kDAAkD;AAAA,EAChE;AAAA,EAEA,MAAM,OAAsB;AAE1B,SAAK,OAAO,8eAA8e;AAC1f,SAAK,OAAO,mGAAmG;AAC/G,SAAK,OAAO,+HAA+H;AAG3I,SAAK,OAAO,2sBAA2sB;AACvtB,SAAK,OAAO,2HAA2H;AACvI,SAAK,OAAO,sIAAsI;AAClJ,SAAK,OAAO,mGAAmG;AAC/G,SAAK,OAAO,yGAAyG;AAAA,EACvH;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { Migration } from "@mikro-orm/migrations";
|
|
2
|
+
class Migration20260410000000_cpq_wizard_rename extends Migration {
|
|
3
|
+
async up() {
|
|
4
|
+
this.addSql(`drop table if exists "cpq_workflow_instances";`);
|
|
5
|
+
this.addSql(`alter table "cpq_workflow_definitions" rename to "cpq_wizard_definitions";`);
|
|
6
|
+
this.addSql(`alter table "cpq_wizard_definitions" rename constraint "cpq_workflow_definitions_pkey" to "cpq_wizard_definitions_pkey";`);
|
|
7
|
+
this.addSql(`alter table "cpq_wizard_definitions" rename constraint "cpq_workflow_definitions_code_unique" to "cpq_wizard_definitions_code_unique";`);
|
|
8
|
+
this.addSql(`alter index "cpq_workflow_definitions_active_idx" rename to "cpq_wizard_definitions_active_idx";`);
|
|
9
|
+
this.addSql(`alter index "cpq_workflow_definitions_surface_idx" rename to "cpq_wizard_definitions_surface_idx";`);
|
|
10
|
+
this.addSql(`alter table "cpq_wizard_definitions" add column "params_schema" jsonb null;`);
|
|
11
|
+
}
|
|
12
|
+
async down() {
|
|
13
|
+
this.addSql(`alter table "cpq_wizard_definitions" drop column if exists "params_schema";`);
|
|
14
|
+
this.addSql(`alter index "cpq_wizard_definitions_active_idx" rename to "cpq_workflow_definitions_active_idx";`);
|
|
15
|
+
this.addSql(`alter index "cpq_wizard_definitions_surface_idx" rename to "cpq_workflow_definitions_surface_idx";`);
|
|
16
|
+
this.addSql(`alter table "cpq_wizard_definitions" rename constraint "cpq_wizard_definitions_code_unique" to "cpq_workflow_definitions_code_unique";`);
|
|
17
|
+
this.addSql(`alter table "cpq_wizard_definitions" rename constraint "cpq_wizard_definitions_pkey" to "cpq_workflow_definitions_pkey";`);
|
|
18
|
+
this.addSql(`alter table "cpq_wizard_definitions" rename to "cpq_workflow_definitions";`);
|
|
19
|
+
this.addSql(`create table "cpq_workflow_instances" (
|
|
20
|
+
"id" uuid not null default gen_random_uuid(),
|
|
21
|
+
"organization_id" uuid not null,
|
|
22
|
+
"tenant_id" uuid not null,
|
|
23
|
+
"workflow_definition_id" uuid not null,
|
|
24
|
+
"definition_version" int not null,
|
|
25
|
+
"quote_id" uuid null,
|
|
26
|
+
"quote_configuration_id" uuid null,
|
|
27
|
+
"customer_id" uuid null,
|
|
28
|
+
"current_step_id" text not null,
|
|
29
|
+
"completed_steps" jsonb not null default '[]',
|
|
30
|
+
"step_data" jsonb not null default '{}',
|
|
31
|
+
"status" text not null default 'active',
|
|
32
|
+
"started_by" uuid null,
|
|
33
|
+
"created_at" timestamptz not null,
|
|
34
|
+
"updated_at" timestamptz not null,
|
|
35
|
+
constraint "cpq_workflow_instances_pkey" primary key ("id")
|
|
36
|
+
);`);
|
|
37
|
+
this.addSql(`create index "cpq_workflow_instances_def_idx" on "cpq_workflow_instances" ("organization_id", "tenant_id", "workflow_definition_id");`);
|
|
38
|
+
this.addSql(`create index "cpq_workflow_instances_quote_idx" on "cpq_workflow_instances" ("organization_id", "tenant_id", "quote_id");`);
|
|
39
|
+
this.addSql(`create index "cpq_workflow_instances_user_idx" on "cpq_workflow_instances" ("organization_id", "tenant_id", "started_by", "status");`);
|
|
40
|
+
this.addSql(`create index "cpq_workflow_instances_customer_idx" on "cpq_workflow_instances" ("organization_id", "tenant_id", "customer_id");`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
export {
|
|
44
|
+
Migration20260410000000_cpq_wizard_rename
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=Migration20260410000000_cpq_wizard_rename.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/modules/cpq/migrations/Migration20260410000000_cpq_wizard_rename.ts"],
|
|
4
|
+
"sourcesContent": ["import { Migration } from '@mikro-orm/migrations'\n\nexport class Migration20260410000000_cpq_wizard_rename extends Migration {\n async up(): Promise<void> {\n // \u2500\u2500\u2500 Drop workflow instances table (no longer persisted) \u2500\u2500\u2500\u2500\u2500\u2500\u2500\n this.addSql(`drop table if exists \"cpq_workflow_instances\";`)\n\n // \u2500\u2500\u2500 Rename cpq_workflow_definitions \u2192 cpq_wizard_definitions \u2500\u2500\n this.addSql(`alter table \"cpq_workflow_definitions\" rename to \"cpq_wizard_definitions\";`)\n\n // \u2500\u2500\u2500 Rename constraints and indexes \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n this.addSql(`alter table \"cpq_wizard_definitions\" rename constraint \"cpq_workflow_definitions_pkey\" to \"cpq_wizard_definitions_pkey\";`)\n this.addSql(`alter table \"cpq_wizard_definitions\" rename constraint \"cpq_workflow_definitions_code_unique\" to \"cpq_wizard_definitions_code_unique\";`)\n this.addSql(`alter index \"cpq_workflow_definitions_active_idx\" rename to \"cpq_wizard_definitions_active_idx\";`)\n this.addSql(`alter index \"cpq_workflow_definitions_surface_idx\" rename to \"cpq_wizard_definitions_surface_idx\";`)\n\n // \u2500\u2500\u2500 Add params_schema column \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n this.addSql(`alter table \"cpq_wizard_definitions\" add column \"params_schema\" jsonb null;`)\n }\n\n async down(): Promise<void> {\n // \u2500\u2500\u2500 Remove params_schema column \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n this.addSql(`alter table \"cpq_wizard_definitions\" drop column if exists \"params_schema\";`)\n\n // \u2500\u2500\u2500 Rename back \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n this.addSql(`alter index \"cpq_wizard_definitions_active_idx\" rename to \"cpq_workflow_definitions_active_idx\";`)\n this.addSql(`alter index \"cpq_wizard_definitions_surface_idx\" rename to \"cpq_workflow_definitions_surface_idx\";`)\n this.addSql(`alter table \"cpq_wizard_definitions\" rename constraint \"cpq_wizard_definitions_code_unique\" to \"cpq_workflow_definitions_code_unique\";`)\n this.addSql(`alter table \"cpq_wizard_definitions\" rename constraint \"cpq_wizard_definitions_pkey\" to \"cpq_workflow_definitions_pkey\";`)\n this.addSql(`alter table \"cpq_wizard_definitions\" rename to \"cpq_workflow_definitions\";`)\n\n // \u2500\u2500\u2500 Recreate workflow instances table \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n this.addSql(`create table \"cpq_workflow_instances\" (\n \"id\" uuid not null default gen_random_uuid(),\n \"organization_id\" uuid not null,\n \"tenant_id\" uuid not null,\n \"workflow_definition_id\" uuid not null,\n \"definition_version\" int not null,\n \"quote_id\" uuid null,\n \"quote_configuration_id\" uuid null,\n \"customer_id\" uuid null,\n \"current_step_id\" text not null,\n \"completed_steps\" jsonb not null default '[]',\n \"step_data\" jsonb not null default '{}',\n \"status\" text not null default 'active',\n \"started_by\" uuid null,\n \"created_at\" timestamptz not null,\n \"updated_at\" timestamptz not null,\n constraint \"cpq_workflow_instances_pkey\" primary key (\"id\")\n );`)\n this.addSql(`create index \"cpq_workflow_instances_def_idx\" on \"cpq_workflow_instances\" (\"organization_id\", \"tenant_id\", \"workflow_definition_id\");`)\n this.addSql(`create index \"cpq_workflow_instances_quote_idx\" on \"cpq_workflow_instances\" (\"organization_id\", \"tenant_id\", \"quote_id\");`)\n this.addSql(`create index \"cpq_workflow_instances_user_idx\" on \"cpq_workflow_instances\" (\"organization_id\", \"tenant_id\", \"started_by\", \"status\");`)\n this.addSql(`create index \"cpq_workflow_instances_customer_idx\" on \"cpq_workflow_instances\" (\"organization_id\", \"tenant_id\", \"customer_id\");`)\n }\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,iBAAiB;AAEnB,MAAM,kDAAkD,UAAU;AAAA,EACvE,MAAM,KAAoB;AAExB,SAAK,OAAO,gDAAgD;AAG5D,SAAK,OAAO,4EAA4E;AAGxF,SAAK,OAAO,0HAA0H;AACtI,SAAK,OAAO,wIAAwI;AACpJ,SAAK,OAAO,kGAAkG;AAC9G,SAAK,OAAO,oGAAoG;AAGhH,SAAK,OAAO,6EAA6E;AAAA,EAC3F;AAAA,EAEA,MAAM,OAAsB;AAE1B,SAAK,OAAO,6EAA6E;AAGzF,SAAK,OAAO,kGAAkG;AAC9G,SAAK,OAAO,oGAAoG;AAChH,SAAK,OAAO,wIAAwI;AACpJ,SAAK,OAAO,0HAA0H;AACtI,SAAK,OAAO,4EAA4E;AAGxF,SAAK,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAiBT;AACH,SAAK,OAAO,uIAAuI;AACnJ,SAAK,OAAO,2HAA2H;AACvI,SAAK,OAAO,sIAAsI;AAClJ,SAAK,OAAO,iIAAiI;AAAA,EAC/I;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|