@open-mercato/core 0.4.2-canary-ed15f2e753 → 0.4.2-canary-e2aeb1a7bf

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (711) hide show
  1. package/dist/generated/entities/notification/index.js +57 -0
  2. package/dist/generated/entities/notification/index.js.map +7 -0
  3. package/dist/generated/entities.ids.generated.js +5 -2
  4. package/dist/generated/entities.ids.generated.js.map +2 -2
  5. package/dist/generated/entity-fields-registry.js +2 -2
  6. package/dist/generated/entity-fields-registry.js.map +2 -2
  7. package/dist/modules/api_docs/frontend/docs/api/page.js +3 -2
  8. package/dist/modules/api_docs/frontend/docs/api/page.js.map +2 -2
  9. package/dist/modules/api_keys/backend/api-keys/page.js +1 -1
  10. package/dist/modules/api_keys/backend/api-keys/page.js.map +2 -2
  11. package/dist/modules/api_keys/setup.js +11 -0
  12. package/dist/modules/api_keys/setup.js.map +7 -0
  13. package/dist/modules/attachments/components/AttachmentLibrary.js +5 -1
  14. package/dist/modules/attachments/components/AttachmentLibrary.js.map +2 -2
  15. package/dist/modules/attachments/components/AttachmentPartitionSettings.js +2 -0
  16. package/dist/modules/attachments/components/AttachmentPartitionSettings.js.map +2 -2
  17. package/dist/modules/attachments/lib/assignmentDetails.js +31 -17
  18. package/dist/modules/attachments/lib/assignmentDetails.js.map +2 -2
  19. package/dist/modules/attachments/lib/partitions.js +3 -3
  20. package/dist/modules/attachments/lib/partitions.js.map +2 -2
  21. package/dist/modules/attachments/setup.js +11 -0
  22. package/dist/modules/attachments/setup.js.map +7 -0
  23. package/dist/modules/audit_logs/setup.js +12 -0
  24. package/dist/modules/audit_logs/setup.js.map +7 -0
  25. package/dist/modules/auth/api/admin/nav.js +4 -3
  26. package/dist/modules/auth/api/admin/nav.js.map +2 -2
  27. package/dist/modules/auth/api/login.js +25 -6
  28. package/dist/modules/auth/api/login.js.map +2 -2
  29. package/dist/modules/auth/api/profile/route.js +157 -0
  30. package/dist/modules/auth/api/profile/route.js.map +7 -0
  31. package/dist/modules/auth/api/reset/confirm.js +25 -2
  32. package/dist/modules/auth/api/reset/confirm.js.map +2 -2
  33. package/dist/modules/auth/api/reset.js +23 -0
  34. package/dist/modules/auth/api/reset.js.map +2 -2
  35. package/dist/modules/auth/api/sidebar/preferences/route.js +14 -9
  36. package/dist/modules/auth/api/sidebar/preferences/route.js.map +2 -2
  37. package/dist/modules/auth/api/users/route.js +4 -2
  38. package/dist/modules/auth/api/users/route.js.map +2 -2
  39. package/dist/modules/auth/backend/auth/profile/page.js +141 -0
  40. package/dist/modules/auth/backend/auth/profile/page.js.map +7 -0
  41. package/dist/modules/auth/backend/auth/profile/page.meta.js +13 -0
  42. package/dist/modules/auth/backend/auth/profile/page.meta.js.map +7 -0
  43. package/dist/modules/auth/backend/roles/[id]/edit/page.js +4 -1
  44. package/dist/modules/auth/backend/roles/[id]/edit/page.js.map +2 -2
  45. package/dist/modules/auth/backend/roles/page.js +3 -3
  46. package/dist/modules/auth/backend/roles/page.js.map +2 -2
  47. package/dist/modules/auth/backend/users/[id]/edit/page.js +18 -3
  48. package/dist/modules/auth/backend/users/[id]/edit/page.js.map +2 -2
  49. package/dist/modules/auth/backend/users/create/page.js +15 -2
  50. package/dist/modules/auth/backend/users/create/page.js.map +2 -2
  51. package/dist/modules/auth/backend/users/page.js +3 -3
  52. package/dist/modules/auth/backend/users/page.js.map +2 -2
  53. package/dist/modules/auth/cli.js +25 -11
  54. package/dist/modules/auth/cli.js.map +2 -2
  55. package/dist/modules/auth/commands/users.js +59 -2
  56. package/dist/modules/auth/commands/users.js.map +2 -2
  57. package/dist/modules/auth/data/validators.js +6 -3
  58. package/dist/modules/auth/data/validators.js.map +2 -2
  59. package/dist/modules/auth/frontend/login.js +112 -3
  60. package/dist/modules/auth/frontend/login.js.map +2 -2
  61. package/dist/modules/auth/frontend/reset/[token]/page.js +20 -10
  62. package/dist/modules/auth/frontend/reset/[token]/page.js.map +2 -2
  63. package/dist/modules/auth/lib/setup-app.js +70 -167
  64. package/dist/modules/auth/lib/setup-app.js.map +2 -2
  65. package/dist/modules/auth/notifications.js +112 -0
  66. package/dist/modules/auth/notifications.js.map +7 -0
  67. package/dist/modules/auth/services/authService.js +24 -3
  68. package/dist/modules/auth/services/authService.js.map +2 -2
  69. package/dist/modules/auth/setup.js +11 -0
  70. package/dist/modules/auth/setup.js.map +7 -0
  71. package/dist/modules/business_rules/api/execute/route.js +7 -1
  72. package/dist/modules/business_rules/api/execute/route.js.map +2 -2
  73. package/dist/modules/business_rules/backend/rules/page.js +4 -0
  74. package/dist/modules/business_rules/backend/rules/page.js.map +2 -2
  75. package/dist/modules/business_rules/backend/sets/page.js +3 -0
  76. package/dist/modules/business_rules/backend/sets/page.js.map +2 -2
  77. package/dist/modules/business_rules/cli.js +2 -1
  78. package/dist/modules/business_rules/cli.js.map +2 -2
  79. package/dist/modules/business_rules/data/validators.js +0 -34
  80. package/dist/modules/business_rules/data/validators.js.map +2 -2
  81. package/dist/modules/business_rules/index.js +1 -21
  82. package/dist/modules/business_rules/index.js.map +2 -2
  83. package/dist/modules/business_rules/lib/rule-engine.js +34 -185
  84. package/dist/modules/business_rules/lib/rule-engine.js.map +2 -2
  85. package/dist/modules/business_rules/notifications.js +28 -0
  86. package/dist/modules/business_rules/notifications.js.map +7 -0
  87. package/dist/modules/business_rules/setup.js +11 -0
  88. package/dist/modules/business_rules/setup.js.map +7 -0
  89. package/dist/modules/business_rules/subscribers/rule-execution-failed-notification.js +37 -0
  90. package/dist/modules/business_rules/subscribers/rule-execution-failed-notification.js.map +7 -0
  91. package/dist/modules/catalog/components/PriceKindSettings.js +2 -0
  92. package/dist/modules/catalog/components/PriceKindSettings.js.map +2 -2
  93. package/dist/modules/catalog/components/categories/CategoriesDataTable.js +2 -2
  94. package/dist/modules/catalog/components/categories/CategoriesDataTable.js.map +2 -2
  95. package/dist/modules/catalog/components/products/ProductsDataTable.js +2 -0
  96. package/dist/modules/catalog/components/products/ProductsDataTable.js.map +2 -2
  97. package/dist/modules/catalog/notifications.js +28 -0
  98. package/dist/modules/catalog/notifications.js.map +7 -0
  99. package/dist/modules/catalog/setup.js +22 -0
  100. package/dist/modules/catalog/setup.js.map +7 -0
  101. package/dist/modules/catalog/subscribers/low-stock-notification.js +38 -0
  102. package/dist/modules/catalog/subscribers/low-stock-notification.js.map +7 -0
  103. package/dist/modules/configs/cli.js +6 -0
  104. package/dist/modules/configs/cli.js.map +2 -2
  105. package/dist/modules/configs/components/CachePanel.js +4 -4
  106. package/dist/modules/configs/components/CachePanel.js.map +2 -2
  107. package/dist/modules/configs/lib/system-status.js +48 -1
  108. package/dist/modules/configs/lib/system-status.js.map +2 -2
  109. package/dist/modules/configs/lib/upgrade-actions.js +1 -302
  110. package/dist/modules/configs/lib/upgrade-actions.js.map +2 -2
  111. package/dist/modules/configs/setup.js +16 -0
  112. package/dist/modules/configs/setup.js.map +7 -0
  113. package/dist/modules/currencies/backend/currencies/page.js +3 -0
  114. package/dist/modules/currencies/backend/currencies/page.js.map +2 -2
  115. package/dist/modules/currencies/backend/exchange-rates/page.js +2 -0
  116. package/dist/modules/currencies/backend/exchange-rates/page.js.map +2 -2
  117. package/dist/modules/currencies/setup.js +16 -0
  118. package/dist/modules/currencies/setup.js.map +7 -0
  119. package/dist/modules/customers/backend/customers/companies/page.js +3 -0
  120. package/dist/modules/customers/backend/customers/companies/page.js.map +2 -2
  121. package/dist/modules/customers/backend/customers/deals/page.js +3 -0
  122. package/dist/modules/customers/backend/customers/deals/page.js.map +2 -2
  123. package/dist/modules/customers/backend/customers/people/page.js +3 -0
  124. package/dist/modules/customers/backend/customers/people/page.js.map +2 -2
  125. package/dist/modules/customers/commands/deals.js +31 -0
  126. package/dist/modules/customers/commands/deals.js.map +2 -2
  127. package/dist/modules/customers/components/CustomerTodosTable.js +1 -0
  128. package/dist/modules/customers/components/CustomerTodosTable.js.map +2 -2
  129. package/dist/modules/customers/notifications.js +48 -0
  130. package/dist/modules/customers/notifications.js.map +7 -0
  131. package/dist/modules/customers/setup.js +36 -0
  132. package/dist/modules/customers/setup.js.map +7 -0
  133. package/dist/modules/customers/widgets/dashboard/customer-todos/widget.js +2 -1
  134. package/dist/modules/customers/widgets/dashboard/customer-todos/widget.js.map +2 -2
  135. package/dist/modules/customers/widgets/dashboard/new-customers/widget.js +2 -1
  136. package/dist/modules/customers/widgets/dashboard/new-customers/widget.js.map +2 -2
  137. package/dist/modules/customers/widgets/dashboard/new-deals/widget.js +2 -1
  138. package/dist/modules/customers/widgets/dashboard/new-deals/widget.js.map +2 -2
  139. package/dist/modules/customers/widgets/dashboard/next-interactions/widget.js +2 -1
  140. package/dist/modules/customers/widgets/dashboard/next-interactions/widget.js.map +2 -2
  141. package/dist/modules/dashboards/cli.js +44 -5
  142. package/dist/modules/dashboards/cli.js.map +2 -2
  143. package/dist/modules/dashboards/components/WidgetVisibilityEditor.js +16 -11
  144. package/dist/modules/dashboards/components/WidgetVisibilityEditor.js.map +3 -3
  145. package/dist/modules/dashboards/lib/role-widgets.js +58 -0
  146. package/dist/modules/dashboards/lib/role-widgets.js.map +7 -0
  147. package/dist/modules/dashboards/services/widgetDataService.js +139 -3
  148. package/dist/modules/dashboards/services/widgetDataService.js.map +2 -2
  149. package/dist/modules/dashboards/setup.js +27 -0
  150. package/dist/modules/dashboards/setup.js.map +7 -0
  151. package/dist/modules/dashboards/widgets/dashboard/aov-kpi/widget.js +2 -1
  152. package/dist/modules/dashboards/widgets/dashboard/aov-kpi/widget.js.map +2 -2
  153. package/dist/modules/dashboards/widgets/dashboard/new-customers-kpi/widget.js +2 -1
  154. package/dist/modules/dashboards/widgets/dashboard/new-customers-kpi/widget.js.map +2 -2
  155. package/dist/modules/dashboards/widgets/dashboard/orders-by-status/widget.js +2 -1
  156. package/dist/modules/dashboards/widgets/dashboard/orders-by-status/widget.js.map +2 -2
  157. package/dist/modules/dashboards/widgets/dashboard/orders-kpi/widget.js +2 -1
  158. package/dist/modules/dashboards/widgets/dashboard/orders-kpi/widget.js.map +2 -2
  159. package/dist/modules/dashboards/widgets/dashboard/pipeline-summary/widget.js +2 -1
  160. package/dist/modules/dashboards/widgets/dashboard/pipeline-summary/widget.js.map +2 -2
  161. package/dist/modules/dashboards/widgets/dashboard/revenue-kpi/widget.js +2 -1
  162. package/dist/modules/dashboards/widgets/dashboard/revenue-kpi/widget.js.map +2 -2
  163. package/dist/modules/dashboards/widgets/dashboard/revenue-trend/widget.js +2 -1
  164. package/dist/modules/dashboards/widgets/dashboard/revenue-trend/widget.js.map +2 -2
  165. package/dist/modules/dashboards/widgets/dashboard/sales-by-region/widget.js +2 -1
  166. package/dist/modules/dashboards/widgets/dashboard/sales-by-region/widget.js.map +2 -2
  167. package/dist/modules/dashboards/widgets/dashboard/top-customers/widget.js +2 -1
  168. package/dist/modules/dashboards/widgets/dashboard/top-customers/widget.js.map +2 -2
  169. package/dist/modules/dashboards/widgets/dashboard/top-products/widget.js +2 -1
  170. package/dist/modules/dashboards/widgets/dashboard/top-products/widget.js.map +2 -2
  171. package/dist/modules/dictionaries/components/DictionaryTable.js +2 -0
  172. package/dist/modules/dictionaries/components/DictionaryTable.js.map +2 -2
  173. package/dist/modules/dictionaries/setup.js +12 -0
  174. package/dist/modules/dictionaries/setup.js.map +7 -0
  175. package/dist/modules/directory/api/get/tenants/lookup.js +70 -0
  176. package/dist/modules/directory/api/get/tenants/lookup.js.map +7 -0
  177. package/dist/modules/directory/backend/directory/organizations/page.js +2 -2
  178. package/dist/modules/directory/backend/directory/organizations/page.js.map +2 -2
  179. package/dist/modules/directory/backend/directory/tenants/page.js +2 -2
  180. package/dist/modules/directory/backend/directory/tenants/page.js.map +2 -2
  181. package/dist/modules/directory/setup.js +12 -0
  182. package/dist/modules/directory/setup.js.map +7 -0
  183. package/dist/modules/entities/backend/entities/user/[entityId]/records/page.js +2 -2
  184. package/dist/modules/entities/backend/entities/user/[entityId]/records/page.js.map +2 -2
  185. package/dist/modules/entities/components/SystemEntitiesTable.js +1 -1
  186. package/dist/modules/entities/components/SystemEntitiesTable.js.map +2 -2
  187. package/dist/modules/entities/components/UserEntitiesTable.js +2 -2
  188. package/dist/modules/entities/components/UserEntitiesTable.js.map +2 -2
  189. package/dist/modules/entities/setup.js +11 -0
  190. package/dist/modules/entities/setup.js.map +7 -0
  191. package/dist/modules/feature_toggles/components/FeatureTogglesTable.js +3 -3
  192. package/dist/modules/feature_toggles/components/FeatureTogglesTable.js.map +2 -2
  193. package/dist/modules/feature_toggles/components/OverridesTable.js +1 -1
  194. package/dist/modules/feature_toggles/components/OverridesTable.js.map +2 -2
  195. package/dist/modules/feature_toggles/setup.js +11 -0
  196. package/dist/modules/feature_toggles/setup.js.map +7 -0
  197. package/dist/modules/notifications/acl.js +11 -0
  198. package/dist/modules/notifications/acl.js.map +7 -0
  199. package/dist/modules/notifications/api/[id]/action/route.js +74 -0
  200. package/dist/modules/notifications/api/[id]/action/route.js.map +7 -0
  201. package/dist/modules/notifications/api/[id]/dismiss/route.js +15 -0
  202. package/dist/modules/notifications/api/[id]/dismiss/route.js.map +7 -0
  203. package/dist/modules/notifications/api/[id]/read/route.js +15 -0
  204. package/dist/modules/notifications/api/[id]/read/route.js.map +7 -0
  205. package/dist/modules/notifications/api/[id]/restore/route.js +53 -0
  206. package/dist/modules/notifications/api/[id]/restore/route.js.map +7 -0
  207. package/dist/modules/notifications/api/batch/route.js +17 -0
  208. package/dist/modules/notifications/api/batch/route.js.map +7 -0
  209. package/dist/modules/notifications/api/feature/route.js +17 -0
  210. package/dist/modules/notifications/api/feature/route.js.map +7 -0
  211. package/dist/modules/notifications/api/mark-all-read/route.js +35 -0
  212. package/dist/modules/notifications/api/mark-all-read/route.js.map +7 -0
  213. package/dist/modules/notifications/api/openapi.js +76 -0
  214. package/dist/modules/notifications/api/openapi.js.map +7 -0
  215. package/dist/modules/notifications/api/role/route.js +17 -0
  216. package/dist/modules/notifications/api/role/route.js.map +7 -0
  217. package/dist/modules/notifications/api/route.js +85 -0
  218. package/dist/modules/notifications/api/route.js.map +7 -0
  219. package/dist/modules/notifications/api/settings/route.js +155 -0
  220. package/dist/modules/notifications/api/settings/route.js.map +7 -0
  221. package/dist/modules/notifications/api/unread-count/route.js +38 -0
  222. package/dist/modules/notifications/api/unread-count/route.js.map +7 -0
  223. package/dist/modules/notifications/backend/config/notifications/page.js +10 -0
  224. package/dist/modules/notifications/backend/config/notifications/page.js.map +7 -0
  225. package/dist/modules/notifications/backend/config/notifications/page.meta.js +24 -0
  226. package/dist/modules/notifications/backend/config/notifications/page.meta.js.map +7 -0
  227. package/dist/modules/notifications/cli.js +16 -0
  228. package/dist/modules/notifications/cli.js.map +7 -0
  229. package/dist/modules/notifications/data/entities.js +112 -0
  230. package/dist/modules/notifications/data/entities.js.map +7 -0
  231. package/dist/modules/notifications/data/validators.js +98 -0
  232. package/dist/modules/notifications/data/validators.js.map +7 -0
  233. package/dist/modules/notifications/di.js +13 -0
  234. package/dist/modules/notifications/di.js.map +7 -0
  235. package/dist/modules/notifications/emails/NotificationEmail.js +58 -0
  236. package/dist/modules/notifications/emails/NotificationEmail.js.map +7 -0
  237. package/dist/modules/notifications/frontend/NotificationInboxPageClient.js +44 -0
  238. package/dist/modules/notifications/frontend/NotificationInboxPageClient.js.map +7 -0
  239. package/dist/modules/notifications/frontend/NotificationSettingsPageClient.js +220 -0
  240. package/dist/modules/notifications/frontend/NotificationSettingsPageClient.js.map +7 -0
  241. package/dist/modules/notifications/index.js +14 -0
  242. package/dist/modules/notifications/index.js.map +7 -0
  243. package/dist/modules/notifications/lib/deliveryConfig.js +107 -0
  244. package/dist/modules/notifications/lib/deliveryConfig.js.map +7 -0
  245. package/dist/modules/notifications/lib/deliveryStrategies.js +14 -0
  246. package/dist/modules/notifications/lib/deliveryStrategies.js.map +7 -0
  247. package/dist/modules/notifications/lib/events.js +12 -0
  248. package/dist/modules/notifications/lib/events.js.map +7 -0
  249. package/dist/modules/notifications/lib/notificationBuilder.js +66 -0
  250. package/dist/modules/notifications/lib/notificationBuilder.js.map +7 -0
  251. package/dist/modules/notifications/lib/notificationFactory.js +54 -0
  252. package/dist/modules/notifications/lib/notificationFactory.js.map +7 -0
  253. package/dist/modules/notifications/lib/notificationMapper.js +34 -0
  254. package/dist/modules/notifications/lib/notificationMapper.js.map +7 -0
  255. package/dist/modules/notifications/lib/notificationRecipients.js +35 -0
  256. package/dist/modules/notifications/lib/notificationRecipients.js.map +7 -0
  257. package/dist/modules/notifications/lib/notificationService.js +279 -0
  258. package/dist/modules/notifications/lib/notificationService.js.map +7 -0
  259. package/dist/modules/notifications/lib/routeHelpers.js +101 -0
  260. package/dist/modules/notifications/lib/routeHelpers.js.map +7 -0
  261. package/dist/modules/notifications/lib/safeHref.js +24 -0
  262. package/dist/modules/notifications/lib/safeHref.js.map +7 -0
  263. package/dist/modules/notifications/migrations/Migration20260123000001.js +70 -0
  264. package/dist/modules/notifications/migrations/Migration20260123000001.js.map +7 -0
  265. package/dist/modules/notifications/migrations/Migration20260126150000.js +37 -0
  266. package/dist/modules/notifications/migrations/Migration20260126150000.js.map +7 -0
  267. package/dist/modules/notifications/migrations/Migration20260129082610.js +13 -0
  268. package/dist/modules/notifications/migrations/Migration20260129082610.js.map +7 -0
  269. package/dist/modules/notifications/subscribers/deliver-notification.js +165 -0
  270. package/dist/modules/notifications/subscribers/deliver-notification.js.map +7 -0
  271. package/dist/modules/notifications/workers/create-notification.worker.js +70 -0
  272. package/dist/modules/notifications/workers/create-notification.worker.js.map +7 -0
  273. package/dist/modules/perspectives/setup.js +12 -0
  274. package/dist/modules/perspectives/setup.js.map +7 -0
  275. package/dist/modules/planner/backend/planner/availability-rulesets/page.js +2 -2
  276. package/dist/modules/planner/backend/planner/availability-rulesets/page.js.map +2 -2
  277. package/dist/modules/planner/setup.js +21 -0
  278. package/dist/modules/planner/setup.js.map +7 -0
  279. package/dist/modules/query_index/cli.js +63 -7
  280. package/dist/modules/query_index/cli.js.map +2 -2
  281. package/dist/modules/query_index/components/QueryIndexesTable.js +7 -1
  282. package/dist/modules/query_index/components/QueryIndexesTable.js.map +2 -2
  283. package/dist/modules/query_index/setup.js +11 -0
  284. package/dist/modules/query_index/setup.js.map +7 -0
  285. package/dist/modules/resources/backend/resources/resource-types/page.js +2 -2
  286. package/dist/modules/resources/backend/resources/resource-types/page.js.map +2 -2
  287. package/dist/modules/resources/backend/resources/resources/page.js +2 -2
  288. package/dist/modules/resources/backend/resources/resources/page.js.map +2 -2
  289. package/dist/modules/resources/setup.js +21 -0
  290. package/dist/modules/resources/setup.js.map +7 -0
  291. package/dist/modules/sales/acl.js +0 -1
  292. package/dist/modules/sales/acl.js.map +2 -2
  293. package/dist/modules/sales/backend/sales/channels/offers/page.js +2 -0
  294. package/dist/modules/sales/backend/sales/channels/offers/page.js.map +2 -2
  295. package/dist/modules/sales/backend/sales/channels/page.js +2 -0
  296. package/dist/modules/sales/backend/sales/channels/page.js.map +2 -2
  297. package/dist/modules/sales/backend/sales/documents/[id]/page.js +0 -12
  298. package/dist/modules/sales/backend/sales/documents/[id]/page.js.map +2 -2
  299. package/dist/modules/sales/cli.js +2 -42
  300. package/dist/modules/sales/cli.js.map +2 -2
  301. package/dist/modules/sales/commands/documents.js +53 -62
  302. package/dist/modules/sales/commands/documents.js.map +2 -2
  303. package/dist/modules/sales/commands/payments.js +26 -0
  304. package/dist/modules/sales/commands/payments.js.map +2 -2
  305. package/dist/modules/sales/components/AdjustmentKindSettings.js +2 -2
  306. package/dist/modules/sales/components/AdjustmentKindSettings.js.map +2 -2
  307. package/dist/modules/sales/components/PaymentMethodsSettings.js +2 -2
  308. package/dist/modules/sales/components/PaymentMethodsSettings.js.map +2 -2
  309. package/dist/modules/sales/components/ShippingMethodsSettings.js +2 -2
  310. package/dist/modules/sales/components/ShippingMethodsSettings.js.map +2 -2
  311. package/dist/modules/sales/components/TaxRatesSettings.js +2 -2
  312. package/dist/modules/sales/components/TaxRatesSettings.js.map +2 -2
  313. package/dist/modules/sales/components/channels/SalesChannelOffersPanel.js +2 -0
  314. package/dist/modules/sales/components/channels/SalesChannelOffersPanel.js.map +2 -2
  315. package/dist/modules/sales/components/documents/AdjustmentsSection.js +2 -0
  316. package/dist/modules/sales/components/documents/AdjustmentsSection.js.map +2 -2
  317. package/dist/modules/sales/components/documents/PaymentsSection.js +2 -1
  318. package/dist/modules/sales/components/documents/PaymentsSection.js.map +2 -2
  319. package/dist/modules/sales/components/documents/SalesDocumentsTable.js +2 -0
  320. package/dist/modules/sales/components/documents/SalesDocumentsTable.js.map +2 -2
  321. package/dist/modules/sales/lib/dictionaries.js +0 -3
  322. package/dist/modules/sales/lib/dictionaries.js.map +2 -2
  323. package/dist/modules/sales/lib/seeds.js +48 -0
  324. package/dist/modules/sales/lib/seeds.js.map +7 -0
  325. package/dist/modules/sales/notifications.client.js +51 -0
  326. package/dist/modules/sales/notifications.client.js.map +7 -0
  327. package/dist/modules/sales/notifications.js +88 -0
  328. package/dist/modules/sales/notifications.js.map +7 -0
  329. package/dist/modules/sales/setup.js +99 -0
  330. package/dist/modules/sales/setup.js.map +7 -0
  331. package/dist/modules/sales/subscribers/quote-expiring-notification.js +38 -0
  332. package/dist/modules/sales/subscribers/quote-expiring-notification.js.map +7 -0
  333. package/dist/modules/sales/widgets/notifications/SalesOrderCreatedRenderer.js +137 -0
  334. package/dist/modules/sales/widgets/notifications/SalesOrderCreatedRenderer.js.map +7 -0
  335. package/dist/modules/sales/widgets/notifications/SalesQuoteCreatedRenderer.js +137 -0
  336. package/dist/modules/sales/widgets/notifications/SalesQuoteCreatedRenderer.js.map +7 -0
  337. package/dist/modules/sales/widgets/notifications/index.js +7 -0
  338. package/dist/modules/sales/widgets/notifications/index.js.map +7 -0
  339. package/dist/modules/sales/widgets/notifications/useSalesDocumentTotals.js +60 -0
  340. package/dist/modules/sales/widgets/notifications/useSalesDocumentTotals.js.map +7 -0
  341. package/dist/modules/staff/backend/staff/team-members/page.js +1 -1
  342. package/dist/modules/staff/backend/staff/team-members/page.js.map +2 -2
  343. package/dist/modules/staff/backend/staff/team-roles/page.js +2 -2
  344. package/dist/modules/staff/backend/staff/team-roles/page.js.map +2 -2
  345. package/dist/modules/staff/backend/staff/teams/[id]/edit/page.js +2 -2
  346. package/dist/modules/staff/backend/staff/teams/[id]/edit/page.js.map +2 -2
  347. package/dist/modules/staff/backend/staff/teams/page.js +2 -2
  348. package/dist/modules/staff/backend/staff/teams/page.js.map +2 -2
  349. package/dist/modules/staff/commands/leave-requests.js +79 -0
  350. package/dist/modules/staff/commands/leave-requests.js.map +2 -2
  351. package/dist/modules/staff/notifications.js +75 -0
  352. package/dist/modules/staff/notifications.js.map +7 -0
  353. package/dist/modules/staff/setup.js +27 -0
  354. package/dist/modules/staff/setup.js.map +7 -0
  355. package/dist/modules/workflows/acl.js +0 -2
  356. package/dist/modules/workflows/acl.js.map +2 -2
  357. package/dist/modules/workflows/api/instances/route.js +6 -18
  358. package/dist/modules/workflows/api/instances/route.js.map +2 -2
  359. package/dist/modules/workflows/api/tasks/route.js +1 -6
  360. package/dist/modules/workflows/api/tasks/route.js.map +2 -2
  361. package/dist/modules/workflows/backend/definitions/[id]/page.js +1 -9
  362. package/dist/modules/workflows/backend/definitions/[id]/page.js.map +2 -2
  363. package/dist/modules/workflows/backend/definitions/[id]/page.meta.js +1 -1
  364. package/dist/modules/workflows/backend/definitions/[id]/page.meta.js.map +2 -2
  365. package/dist/modules/workflows/backend/definitions/create/page.js +15 -24
  366. package/dist/modules/workflows/backend/definitions/create/page.js.map +2 -2
  367. package/dist/modules/workflows/backend/definitions/create/page.meta.js +1 -1
  368. package/dist/modules/workflows/backend/definitions/create/page.meta.js.map +2 -2
  369. package/dist/modules/workflows/backend/definitions/page.js +5 -0
  370. package/dist/modules/workflows/backend/definitions/page.js.map +2 -2
  371. package/dist/modules/workflows/backend/definitions/visual-editor/page.js +132 -150
  372. package/dist/modules/workflows/backend/definitions/visual-editor/page.js.map +2 -2
  373. package/dist/modules/workflows/backend/definitions/visual-editor/page.meta.js +1 -1
  374. package/dist/modules/workflows/backend/definitions/visual-editor/page.meta.js.map +2 -2
  375. package/dist/modules/workflows/backend/events/[id]/page.js +1 -1
  376. package/dist/modules/workflows/backend/events/[id]/page.js.map +2 -2
  377. package/dist/modules/workflows/backend/events/[id]/page.meta.js +2 -2
  378. package/dist/modules/workflows/backend/events/[id]/page.meta.js.map +2 -2
  379. package/dist/modules/workflows/backend/instances/[id]/page.meta.js +2 -2
  380. package/dist/modules/workflows/backend/instances/[id]/page.meta.js.map +2 -2
  381. package/dist/modules/workflows/backend/instances/page.js +3 -0
  382. package/dist/modules/workflows/backend/instances/page.js.map +2 -2
  383. package/dist/modules/workflows/backend/tasks/[id]/page.js +1 -1
  384. package/dist/modules/workflows/backend/tasks/[id]/page.js.map +2 -2
  385. package/dist/modules/workflows/backend/tasks/[id]/page.meta.js +2 -2
  386. package/dist/modules/workflows/backend/tasks/[id]/page.meta.js.map +2 -2
  387. package/dist/modules/workflows/backend/tasks/page.js +9 -5
  388. package/dist/modules/workflows/backend/tasks/page.js.map +2 -2
  389. package/dist/modules/workflows/cli.js +15 -93
  390. package/dist/modules/workflows/cli.js.map +3 -3
  391. package/dist/modules/workflows/data/entities.js +1 -64
  392. package/dist/modules/workflows/data/entities.js.map +2 -2
  393. package/dist/modules/workflows/data/validators.js +0 -115
  394. package/dist/modules/workflows/data/validators.js.map +2 -2
  395. package/dist/modules/workflows/examples/checkout-demo-definition.json +5 -1
  396. package/dist/modules/workflows/lib/activity-executor.js +13 -75
  397. package/dist/modules/workflows/lib/activity-executor.js.map +2 -2
  398. package/dist/modules/workflows/lib/graph-utils.js +2 -71
  399. package/dist/modules/workflows/lib/graph-utils.js.map +2 -2
  400. package/dist/modules/workflows/lib/seeds.js +7 -36
  401. package/dist/modules/workflows/lib/seeds.js.map +2 -2
  402. package/dist/modules/workflows/lib/start-validator.js +23 -33
  403. package/dist/modules/workflows/lib/start-validator.js.map +2 -2
  404. package/dist/modules/workflows/lib/transition-handler.js +57 -161
  405. package/dist/modules/workflows/lib/transition-handler.js.map +3 -3
  406. package/dist/modules/workflows/migrations/Migration20251207131955.js +76 -72
  407. package/dist/modules/workflows/migrations/Migration20251207131955.js.map +2 -2
  408. package/dist/modules/workflows/notifications.js +28 -0
  409. package/dist/modules/workflows/notifications.js.map +7 -0
  410. package/dist/modules/workflows/setup.js +16 -0
  411. package/dist/modules/workflows/setup.js.map +7 -0
  412. package/dist/modules/workflows/subscribers/task-assigned-notification.js +38 -0
  413. package/dist/modules/workflows/subscribers/task-assigned-notification.js.map +7 -0
  414. package/generated/entities/notification/index.ts +27 -0
  415. package/generated/entities.ids.generated.ts +5 -2
  416. package/generated/entity-fields-registry.ts +2 -2
  417. package/package.json +2 -2
  418. package/src/__tests__/module-decoupling.test.ts +356 -0
  419. package/src/modules/api_docs/frontend/docs/api/page.tsx +3 -2
  420. package/src/modules/api_keys/backend/api-keys/page.tsx +1 -1
  421. package/src/modules/api_keys/setup.ts +9 -0
  422. package/src/modules/attachments/components/AttachmentLibrary.tsx +6 -2
  423. package/src/modules/attachments/components/AttachmentPartitionSettings.tsx +2 -0
  424. package/src/modules/attachments/lib/assignmentDetails.ts +32 -16
  425. package/src/modules/attachments/lib/partitions.ts +3 -3
  426. package/src/modules/attachments/setup.ts +9 -0
  427. package/src/modules/audit_logs/setup.ts +10 -0
  428. package/src/modules/auth/README.md +1 -1
  429. package/src/modules/auth/__tests__/cli-setup-acl.test.ts +31 -1
  430. package/src/modules/auth/api/__tests__/login.test.ts +2 -0
  431. package/src/modules/auth/api/admin/nav.ts +10 -6
  432. package/src/modules/auth/api/login.ts +26 -7
  433. package/src/modules/auth/api/profile/route.ts +163 -0
  434. package/src/modules/auth/api/reset/confirm.ts +25 -2
  435. package/src/modules/auth/api/reset.ts +23 -0
  436. package/src/modules/auth/api/sidebar/preferences/route.ts +21 -12
  437. package/src/modules/auth/api/users/route.ts +5 -2
  438. package/src/modules/auth/backend/auth/profile/page.meta.ts +9 -0
  439. package/src/modules/auth/backend/auth/profile/page.tsx +174 -0
  440. package/src/modules/auth/backend/roles/[id]/edit/page.tsx +4 -1
  441. package/src/modules/auth/backend/roles/page.tsx +3 -3
  442. package/src/modules/auth/backend/users/[id]/edit/page.tsx +22 -3
  443. package/src/modules/auth/backend/users/create/page.tsx +19 -2
  444. package/src/modules/auth/backend/users/page.tsx +3 -3
  445. package/src/modules/auth/cli.ts +38 -11
  446. package/src/modules/auth/commands/users.ts +73 -2
  447. package/src/modules/auth/data/validators.ts +6 -2
  448. package/src/modules/auth/frontend/login.tsx +134 -5
  449. package/src/modules/auth/frontend/reset/[token]/page.tsx +24 -11
  450. package/src/modules/auth/i18n/de.json +48 -1
  451. package/src/modules/auth/i18n/en.json +48 -1
  452. package/src/modules/auth/i18n/es.json +48 -1
  453. package/src/modules/auth/i18n/pl.json +48 -1
  454. package/src/modules/auth/lib/setup-app.ts +97 -186
  455. package/src/modules/auth/notifications.ts +109 -0
  456. package/src/modules/auth/services/authService.ts +27 -4
  457. package/src/modules/auth/setup.ts +9 -0
  458. package/src/modules/business_rules/api/execute/route.ts +8 -1
  459. package/src/modules/business_rules/backend/rules/page.tsx +4 -0
  460. package/src/modules/business_rules/backend/sets/page.tsx +3 -0
  461. package/src/modules/business_rules/cli.ts +2 -1
  462. package/src/modules/business_rules/data/validators.ts +0 -40
  463. package/src/modules/business_rules/i18n/en.json +3 -1
  464. package/src/modules/business_rules/index.ts +0 -25
  465. package/src/modules/business_rules/lib/__tests__/rule-engine.test.ts +51 -0
  466. package/src/modules/business_rules/lib/rule-engine.ts +51 -277
  467. package/src/modules/business_rules/notifications.ts +25 -0
  468. package/src/modules/business_rules/setup.ts +9 -0
  469. package/src/modules/business_rules/subscribers/rule-execution-failed-notification.ts +50 -0
  470. package/src/modules/catalog/components/PriceKindSettings.tsx +2 -0
  471. package/src/modules/catalog/components/categories/CategoriesDataTable.tsx +2 -2
  472. package/src/modules/catalog/components/products/ProductsDataTable.tsx +2 -0
  473. package/src/modules/catalog/i18n/en.json +3 -1
  474. package/src/modules/catalog/notifications.ts +25 -0
  475. package/src/modules/catalog/setup.ts +22 -0
  476. package/src/modules/catalog/subscribers/low-stock-notification.ts +52 -0
  477. package/src/modules/configs/cli.ts +6 -0
  478. package/src/modules/configs/components/CachePanel.tsx +4 -4
  479. package/src/modules/configs/i18n/en.json +12 -2
  480. package/src/modules/configs/i18n/pl.json +12 -2
  481. package/src/modules/configs/lib/system-status.ts +48 -1
  482. package/src/modules/configs/lib/system-status.types.ts +1 -0
  483. package/src/modules/configs/lib/upgrade-actions.ts +5 -338
  484. package/src/modules/configs/setup.ts +14 -0
  485. package/src/modules/currencies/backend/currencies/page.tsx +3 -0
  486. package/src/modules/currencies/backend/exchange-rates/page.tsx +2 -0
  487. package/src/modules/currencies/setup.ts +15 -0
  488. package/src/modules/customers/backend/customers/companies/page.tsx +3 -0
  489. package/src/modules/customers/backend/customers/deals/page.tsx +3 -0
  490. package/src/modules/customers/backend/customers/people/page.tsx +3 -0
  491. package/src/modules/customers/commands/deals.ts +39 -0
  492. package/src/modules/customers/components/CustomerTodosTable.tsx +1 -0
  493. package/src/modules/customers/i18n/en.json +5 -1
  494. package/src/modules/customers/notifications.ts +44 -0
  495. package/src/modules/customers/setup.ts +36 -0
  496. package/src/modules/customers/widgets/dashboard/customer-todos/widget.ts +2 -2
  497. package/src/modules/customers/widgets/dashboard/new-customers/widget.ts +2 -2
  498. package/src/modules/customers/widgets/dashboard/new-deals/widget.ts +2 -2
  499. package/src/modules/customers/widgets/dashboard/next-interactions/widget.ts +2 -2
  500. package/src/modules/dashboards/cli.ts +55 -5
  501. package/src/modules/dashboards/components/WidgetVisibilityEditor.tsx +22 -11
  502. package/src/modules/dashboards/lib/role-widgets.ts +80 -0
  503. package/src/modules/dashboards/services/widgetDataService.ts +164 -4
  504. package/src/modules/dashboards/setup.ts +26 -0
  505. package/src/modules/dashboards/widgets/dashboard/aov-kpi/widget.ts +2 -2
  506. package/src/modules/dashboards/widgets/dashboard/new-customers-kpi/widget.ts +2 -2
  507. package/src/modules/dashboards/widgets/dashboard/orders-by-status/widget.ts +2 -2
  508. package/src/modules/dashboards/widgets/dashboard/orders-kpi/widget.ts +2 -2
  509. package/src/modules/dashboards/widgets/dashboard/pipeline-summary/widget.ts +2 -2
  510. package/src/modules/dashboards/widgets/dashboard/revenue-kpi/widget.ts +2 -2
  511. package/src/modules/dashboards/widgets/dashboard/revenue-trend/widget.ts +2 -2
  512. package/src/modules/dashboards/widgets/dashboard/sales-by-region/widget.ts +2 -2
  513. package/src/modules/dashboards/widgets/dashboard/top-customers/widget.ts +2 -2
  514. package/src/modules/dashboards/widgets/dashboard/top-products/widget.ts +2 -2
  515. package/src/modules/dictionaries/components/DictionaryTable.tsx +2 -0
  516. package/src/modules/dictionaries/setup.ts +10 -0
  517. package/src/modules/directory/api/get/tenants/lookup.ts +75 -0
  518. package/src/modules/directory/backend/directory/organizations/page.tsx +2 -2
  519. package/src/modules/directory/backend/directory/tenants/page.tsx +2 -2
  520. package/src/modules/directory/setup.ts +10 -0
  521. package/src/modules/entities/backend/entities/user/[entityId]/records/page.tsx +2 -2
  522. package/src/modules/entities/components/SystemEntitiesTable.tsx +1 -1
  523. package/src/modules/entities/components/UserEntitiesTable.tsx +2 -2
  524. package/src/modules/entities/setup.ts +9 -0
  525. package/src/modules/feature_toggles/components/FeatureTogglesTable.tsx +3 -4
  526. package/src/modules/feature_toggles/components/OverridesTable.tsx +1 -1
  527. package/src/modules/feature_toggles/setup.ts +9 -0
  528. package/src/modules/notifications/__tests__/deliver-notification.test.ts +195 -0
  529. package/src/modules/notifications/__tests__/deliveryStrategies.test.ts +19 -0
  530. package/src/modules/notifications/__tests__/notificationService.test.ts +208 -0
  531. package/src/modules/notifications/acl.ts +7 -0
  532. package/src/modules/notifications/api/[id]/action/route.ts +75 -0
  533. package/src/modules/notifications/api/[id]/dismiss/route.ts +12 -0
  534. package/src/modules/notifications/api/[id]/read/route.ts +12 -0
  535. package/src/modules/notifications/api/[id]/restore/route.ts +53 -0
  536. package/src/modules/notifications/api/batch/route.ts +14 -0
  537. package/src/modules/notifications/api/feature/route.ts +14 -0
  538. package/src/modules/notifications/api/mark-all-read/route.ts +34 -0
  539. package/src/modules/notifications/api/openapi.ts +76 -0
  540. package/src/modules/notifications/api/role/route.ts +14 -0
  541. package/src/modules/notifications/api/route.ts +92 -0
  542. package/src/modules/notifications/api/settings/route.ts +157 -0
  543. package/src/modules/notifications/api/unread-count/route.ts +38 -0
  544. package/src/modules/notifications/backend/config/notifications/page.meta.ts +22 -0
  545. package/src/modules/notifications/backend/config/notifications/page.tsx +12 -0
  546. package/src/modules/notifications/cli.ts +18 -0
  547. package/src/modules/notifications/data/entities.ts +99 -0
  548. package/src/modules/notifications/data/validators.ts +115 -0
  549. package/src/modules/notifications/di.ts +11 -0
  550. package/src/modules/notifications/emails/NotificationEmail.tsx +98 -0
  551. package/src/modules/notifications/frontend/NotificationInboxPageClient.tsx +42 -0
  552. package/src/modules/notifications/frontend/NotificationSettingsPageClient.tsx +233 -0
  553. package/src/modules/notifications/i18n/de.json +50 -0
  554. package/src/modules/notifications/i18n/en.json +50 -0
  555. package/src/modules/notifications/i18n/es.json +50 -0
  556. package/src/modules/notifications/i18n/pl.json +50 -0
  557. package/src/modules/notifications/index.ts +12 -0
  558. package/src/modules/notifications/lib/deliveryConfig.ts +153 -0
  559. package/src/modules/notifications/lib/deliveryStrategies.ts +50 -0
  560. package/src/modules/notifications/lib/events.ts +48 -0
  561. package/src/modules/notifications/lib/notificationBuilder.ts +121 -0
  562. package/src/modules/notifications/lib/notificationFactory.ts +76 -0
  563. package/src/modules/notifications/lib/notificationMapper.ts +33 -0
  564. package/src/modules/notifications/lib/notificationRecipients.ts +83 -0
  565. package/src/modules/notifications/lib/notificationService.ts +414 -0
  566. package/src/modules/notifications/lib/routeHelpers.ts +151 -0
  567. package/src/modules/notifications/lib/safeHref.ts +29 -0
  568. package/src/modules/notifications/migrations/.snapshot-open-mercato.json +336 -0
  569. package/src/modules/notifications/migrations/Migration20260123000001.ts +73 -0
  570. package/src/modules/notifications/migrations/Migration20260126150000.ts +39 -0
  571. package/src/modules/notifications/migrations/Migration20260129082610.ts +13 -0
  572. package/src/modules/notifications/subscribers/deliver-notification.ts +204 -0
  573. package/src/modules/notifications/workers/create-notification.worker.ts +122 -0
  574. package/src/modules/perspectives/setup.ts +10 -0
  575. package/src/modules/planner/backend/planner/availability-rulesets/page.tsx +2 -2
  576. package/src/modules/planner/setup.ts +21 -0
  577. package/src/modules/query_index/cli.ts +82 -13
  578. package/src/modules/query_index/components/QueryIndexesTable.tsx +8 -2
  579. package/src/modules/query_index/setup.ts +9 -0
  580. package/src/modules/resources/backend/resources/resource-types/page.tsx +2 -2
  581. package/src/modules/resources/backend/resources/resources/page.tsx +2 -2
  582. package/src/modules/resources/setup.ts +21 -0
  583. package/src/modules/sales/acl.ts +0 -1
  584. package/src/modules/sales/backend/sales/channels/offers/page.tsx +2 -0
  585. package/src/modules/sales/backend/sales/channels/page.tsx +2 -0
  586. package/src/modules/sales/backend/sales/documents/[id]/page.tsx +0 -16
  587. package/src/modules/sales/cli.ts +2 -43
  588. package/src/modules/sales/commands/documents.ts +62 -70
  589. package/src/modules/sales/commands/payments.ts +33 -0
  590. package/src/modules/sales/components/AdjustmentKindSettings.tsx +2 -2
  591. package/src/modules/sales/components/PaymentMethodsSettings.tsx +2 -2
  592. package/src/modules/sales/components/ShippingMethodsSettings.tsx +2 -2
  593. package/src/modules/sales/components/TaxRatesSettings.tsx +2 -2
  594. package/src/modules/sales/components/channels/SalesChannelOffersPanel.tsx +2 -0
  595. package/src/modules/sales/components/documents/AdjustmentsSection.tsx +2 -0
  596. package/src/modules/sales/components/documents/PaymentsSection.tsx +2 -1
  597. package/src/modules/sales/components/documents/SalesDocumentsTable.tsx +2 -0
  598. package/src/modules/sales/i18n/de.json +20 -0
  599. package/src/modules/sales/i18n/en.json +25 -1
  600. package/src/modules/sales/i18n/es.json +20 -0
  601. package/src/modules/sales/i18n/pl.json +20 -0
  602. package/src/modules/sales/lib/dictionaries.ts +0 -3
  603. package/src/modules/sales/lib/seeds.ts +53 -0
  604. package/src/modules/sales/notifications.client.ts +65 -0
  605. package/src/modules/sales/notifications.ts +82 -0
  606. package/src/modules/sales/setup.ts +108 -0
  607. package/src/modules/sales/subscribers/quote-expiring-notification.ts +53 -0
  608. package/src/modules/sales/widgets/notifications/SalesOrderCreatedRenderer.tsx +156 -0
  609. package/src/modules/sales/widgets/notifications/SalesQuoteCreatedRenderer.tsx +156 -0
  610. package/src/modules/sales/widgets/notifications/index.ts +2 -0
  611. package/src/modules/sales/widgets/notifications/useSalesDocumentTotals.ts +81 -0
  612. package/src/modules/staff/backend/staff/team-members/page.tsx +1 -1
  613. package/src/modules/staff/backend/staff/team-roles/page.tsx +2 -2
  614. package/src/modules/staff/backend/staff/teams/[id]/edit/page.tsx +2 -2
  615. package/src/modules/staff/backend/staff/teams/page.tsx +2 -2
  616. package/src/modules/staff/commands/leave-requests.ts +94 -0
  617. package/src/modules/staff/i18n/de.json +4 -0
  618. package/src/modules/staff/i18n/en.json +9 -1
  619. package/src/modules/staff/i18n/es.json +4 -0
  620. package/src/modules/staff/i18n/pl.json +4 -0
  621. package/src/modules/staff/notifications.ts +71 -0
  622. package/src/modules/staff/setup.ts +27 -0
  623. package/src/modules/workflows/acl.ts +0 -2
  624. package/src/modules/workflows/api/__tests__/instances.route.test.ts +2 -5
  625. package/src/modules/workflows/api/instances/route.ts +7 -21
  626. package/src/modules/workflows/api/tasks/route.ts +1 -7
  627. package/src/modules/workflows/backend/definitions/[id]/page.meta.ts +1 -1
  628. package/src/modules/workflows/backend/definitions/[id]/page.tsx +0 -9
  629. package/src/modules/workflows/backend/definitions/create/page.meta.ts +1 -1
  630. package/src/modules/workflows/backend/definitions/create/page.tsx +0 -9
  631. package/src/modules/workflows/backend/definitions/page.tsx +5 -0
  632. package/src/modules/workflows/backend/definitions/visual-editor/page.meta.ts +1 -1
  633. package/src/modules/workflows/backend/definitions/visual-editor/page.tsx +3 -21
  634. package/src/modules/workflows/backend/events/[id]/page.meta.ts +2 -2
  635. package/src/modules/workflows/backend/events/[id]/page.tsx +1 -1
  636. package/src/modules/workflows/backend/instances/[id]/page.meta.ts +2 -2
  637. package/src/modules/workflows/backend/instances/page.tsx +4 -1
  638. package/src/modules/workflows/backend/tasks/[id]/page.meta.ts +2 -2
  639. package/src/modules/workflows/backend/tasks/[id]/page.tsx +1 -1
  640. package/src/modules/workflows/backend/tasks/page.tsx +10 -6
  641. package/src/modules/workflows/cli.ts +12 -123
  642. package/src/modules/workflows/data/entities.ts +0 -124
  643. package/src/modules/workflows/data/validators.ts +0 -138
  644. package/src/modules/workflows/examples/checkout-demo-definition.json +5 -1
  645. package/src/modules/workflows/i18n/en.json +3 -72
  646. package/src/modules/workflows/lib/__tests__/activity-executor.test.ts +36 -43
  647. package/src/modules/workflows/lib/__tests__/transition-handler.test.ts +90 -170
  648. package/src/modules/workflows/lib/activity-executor.ts +16 -129
  649. package/src/modules/workflows/lib/graph-utils.ts +2 -117
  650. package/src/modules/workflows/lib/seeds.ts +12 -50
  651. package/src/modules/workflows/lib/start-validator.ts +28 -38
  652. package/src/modules/workflows/lib/transition-handler.ts +71 -212
  653. package/src/modules/workflows/migrations/Migration20251207131955.ts +77 -143
  654. package/src/modules/workflows/notifications.ts +25 -0
  655. package/src/modules/workflows/setup.ts +15 -0
  656. package/src/modules/workflows/subscribers/task-assigned-notification.ts +53 -0
  657. package/dist/generated/entities/workflow_event_trigger/index.js +0 -33
  658. package/dist/generated/entities/workflow_event_trigger/index.js.map +0 -7
  659. package/dist/modules/auth/events.js +0 -30
  660. package/dist/modules/auth/events.js.map +0 -7
  661. package/dist/modules/business_rules/api/execute/[ruleId]/route.js +0 -145
  662. package/dist/modules/business_rules/api/execute/[ruleId]/route.js.map +0 -7
  663. package/dist/modules/catalog/events.js +0 -34
  664. package/dist/modules/catalog/events.js.map +0 -7
  665. package/dist/modules/customers/events.js +0 -49
  666. package/dist/modules/customers/events.js.map +0 -7
  667. package/dist/modules/directory/events.js +0 -23
  668. package/dist/modules/directory/events.js.map +0 -7
  669. package/dist/modules/sales/events.js +0 -63
  670. package/dist/modules/sales/events.js.map +0 -7
  671. package/dist/modules/sales/lib/frontend/documentDataEvents.js +0 -25
  672. package/dist/modules/sales/lib/frontend/documentDataEvents.js.map +0 -7
  673. package/dist/modules/workflows/components/DefinitionTriggersEditor.js +0 -481
  674. package/dist/modules/workflows/components/DefinitionTriggersEditor.js.map +0 -7
  675. package/dist/modules/workflows/components/EventTriggersEditor.js +0 -553
  676. package/dist/modules/workflows/components/EventTriggersEditor.js.map +0 -7
  677. package/dist/modules/workflows/events.js +0 -38
  678. package/dist/modules/workflows/events.js.map +0 -7
  679. package/dist/modules/workflows/examples/order-approval-definition.json +0 -257
  680. package/dist/modules/workflows/examples/order-approval-guard-rules.json +0 -32
  681. package/dist/modules/workflows/lib/event-trigger-service.js +0 -308
  682. package/dist/modules/workflows/lib/event-trigger-service.js.map +0 -7
  683. package/dist/modules/workflows/migrations/Migration20260123143500.js +0 -36
  684. package/dist/modules/workflows/migrations/Migration20260123143500.js.map +0 -7
  685. package/dist/modules/workflows/subscribers/event-trigger.js +0 -78
  686. package/dist/modules/workflows/subscribers/event-trigger.js.map +0 -7
  687. package/dist/modules/workflows/widgets/injection/order-approval/widget.client.js +0 -323
  688. package/dist/modules/workflows/widgets/injection/order-approval/widget.client.js.map +0 -7
  689. package/dist/modules/workflows/widgets/injection/order-approval/widget.js +0 -17
  690. package/dist/modules/workflows/widgets/injection/order-approval/widget.js.map +0 -7
  691. package/dist/modules/workflows/widgets/injection-table.js +0 -19
  692. package/dist/modules/workflows/widgets/injection-table.js.map +0 -7
  693. package/generated/entities/workflow_event_trigger/index.ts +0 -15
  694. package/src/modules/auth/events.ts +0 -39
  695. package/src/modules/business_rules/api/execute/[ruleId]/route.ts +0 -163
  696. package/src/modules/catalog/events.ts +0 -45
  697. package/src/modules/customers/events.ts +0 -63
  698. package/src/modules/directory/events.ts +0 -31
  699. package/src/modules/sales/events.ts +0 -82
  700. package/src/modules/sales/lib/frontend/documentDataEvents.ts +0 -28
  701. package/src/modules/workflows/components/DefinitionTriggersEditor.tsx +0 -581
  702. package/src/modules/workflows/components/EventTriggersEditor.tsx +0 -664
  703. package/src/modules/workflows/events.ts +0 -49
  704. package/src/modules/workflows/examples/order-approval-definition.json +0 -257
  705. package/src/modules/workflows/examples/order-approval-guard-rules.json +0 -32
  706. package/src/modules/workflows/lib/event-trigger-service.ts +0 -557
  707. package/src/modules/workflows/migrations/Migration20260123143500.ts +0 -38
  708. package/src/modules/workflows/subscribers/event-trigger.ts +0 -109
  709. package/src/modules/workflows/widgets/injection/order-approval/widget.client.tsx +0 -446
  710. package/src/modules/workflows/widgets/injection/order-approval/widget.ts +0 -16
  711. package/src/modules/workflows/widgets/injection-table.ts +0 -21
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/modules/workflows/migrations/Migration20251207131955.ts"],
4
- "sourcesContent": ["import { Migration } from '@mikro-orm/migrations';\n\nexport class Migration20251207131955 extends Migration {\n\n override async up(): Promise<void> {\n this.addSql(`alter table \"rule_execution_logs\" drop constraint \"rule_execution_logs_rule_id_foreign\";`);\n\n this.addSql(`alter table \"rule_set_members\" drop constraint \"rule_set_members_rule_id_foreign\";`);\n\n this.addSql(`alter table \"catalog_product_variant_prices\" drop constraint \"catalog_product_variant_prices_price_kind_id_foreign\";`);\n\n this.addSql(`alter table \"catalog_product_category_assignments\" drop constraint \"catalog_product_category_assignments_category_id_foreign\";`);\n\n this.addSql(`alter table \"catalog_product_variant_prices\" drop constraint \"catalog_product_variant_prices_offer_id_foreign\";`);\n\n this.addSql(`alter table \"catalog_products\" drop constraint \"catalog_products_option_schema_id_foreign\";`);\n\n this.addSql(`alter table \"catalog_product_tag_assignments\" drop constraint \"catalog_product_tag_assignments_tag_id_foreign\";`);\n\n this.addSql(`alter table \"catalog_product_variant_option_values\" drop constraint \"catalog_product_variant_option_values_variant_id_foreign\";`);\n\n this.addSql(`alter table \"catalog_product_variant_prices\" drop constraint \"catalog_product_variant_prices_variant_id_foreign\";`);\n\n this.addSql(`alter table \"catalog_product_variant_relations\" drop constraint \"catalog_product_variant_relations_child_variant_id_foreign\";`);\n\n this.addSql(`alter table \"catalog_product_variant_relations\" drop constraint \"catalog_product_variant_relations_parent_variant_id_foreign\";`);\n\n this.addSql(`alter table \"catalog_product_category_assignments\" drop constraint \"catalog_product_category_assignments_product_id_foreign\";`);\n\n this.addSql(`alter table \"catalog_product_offers\" drop constraint \"catalog_product_offers_product_id_foreign\";`);\n\n this.addSql(`alter table \"catalog_product_options\" drop constraint \"catalog_product_options_product_id_foreign\";`);\n\n this.addSql(`alter table \"catalog_product_relations\" drop constraint \"catalog_product_relations_child_product_id_foreign\";`);\n\n this.addSql(`alter table \"catalog_product_relations\" drop constraint \"catalog_product_relations_parent_product_id_foreign\";`);\n\n this.addSql(`alter table \"catalog_product_tag_assignments\" drop constraint \"catalog_product_tag_assignments_product_id_foreign\";`);\n\n this.addSql(`alter table \"catalog_product_variant_prices\" drop constraint \"catalog_product_variant_prices_product_id_foreign\";`);\n\n this.addSql(`alter table \"catalog_product_variants\" drop constraint \"catalog_product_variants_product_id_foreign\";`);\n\n this.addSql(`alter table \"customer_activities\" drop constraint \"customer_activities_deal_id_foreign\";`);\n\n this.addSql(`alter table \"customer_comments\" drop constraint \"customer_comments_deal_id_foreign\";`);\n\n this.addSql(`alter table \"customer_deal_companies\" drop constraint \"customer_deal_companies_deal_id_foreign\";`);\n\n this.addSql(`alter table \"customer_deal_people\" drop constraint \"customer_deal_people_deal_id_foreign\";`);\n\n this.addSql(`alter table \"customer_activities\" drop constraint \"customer_activities_entity_id_foreign\";`);\n\n this.addSql(`alter table \"customer_addresses\" drop constraint \"customer_addresses_entity_id_foreign\";`);\n\n this.addSql(`alter table \"customer_comments\" drop constraint \"customer_comments_entity_id_foreign\";`);\n\n this.addSql(`alter table \"customer_companies\" drop constraint \"customer_companies_entity_id_foreign\";`);\n\n this.addSql(`alter table \"customer_deal_companies\" drop constraint \"customer_deal_companies_company_entity_id_foreign\";`);\n\n this.addSql(`alter table \"customer_deal_people\" drop constraint \"customer_deal_people_person_entity_id_foreign\";`);\n\n this.addSql(`alter table \"customer_people\" drop constraint \"customer_people_company_entity_id_foreign\";`);\n\n this.addSql(`alter table \"customer_people\" drop constraint \"customer_people_entity_id_foreign\";`);\n\n this.addSql(`alter table \"customer_tag_assignments\" drop constraint \"customer_tag_assignments_entity_id_foreign\";`);\n\n this.addSql(`alter table \"customer_todo_links\" drop constraint \"customer_todo_links_entity_id_foreign\";`);\n\n this.addSql(`alter table \"customer_tag_assignments\" drop constraint \"customer_tag_assignments_tag_id_foreign\";`);\n\n this.addSql(`alter table \"dictionary_entries\" drop constraint \"dictionary_entries_dictionary_id_foreign\";`);\n\n this.addSql(`alter table \"role_acls\" drop constraint \"role_acls_role_id_foreign\";`);\n\n this.addSql(`alter table \"role_sidebar_preferences\" drop constraint \"role_sidebar_preferences_role_id_foreign\";`);\n\n this.addSql(`alter table \"user_roles\" drop constraint \"user_roles_role_id_foreign\";`);\n\n this.addSql(`alter table \"rule_set_members\" drop constraint \"rule_set_members_rule_set_id_foreign\";`);\n\n this.addSql(`alter table \"sales_orders\" drop constraint \"sales_orders_channel_ref_id_foreign\";`);\n\n this.addSql(`alter table \"sales_credit_memo_lines\" drop constraint \"sales_credit_memo_lines_credit_memo_id_foreign\";`);\n\n this.addSql(`alter table \"sales_orders\" drop constraint \"sales_orders_delivery_window_ref_id_foreign\";`);\n\n this.addSql(`alter table \"sales_credit_memos\" drop constraint \"sales_credit_memos_invoice_id_foreign\";`);\n\n this.addSql(`alter table \"sales_invoice_lines\" drop constraint \"sales_invoice_lines_invoice_id_foreign\";`);\n\n this.addSql(`alter table \"sales_payment_allocations\" drop constraint \"sales_payment_allocations_invoice_id_foreign\";`);\n\n this.addSql(`alter table \"sales_credit_memo_lines\" drop constraint \"sales_credit_memo_lines_order_line_id_foreign\";`);\n\n this.addSql(`alter table \"sales_invoice_lines\" drop constraint \"sales_invoice_lines_order_line_id_foreign\";`);\n\n this.addSql(`alter table \"sales_order_adjustments\" drop constraint \"sales_order_adjustments_order_line_id_foreign\";`);\n\n this.addSql(`alter table \"sales_shipment_items\" drop constraint \"sales_shipment_items_order_line_id_foreign\";`);\n\n this.addSql(`alter table \"sales_credit_memos\" drop constraint \"sales_credit_memos_order_id_foreign\";`);\n\n this.addSql(`alter table \"sales_invoices\" drop constraint \"sales_invoices_order_id_foreign\";`);\n\n this.addSql(`alter table \"sales_notes\" drop constraint \"sales_notes_order_id_foreign\";`);\n\n this.addSql(`alter table \"sales_order_adjustments\" drop constraint \"sales_order_adjustments_order_id_foreign\";`);\n\n this.addSql(`alter table \"sales_order_lines\" drop constraint \"sales_order_lines_order_id_foreign\";`);\n\n this.addSql(`alter table \"sales_payment_allocations\" drop constraint \"sales_payment_allocations_order_id_foreign\";`);\n\n this.addSql(`alter table \"sales_payments\" drop constraint \"sales_payments_order_id_foreign\";`);\n\n this.addSql(`alter table \"sales_shipments\" drop constraint \"sales_shipments_order_id_foreign\";`);\n\n this.addSql(`alter table \"sales_orders\" drop constraint \"sales_orders_payment_method_ref_id_foreign\";`);\n\n this.addSql(`alter table \"sales_payments\" drop constraint \"sales_payments_payment_method_id_foreign\";`);\n\n this.addSql(`alter table \"sales_payment_allocations\" drop constraint \"sales_payment_allocations_payment_id_foreign\";`);\n\n this.addSql(`alter table \"sales_quote_adjustments\" drop constraint \"sales_quote_adjustments_quote_line_id_foreign\";`);\n\n this.addSql(`alter table \"sales_notes\" drop constraint \"sales_notes_quote_id_foreign\";`);\n\n this.addSql(`alter table \"sales_quote_adjustments\" drop constraint \"sales_quote_adjustments_quote_id_foreign\";`);\n\n this.addSql(`alter table \"sales_quote_lines\" drop constraint \"sales_quote_lines_quote_id_foreign\";`);\n\n this.addSql(`alter table \"sales_shipment_items\" drop constraint \"sales_shipment_items_shipment_id_foreign\";`);\n\n this.addSql(`alter table \"sales_orders\" drop constraint \"sales_orders_shipping_method_ref_id_foreign\";`);\n\n this.addSql(`alter table \"organizations\" drop constraint \"organizations_tenant_id_foreign\";`);\n\n this.addSql(`alter table \"password_resets\" drop constraint \"password_resets_user_id_foreign\";`);\n\n this.addSql(`alter table \"sessions\" drop constraint \"sessions_user_id_foreign\";`);\n\n this.addSql(`alter table \"user_acls\" drop constraint \"user_acls_user_id_foreign\";`);\n\n this.addSql(`alter table \"user_roles\" drop constraint \"user_roles_user_id_foreign\";`);\n\n this.addSql(`alter table \"user_sidebar_preferences\" drop constraint \"user_sidebar_preferences_user_id_foreign\";`);\n\n this.addSql(`create table \"step_instances\" (\"id\" uuid not null default gen_random_uuid(), \"workflow_instance_id\" uuid not null, \"step_id\" varchar(100) not null, \"step_name\" varchar(255) not null, \"step_type\" varchar(50) not null, \"status\" varchar(20) not null, \"input_data\" jsonb null, \"output_data\" jsonb null, \"error_data\" jsonb null, \"entered_at\" timestamptz null, \"exited_at\" timestamptz null, \"execution_time_ms\" int null, \"retry_count\" int not null default 0, \"tenant_id\" uuid not null, \"organization_id\" uuid not null, \"created_at\" timestamptz not null, \"updated_at\" timestamptz not null, constraint \"step_instances_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"step_instances_tenant_org_idx\" on \"step_instances\" (\"tenant_id\", \"organization_id\");`);\n this.addSql(`create index \"step_instances_step_id_idx\" on \"step_instances\" (\"step_id\", \"status\");`);\n this.addSql(`create index \"step_instances_workflow_instance_idx\" on \"step_instances\" (\"workflow_instance_id\", \"status\");`);\n\n this.addSql(`create table \"user_tasks\" (\"id\" uuid not null default gen_random_uuid(), \"workflow_instance_id\" uuid not null, \"step_instance_id\" uuid not null, \"task_name\" varchar(255) not null, \"description\" text null, \"status\" varchar(20) not null, \"form_schema\" jsonb null, \"form_data\" jsonb null, \"assigned_to\" varchar(255) null, \"assigned_to_roles\" text[] null, \"claimed_by\" varchar(255) null, \"claimed_at\" timestamptz null, \"due_date\" timestamptz null, \"escalated_at\" timestamptz null, \"escalated_to\" varchar(255) null, \"completed_by\" varchar(255) null, \"completed_at\" timestamptz null, \"comments\" text null, \"tenant_id\" uuid not null, \"organization_id\" uuid not null, \"created_at\" timestamptz not null, \"updated_at\" timestamptz not null, constraint \"user_tasks_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"user_tasks_tenant_org_idx\" on \"user_tasks\" (\"tenant_id\", \"organization_id\");`);\n this.addSql(`create index \"user_tasks_status_due_date_idx\" on \"user_tasks\" (\"status\", \"due_date\");`);\n this.addSql(`create index \"user_tasks_status_assigned_idx\" on \"user_tasks\" (\"status\", \"assigned_to\");`);\n this.addSql(`create index \"user_tasks_workflow_instance_idx\" on \"user_tasks\" (\"workflow_instance_id\");`);\n\n this.addSql(`create table \"workflow_definitions\" (\"id\" uuid not null default gen_random_uuid(), \"workflow_id\" varchar(100) not null, \"workflow_name\" varchar(255) not null, \"description\" text null, \"version\" int not null default 1, \"definition\" jsonb not null, \"metadata\" jsonb null, \"enabled\" boolean not null default true, \"effective_from\" timestamptz null, \"effective_to\" timestamptz null, \"tenant_id\" uuid not null, \"organization_id\" uuid not null, \"created_by\" varchar(255) null, \"updated_by\" varchar(255) null, \"created_at\" timestamptz not null, \"updated_at\" timestamptz not null, \"deleted_at\" timestamptz null, constraint \"workflow_definitions_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"workflow_definitions_workflow_id_idx\" on \"workflow_definitions\" (\"workflow_id\");`);\n this.addSql(`create index \"workflow_definitions_tenant_org_idx\" on \"workflow_definitions\" (\"tenant_id\", \"organization_id\");`);\n this.addSql(`create index \"workflow_definitions_enabled_idx\" on \"workflow_definitions\" (\"enabled\");`);\n this.addSql(`alter table \"workflow_definitions\" add constraint \"workflow_definitions_workflow_id_tenant_id_unique\" unique (\"workflow_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"workflow_events\" (\"id\" bigserial primary key, \"workflow_instance_id\" uuid not null, \"step_instance_id\" uuid null, \"event_type\" varchar(50) not null, \"event_data\" jsonb not null, \"occurred_at\" timestamptz not null, \"user_id\" varchar(255) null, \"tenant_id\" uuid not null, \"organization_id\" uuid not null);`);\n this.addSql(`create index \"workflow_events_tenant_org_idx\" on \"workflow_events\" (\"tenant_id\", \"organization_id\");`);\n this.addSql(`create index \"workflow_events_event_type_idx\" on \"workflow_events\" (\"event_type\", \"occurred_at\");`);\n this.addSql(`create index \"workflow_events_instance_occurred_idx\" on \"workflow_events\" (\"workflow_instance_id\", \"occurred_at\");`);\n\n this.addSql(`create table \"workflow_instances\" (\"id\" uuid not null default gen_random_uuid(), \"definition_id\" uuid not null, \"workflow_id\" varchar(100) not null, \"version\" int not null, \"status\" varchar(20) not null, \"current_step_id\" varchar(100) not null, \"context\" jsonb not null, \"correlation_key\" varchar(255) null, \"metadata\" jsonb null, \"started_at\" timestamptz not null, \"completed_at\" timestamptz null, \"paused_at\" timestamptz null, \"cancelled_at\" timestamptz null, \"error_message\" text null, \"error_details\" jsonb null, \"retry_count\" int not null default 0, \"tenant_id\" uuid not null, \"organization_id\" uuid not null, \"created_at\" timestamptz not null, \"updated_at\" timestamptz not null, \"deleted_at\" timestamptz null, constraint \"workflow_instances_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"workflow_instances_tenant_org_idx\" on \"workflow_instances\" (\"tenant_id\", \"organization_id\");`);\n this.addSql(`create index \"workflow_instances_current_step_idx\" on \"workflow_instances\" (\"current_step_id\", \"status\");`);\n this.addSql(`create index \"workflow_instances_status_tenant_idx\" on \"workflow_instances\" (\"status\", \"tenant_id\");`);\n this.addSql(`create index \"workflow_instances_correlation_key_idx\" on \"workflow_instances\" (\"correlation_key\");`);\n this.addSql(`create index \"workflow_instances_definition_status_idx\" on \"workflow_instances\" (\"definition_id\", \"status\");`);\n }\n\n override async down(): Promise<void> {\n this.addSql(`create table \"access_logs\" (\"id\" uuid not null default gen_random_uuid(), \"tenant_id\" uuid null, \"organization_id\" uuid null, \"actor_user_id\" uuid null, \"resource_kind\" text not null, \"resource_id\" text not null, \"access_type\" text not null, \"fields_json\" jsonb null, \"context_json\" jsonb null, \"created_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"access_logs_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"access_logs_actor_idx\" on \"access_logs\" (\"actor_user_id\", \"created_at\");`);\n this.addSql(`create index \"access_logs_tenant_idx\" on \"access_logs\" (\"tenant_id\", \"created_at\");`);\n\n this.addSql(`create table \"action_logs\" (\"id\" uuid not null default gen_random_uuid(), \"tenant_id\" uuid null, \"organization_id\" uuid null, \"actor_user_id\" uuid null, \"command_id\" text not null, \"action_label\" text null, \"resource_kind\" text null, \"resource_id\" text null, \"execution_state\" text not null default 'done', \"undo_token\" text null, \"command_payload\" jsonb null, \"snapshot_before\" jsonb null, \"snapshot_after\" jsonb null, \"changes_json\" jsonb null, \"context_json\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"action_logs_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"action_logs_actor_idx\" on \"action_logs\" (\"actor_user_id\", \"created_at\");`);\n this.addSql(`create index \"action_logs_tenant_idx\" on \"action_logs\" (\"tenant_id\", \"created_at\");`);\n\n this.addSql(`create table \"api_keys\" (\"id\" uuid not null default gen_random_uuid(), \"name\" text not null, \"description\" text null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"key_hash\" text not null, \"key_prefix\" text not null, \"roles_json\" jsonb null, \"created_by\" uuid null, \"last_used_at\" timestamptz(6) null, \"expires_at\" timestamptz(6) null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, constraint \"api_keys_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"api_keys\" add constraint \"api_keys_key_prefix_unique\" unique (\"key_prefix\");`);\n\n this.addSql(`create table \"attachment_partitions\" (\"id\" uuid not null default gen_random_uuid(), \"code\" text not null, \"title\" text not null, \"description\" text null, \"storage_driver\" text not null default 'local', \"config_json\" jsonb null, \"is_public\" bool not null default false, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"attachment_partitions_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"attachment_partitions\" add constraint \"attachment_partitions_code_unique\" unique (\"code\");`);\n\n this.addSql(`create table \"attachments\" (\"id\" uuid not null default gen_random_uuid(), \"entity_id\" text not null, \"record_id\" text not null, \"organization_id\" uuid null, \"tenant_id\" uuid null, \"file_name\" text not null, \"mime_type\" text not null, \"file_size\" int4 not null, \"url\" text not null, \"created_at\" timestamptz(6) not null, \"partition_code\" text not null, \"storage_driver\" text not null default 'local', \"storage_path\" text not null, \"storage_metadata\" jsonb null, constraint \"attachments_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"attachments_entity_record_idx\" on \"attachments\" (\"record_id\");`);\n this.addSql(`create index \"attachments_partition_code_idx\" on \"attachments\" (\"partition_code\");`);\n\n this.addSql(`create table \"business_rules\" (\"id\" uuid not null default gen_random_uuid(), \"rule_id\" varchar(50) not null, \"rule_name\" varchar(200) not null, \"description\" text null, \"rule_type\" varchar(20) not null, \"rule_category\" varchar(50) null, \"entity_type\" varchar(50) not null, \"event_type\" varchar(50) null, \"condition_expression\" jsonb not null, \"success_actions\" jsonb null, \"failure_actions\" jsonb null, \"enabled\" bool not null default true, \"priority\" int4 not null default 100, \"version\" int4 not null default 1, \"effective_from\" timestamptz(6) null, \"effective_to\" timestamptz(6) null, \"tenant_id\" uuid not null, \"organization_id\" uuid not null, \"created_by\" varchar(50) null, \"updated_by\" varchar(50) null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"business_rules_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"business_rules_entity_event_idx\" on \"business_rules\" (\"entity_type\", \"event_type\", \"enabled\");`);\n this.addSql(`alter table \"business_rules\" add constraint \"business_rules_rule_id_tenant_id_unique\" unique (\"rule_id\", \"tenant_id\");`);\n this.addSql(`create index \"business_rules_tenant_org_idx\" on \"business_rules\" (\"tenant_id\", \"organization_id\");`);\n this.addSql(`create index \"business_rules_type_enabled_idx\" on \"business_rules\" (\"rule_type\", \"enabled\", \"priority\");`);\n\n this.addSql(`create table \"catalog_price_kinds\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"code\" text not null, \"title\" text not null, \"display_mode\" text not null default 'excluding-tax', \"currency_code\" text null, \"is_promotion\" bool not null default false, \"is_active\" bool not null default true, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"catalog_price_kinds_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"catalog_price_kinds\" add constraint \"catalog_price_kinds_code_scope_unique\" unique (\"organization_id\", \"tenant_id\", \"code\");`);\n this.addSql(`create index \"catalog_price_kinds_scope_idx\" on \"catalog_price_kinds\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"catalog_product_categories\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"name\" text not null, \"slug\" text null, \"description\" text null, \"parent_id\" uuid null, \"root_id\" uuid null, \"tree_path\" text null, \"depth\" int4 not null default 0, \"ancestor_ids\" jsonb not null default '[]', \"child_ids\" jsonb not null default '[]', \"descendant_ids\" jsonb not null default '[]', \"metadata\" jsonb null, \"is_active\" bool not null default true, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"catalog_product_categories_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"catalog_product_categories_scope_idx\" on \"catalog_product_categories\" (\"organization_id\", \"tenant_id\");`);\n this.addSql(`alter table \"catalog_product_categories\" add constraint \"catalog_product_categories_slug_unique\" unique (\"organization_id\", \"tenant_id\", \"slug\");`);\n\n this.addSql(`create table \"catalog_product_category_assignments\" (\"id\" uuid not null default gen_random_uuid(), \"product_id\" uuid not null, \"category_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"position\" int4 not null default 0, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"catalog_product_category_assignments_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"catalog_product_category_assignments_scope_idx\" on \"catalog_product_category_assignments\" (\"organization_id\", \"tenant_id\");`);\n this.addSql(`alter table \"catalog_product_category_assignments\" add constraint \"catalog_product_category_assignments_unique\" unique (\"product_id\", \"category_id\");`);\n\n this.addSql(`create table \"catalog_product_offers\" (\"id\" uuid not null default gen_random_uuid(), \"product_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"channel_id\" uuid not null, \"title\" text not null, \"description\" text null, \"localized_content\" jsonb null, \"metadata\" jsonb null, \"is_active\" bool not null default true, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, \"default_media_id\" uuid null, \"default_media_url\" text null, constraint \"catalog_product_offers_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"catalog_product_offers\" add constraint \"catalog_product_offers_product_channel_unique\" unique (\"product_id\", \"organization_id\", \"tenant_id\", \"channel_id\");`);\n this.addSql(`create index \"catalog_product_offers_scope_idx\" on \"catalog_product_offers\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"catalog_product_option_schemas\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"name\" text not null, \"code\" text not null, \"description\" text null, \"schema\" jsonb not null, \"metadata\" jsonb null, \"is_active\" bool not null default true, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"catalog_product_option_schemas_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"catalog_product_option_schemas\" add constraint \"catalog_product_option_schemas_code_unique\" unique (\"organization_id\", \"tenant_id\", \"code\");`);\n this.addSql(`create index \"catalog_product_option_schemas_scope_idx\" on \"catalog_product_option_schemas\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"catalog_product_option_values\" (\"id\" uuid not null default gen_random_uuid(), \"option_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"code\" text not null, \"label\" text not null, \"description\" text null, \"position\" int4 not null default 0, \"metadata\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"catalog_product_option_values_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"catalog_product_option_values\" add constraint \"catalog_product_option_values_code_unique\" unique (\"organization_id\", \"tenant_id\", \"option_id\", \"code\");`);\n this.addSql(`create index \"catalog_product_option_values_scope_idx\" on \"catalog_product_option_values\" (\"option_id\", \"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"catalog_product_options\" (\"id\" uuid not null default gen_random_uuid(), \"product_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"code\" text not null, \"label\" text not null, \"description\" text null, \"position\" int4 not null default 0, \"is_required\" bool not null default false, \"is_multiple\" bool not null default false, \"metadata\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"input_type\" text not null default 'select', \"input_config\" jsonb null, constraint \"catalog_product_options_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"catalog_product_options_scope_idx\" on \"catalog_product_options\" (\"product_id\", \"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"catalog_product_relations\" (\"id\" uuid not null default gen_random_uuid(), \"parent_product_id\" uuid not null, \"child_product_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"relation_type\" text not null default 'grouped', \"is_required\" bool not null default false, \"min_quantity\" int4 null, \"max_quantity\" int4 null, \"position\" int4 not null default 0, \"metadata\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"catalog_product_relations_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"catalog_product_relations_child_idx\" on \"catalog_product_relations\" (\"child_product_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"catalog_product_relations_parent_idx\" on \"catalog_product_relations\" (\"parent_product_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`alter table \"catalog_product_relations\" add constraint \"catalog_product_relations_unique\" unique (\"parent_product_id\", \"child_product_id\", \"relation_type\");`);\n\n this.addSql(`create table \"catalog_product_tag_assignments\" (\"id\" uuid not null default gen_random_uuid(), \"product_id\" uuid not null, \"tag_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"catalog_product_tag_assignments_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"catalog_product_tag_assignments_scope_idx\" on \"catalog_product_tag_assignments\" (\"organization_id\", \"tenant_id\");`);\n this.addSql(`alter table \"catalog_product_tag_assignments\" add constraint \"catalog_product_tag_assignments_unique\" unique (\"product_id\", \"tag_id\");`);\n\n this.addSql(`create table \"catalog_product_tags\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"label\" text not null, \"slug\" text not null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"catalog_product_tags_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"catalog_product_tags_scope_idx\" on \"catalog_product_tags\" (\"organization_id\", \"tenant_id\");`);\n this.addSql(`alter table \"catalog_product_tags\" add constraint \"catalog_product_tags_slug_unique\" unique (\"organization_id\", \"tenant_id\", \"slug\");`);\n\n this.addSql(`create table \"catalog_product_variant_option_values\" (\"id\" uuid not null default gen_random_uuid(), \"variant_id\" uuid not null, \"option_value_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"metadata\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"catalog_product_variant_option_values_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"catalog_product_variant_option_values\" add constraint \"catalog_product_variant_option_values_unique\" unique (\"variant_id\", \"option_value_id\");`);\n\n this.addSql(`create table \"catalog_product_variant_prices\" (\"id\" uuid not null default gen_random_uuid(), \"variant_id\" uuid null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"currency_code\" text not null, \"kind\" text not null default 'regular', \"min_quantity\" int4 not null default 1, \"max_quantity\" int4 null, \"unit_price_net\" numeric(16,4) null, \"unit_price_gross\" numeric(16,4) null, \"tax_rate\" numeric(7,4) null, \"metadata\" jsonb null, \"starts_at\" timestamptz(6) null, \"ends_at\" timestamptz(6) null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"product_id\" uuid null, \"offer_id\" uuid null, \"channel_id\" uuid null, \"user_id\" uuid null, \"user_group_id\" uuid null, \"customer_id\" uuid null, \"customer_group_id\" uuid null, \"price_kind_id\" uuid not null, \"tax_amount\" numeric(16,4) null, constraint \"catalog_product_variant_prices_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"catalog_product_variant_prices_product_scope_idx\" on \"catalog_product_variant_prices\" (\"product_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`alter table \"catalog_product_variant_prices\" add constraint \"catalog_product_variant_prices_unique\" unique (\"variant_id\", \"organization_id\", \"tenant_id\", \"currency_code\", \"price_kind_id\", \"min_quantity\");`);\n this.addSql(`create index \"catalog_product_variant_prices_variant_scope_idx\" on \"catalog_product_variant_prices\" (\"variant_id\", \"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"catalog_product_variant_relations\" (\"id\" uuid not null default gen_random_uuid(), \"parent_variant_id\" uuid not null, \"child_variant_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"relation_type\" text not null default 'grouped', \"is_required\" bool not null default false, \"min_quantity\" int4 null, \"max_quantity\" int4 null, \"position\" int4 not null default 0, \"metadata\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"catalog_product_variant_relations_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"catalog_product_variant_relations_child_idx\" on \"catalog_product_variant_relations\" (\"child_variant_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"catalog_product_variant_relations_parent_idx\" on \"catalog_product_variant_relations\" (\"parent_variant_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`alter table \"catalog_product_variant_relations\" add constraint \"catalog_product_variant_relations_unique\" unique (\"parent_variant_id\", \"child_variant_id\", \"relation_type\");`);\n\n this.addSql(`create table \"catalog_product_variants\" (\"id\" uuid not null default gen_random_uuid(), \"product_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"name\" text null, \"sku\" text null, \"barcode\" text null, \"status_entry_id\" text null, \"is_default\" bool not null default false, \"is_active\" bool not null default true, \"weight_value\" numeric(16,4) null, \"weight_unit\" text null, \"dimensions\" jsonb null, \"metadata\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, \"custom_fieldset_code\" text null, \"default_media_id\" uuid null, \"default_media_url\" text null, \"option_values\" jsonb null, constraint \"catalog_product_variants_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"catalog_product_variants_scope_idx\" on \"catalog_product_variants\" (\"product_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`alter table \"catalog_product_variants\" add constraint \"catalog_product_variants_sku_unique\" unique (\"organization_id\", \"tenant_id\", \"sku\");`);\n\n this.addSql(`create table \"catalog_products\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"title\" text not null, \"description\" text null, \"subtitle\" text null, \"status_entry_id\" uuid null, \"primary_currency_code\" text null, \"default_unit\" text null, \"metadata\" jsonb null, \"is_configurable\" bool not null default false, \"is_active\" bool not null default true, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, \"product_type\" text not null default 'simple', \"sku\" text null, \"handle\" text null, \"option_schema_id\" uuid null, \"custom_fieldset_code\" text null, \"default_media_id\" uuid null, \"default_media_url\" text null, \"weight_value\" numeric(16,4) null, \"weight_unit\" text null, \"dimensions\" jsonb null, constraint \"catalog_products_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"catalog_products\" add constraint \"catalog_products_handle_scope_unique\" unique (\"organization_id\", \"tenant_id\", \"handle\");`);\n this.addSql(`create index \"catalog_products_org_tenant_idx\" on \"catalog_products\" (\"organization_id\", \"tenant_id\");`);\n this.addSql(`alter table \"catalog_products\" add constraint \"catalog_products_sku_scope_unique\" unique (\"organization_id\", \"tenant_id\", \"sku\");`);\n\n this.addSql(`create table \"custom_entities\" (\"id\" uuid not null default gen_random_uuid(), \"entity_id\" text not null, \"label\" text not null, \"description\" text null, \"label_field\" text null, \"default_editor\" text null, \"show_in_sidebar\" bool not null default false, \"organization_id\" uuid null, \"tenant_id\" uuid null, \"is_active\" bool not null default true, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"custom_entities_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"custom_entities_unique_idx\" on \"custom_entities\" (\"entity_id\", \"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"custom_entities_storage\" (\"id\" uuid not null default gen_random_uuid(), \"entity_type\" text not null, \"entity_id\" text not null, \"organization_id\" uuid null, \"tenant_id\" uuid null, \"doc\" jsonb not null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"custom_entities_storage_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"custom_entities_storage_unique_idx\" on \"custom_entities_storage\" (\"entity_type\", \"entity_id\", \"organization_id\");`);\n\n this.addSql(`create table \"custom_field_defs\" (\"id\" uuid not null default gen_random_uuid(), \"entity_id\" text not null, \"organization_id\" uuid null, \"tenant_id\" uuid null, \"key\" text not null, \"kind\" text not null, \"config_json\" jsonb null, \"is_active\" bool not null default true, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"custom_field_defs_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"cf_defs_active_entity_global_idx\" on \"custom_field_defs\" (\"entity_id\");`);\n this.addSql(`create index \"cf_defs_active_entity_key_scope_idx\" on \"custom_field_defs\" (\"entity_id\", \"key\", \"tenant_id\", \"organization_id\");`);\n this.addSql(`create index \"cf_defs_active_entity_org_idx\" on \"custom_field_defs\" (\"entity_id\", \"organization_id\");`);\n this.addSql(`create index \"cf_defs_active_entity_tenant_idx\" on \"custom_field_defs\" (\"entity_id\", \"tenant_id\");`);\n this.addSql(`create index \"cf_defs_active_entity_tenant_org_idx\" on \"custom_field_defs\" (\"entity_id\", \"tenant_id\", \"organization_id\");`);\n this.addSql(`create index \"cf_defs_entity_key_idx\" on \"custom_field_defs\" (\"key\");`);\n\n this.addSql(`create table \"custom_field_entity_configs\" (\"id\" uuid not null default gen_random_uuid(), \"entity_id\" text not null, \"organization_id\" uuid null, \"tenant_id\" uuid null, \"config_json\" jsonb null, \"is_active\" bool not null default true, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"custom_field_entity_configs_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"cf_entity_cfgs_entity_org_idx\" on \"custom_field_entity_configs\" (\"entity_id\", \"organization_id\");`);\n this.addSql(`create index \"cf_entity_cfgs_entity_scope_idx\" on \"custom_field_entity_configs\" (\"entity_id\", \"tenant_id\", \"organization_id\");`);\n this.addSql(`create index \"cf_entity_cfgs_entity_tenant_idx\" on \"custom_field_entity_configs\" (\"entity_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"custom_field_values\" (\"id\" uuid not null default gen_random_uuid(), \"entity_id\" text not null, \"record_id\" text not null, \"organization_id\" uuid null, \"tenant_id\" uuid null, \"field_key\" text not null, \"value_text\" text null, \"value_multiline\" text null, \"value_int\" int4 null, \"value_float\" float4 null, \"value_bool\" bool null, \"created_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"custom_field_values_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"cf_values_entity_record_field_idx\" on \"custom_field_values\" (\"field_key\");`);\n this.addSql(`create index \"cf_values_entity_record_tenant_idx\" on \"custom_field_values\" (\"entity_id\", \"record_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"customer_activities\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"activity_type\" text not null, \"subject\" text null, \"body\" text null, \"occurred_at\" timestamptz(6) null, \"author_user_id\" uuid null, \"appearance_icon\" text null, \"appearance_color\" text null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"entity_id\" uuid not null, \"deal_id\" uuid null, constraint \"customer_activities_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"customer_activities_entity_idx\" on \"customer_activities\" (\"entity_id\");`);\n this.addSql(`create index \"customer_activities_entity_occurred_created_idx\" on \"customer_activities\" (\"entity_id\", \"occurred_at\", \"created_at\");`);\n this.addSql(`create index \"customer_activities_org_tenant_idx\" on \"customer_activities\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"customer_addresses\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"name\" text null, \"purpose\" text null, \"address_line1\" text not null, \"address_line2\" text null, \"city\" text null, \"region\" text null, \"postal_code\" text null, \"country\" text null, \"building_number\" text null, \"flat_number\" text null, \"latitude\" float4 null, \"longitude\" float4 null, \"is_primary\" bool not null default false, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"entity_id\" uuid not null, constraint \"customer_addresses_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"customer_addresses_entity_idx\" on \"customer_addresses\" (\"entity_id\");`);\n\n this.addSql(`create table \"customer_comments\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"body\" text not null, \"author_user_id\" uuid null, \"appearance_icon\" text null, \"appearance_color\" text null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, \"entity_id\" uuid not null, \"deal_id\" uuid null, constraint \"customer_comments_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"customer_comments_entity_created_idx\" on \"customer_comments\" (\"entity_id\", \"created_at\");`);\n this.addSql(`create index \"customer_comments_entity_idx\" on \"customer_comments\" (\"entity_id\");`);\n\n this.addSql(`create table \"customer_companies\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"legal_name\" text null, \"brand_name\" text null, \"domain\" text null, \"website_url\" text null, \"industry\" text null, \"size_bucket\" text null, \"annual_revenue\" numeric(16,2) null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"entity_id\" uuid not null, constraint \"customer_companies_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"customer_companies\" add constraint \"customer_companies_entity_id_unique\" unique (\"entity_id\");`);\n this.addSql(`create index \"customer_companies_org_tenant_idx\" on \"customer_companies\" (\"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"idx_customer_companies_entity_id\" on \"customer_companies\" (\"entity_id\");`);\n\n this.addSql(`create table \"customer_deal_companies\" (\"id\" uuid not null default gen_random_uuid(), \"created_at\" timestamptz(6) not null, \"deal_id\" uuid not null, \"company_entity_id\" uuid not null, constraint \"customer_deal_companies_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"customer_deal_companies_company_idx\" on \"customer_deal_companies\" (\"company_entity_id\");`);\n this.addSql(`create index \"customer_deal_companies_deal_idx\" on \"customer_deal_companies\" (\"deal_id\");`);\n this.addSql(`alter table \"customer_deal_companies\" add constraint \"customer_deal_companies_unique\" unique (\"deal_id\", \"company_entity_id\");`);\n\n this.addSql(`create table \"customer_deal_people\" (\"id\" uuid not null default gen_random_uuid(), \"role\" text null, \"created_at\" timestamptz(6) not null, \"deal_id\" uuid not null, \"person_entity_id\" uuid not null, constraint \"customer_deal_people_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"customer_deal_people_deal_idx\" on \"customer_deal_people\" (\"deal_id\");`);\n this.addSql(`create index \"customer_deal_people_person_idx\" on \"customer_deal_people\" (\"person_entity_id\");`);\n this.addSql(`alter table \"customer_deal_people\" add constraint \"customer_deal_people_unique\" unique (\"deal_id\", \"person_entity_id\");`);\n\n this.addSql(`create table \"customer_deals\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"title\" text not null, \"description\" text null, \"status\" text not null default 'open', \"pipeline_stage\" text null, \"value_amount\" numeric(14,2) null, \"value_currency\" text null, \"probability\" int4 null, \"expected_close_at\" timestamptz(6) null, \"owner_user_id\" uuid null, \"source\" text null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"customer_deals_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"customer_deals_org_tenant_idx\" on \"customer_deals\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"customer_dictionary_entries\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"kind\" text not null, \"value\" text not null, \"normalized_value\" text not null, \"label\" text not null, \"color\" text null, \"icon\" text null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"customer_dictionary_entries_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"customer_dictionary_entries_scope_idx\" on \"customer_dictionary_entries\" (\"organization_id\", \"tenant_id\", \"kind\");`);\n this.addSql(`alter table \"customer_dictionary_entries\" add constraint \"customer_dictionary_entries_unique\" unique (\"organization_id\", \"tenant_id\", \"kind\", \"normalized_value\");`);\n\n this.addSql(`create table \"customer_entities\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"kind\" text not null, \"display_name\" text not null, \"description\" text null, \"owner_user_id\" uuid null, \"primary_email\" text null, \"primary_phone\" text null, \"status\" text null, \"lifecycle_stage\" text null, \"source\" text null, \"next_interaction_at\" timestamptz(6) null, \"next_interaction_name\" text null, \"next_interaction_ref_id\" text null, \"next_interaction_icon\" text null, \"next_interaction_color\" text null, \"is_active\" bool not null default true, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"customer_entities_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"customer_entities_org_tenant_kind_idx\" on \"customer_entities\" (\"organization_id\", \"tenant_id\", \"kind\");`);\n this.addSql(`create index \"idx_ce_tenant_company_id\" on \"customer_entities\" (\"tenant_id\", \"id\");`);\n this.addSql(`create index \"idx_ce_tenant_org_company_id\" on \"customer_entities\" (\"tenant_id\", \"organization_id\", \"id\");`);\n this.addSql(`create index \"idx_ce_tenant_org_person_id\" on \"customer_entities\" (\"tenant_id\", \"organization_id\", \"id\");`);\n this.addSql(`create index \"idx_ce_tenant_person_id\" on \"customer_entities\" (\"tenant_id\", \"id\");`);\n\n this.addSql(`create table \"customer_people\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"first_name\" text null, \"last_name\" text null, \"preferred_name\" text null, \"job_title\" text null, \"department\" text null, \"seniority\" text null, \"timezone\" text null, \"linked_in_url\" text null, \"twitter_url\" text null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"entity_id\" uuid not null, \"company_entity_id\" uuid null, constraint \"customer_people_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"customer_people\" add constraint \"customer_people_entity_id_unique\" unique (\"entity_id\");`);\n this.addSql(`create index \"customer_people_org_tenant_idx\" on \"customer_people\" (\"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"idx_customer_people_entity_id\" on \"customer_people\" (\"entity_id\");`);\n\n this.addSql(`create table \"customer_settings\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"address_format\" text not null default 'line_first', \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"customer_settings_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"customer_settings\" add constraint \"customer_settings_scope_unique\" unique (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"customer_tag_assignments\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"created_at\" timestamptz(6) not null, \"tag_id\" uuid not null, \"entity_id\" uuid not null, constraint \"customer_tag_assignments_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"customer_tag_assignments_entity_idx\" on \"customer_tag_assignments\" (\"entity_id\");`);\n this.addSql(`alter table \"customer_tag_assignments\" add constraint \"customer_tag_assignments_unique\" unique (\"tag_id\", \"entity_id\");`);\n\n this.addSql(`create table \"customer_tags\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"slug\" text not null, \"label\" text not null, \"color\" text null, \"description\" text null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"customer_tags_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"customer_tags\" add constraint \"customer_tags_org_slug_unique\" unique (\"organization_id\", \"tenant_id\", \"slug\");`);\n this.addSql(`create index \"customer_tags_org_tenant_idx\" on \"customer_tags\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"customer_todo_links\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"todo_id\" uuid not null, \"todo_source\" text not null default 'example:todo', \"created_at\" timestamptz(6) not null, \"created_by_user_id\" uuid null, \"entity_id\" uuid not null, constraint \"customer_todo_links_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"customer_todo_links_entity_created_idx\" on \"customer_todo_links\" (\"entity_id\", \"created_at\");`);\n this.addSql(`create index \"customer_todo_links_entity_idx\" on \"customer_todo_links\" (\"entity_id\");`);\n this.addSql(`alter table \"customer_todo_links\" add constraint \"customer_todo_links_unique\" unique (\"entity_id\", \"todo_id\", \"todo_source\");`);\n\n this.addSql(`create table \"dashboard_layouts\" (\"id\" uuid not null default gen_random_uuid(), \"user_id\" uuid not null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"layout_json\" jsonb not null default '[]', \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, constraint \"dashboard_layouts_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"dashboard_layouts\" add constraint \"dashboard_layouts_user_id_tenant_id_organization_id_unique\" unique (\"user_id\", \"tenant_id\", \"organization_id\");`);\n\n this.addSql(`create table \"dashboard_role_widgets\" (\"id\" uuid not null default gen_random_uuid(), \"role_id\" uuid not null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"widget_ids_json\" jsonb not null default '[]', \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, constraint \"dashboard_role_widgets_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"dashboard_role_widgets\" add constraint \"dashboard_role_widgets_role_id_tenant_id_organization_id_unique\" unique (\"role_id\", \"tenant_id\", \"organization_id\");`);\n\n this.addSql(`create table \"dashboard_user_widgets\" (\"id\" uuid not null default gen_random_uuid(), \"user_id\" uuid not null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"mode\" text not null default 'inherit', \"widget_ids_json\" jsonb not null default '[]', \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, constraint \"dashboard_user_widgets_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"dashboard_user_widgets\" add constraint \"dashboard_user_widgets_user_id_tenant_id_organization_id_unique\" unique (\"user_id\", \"tenant_id\", \"organization_id\");`);\n\n this.addSql(`create table \"dictionaries\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"key\" text not null, \"name\" text not null, \"description\" text null, \"is_system\" bool not null default false, \"is_active\" bool not null default true, \"manager_visibility\" text not null default 'default', \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"dictionaries_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"dictionaries\" add constraint \"dictionaries_scope_key_unique\" unique (\"organization_id\", \"tenant_id\", \"key\");`);\n\n this.addSql(`create table \"dictionary_entries\" (\"id\" uuid not null default gen_random_uuid(), \"dictionary_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"value\" text not null, \"normalized_value\" text not null, \"label\" text not null, \"color\" text null, \"icon\" text null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"dictionary_entries_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"dictionary_entries_scope_idx\" on \"dictionary_entries\" (\"dictionary_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`alter table \"dictionary_entries\" add constraint \"dictionary_entries_unique\" unique (\"dictionary_id\", \"organization_id\", \"tenant_id\", \"normalized_value\");`);\n\n this.addSql(`create table \"entity_index_coverage\" (\"id\" uuid not null default gen_random_uuid(), \"entity_type\" text not null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"with_deleted\" bool not null default false, \"base_count\" int4 not null default 0, \"indexed_count\" int4 not null default 0, \"vector_indexed_count\" int4 not null default 0, \"refreshed_at\" timestamptz(6) not null, constraint \"entity_index_coverage_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"entity_index_coverage\" add constraint \"entity_index_coverage_scope_idx\" unique (\"entity_type\", \"tenant_id\", \"organization_id\", \"with_deleted\");`);\n\n this.addSql(`create table \"entity_index_jobs\" (\"id\" uuid not null default gen_random_uuid(), \"entity_type\" text not null, \"organization_id\" uuid null, \"tenant_id\" uuid null, \"partition_index\" int4 null, \"partition_count\" int4 null, \"processed_count\" int4 null, \"total_count\" int4 null, \"heartbeat_at\" timestamptz(6) null, \"status\" text not null, \"started_at\" timestamptz(6) not null, \"finished_at\" timestamptz(6) null, constraint \"entity_index_jobs_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"entity_index_jobs_org_idx\" on \"entity_index_jobs\" (\"organization_id\");`);\n this.addSql(`create index \"entity_index_jobs_type_idx\" on \"entity_index_jobs\" (\"entity_type\");`);\n\n this.addSql(`create table \"entity_indexes\" (\"id\" uuid not null default gen_random_uuid(), \"entity_type\" text not null, \"entity_id\" text not null, \"organization_id\" uuid null, \"tenant_id\" uuid null, \"doc\" jsonb not null, \"embedding\" jsonb null, \"index_version\" int4 not null default 1, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"entity_indexes_pkey\" primary key (\"id\"));`);\n this.addSql(`CREATE INDEX entity_indexes_customer_company_profile_doc_idx ON public.entity_indexes USING btree (entity_id, organization_id, tenant_id) INCLUDE (doc) WHERE ((deleted_at IS NULL) AND (entity_type = 'customers:customer_company_profile'::text) AND (organization_id IS NOT NULL) AND (tenant_id IS NOT NULL));`);\n this.addSql(`CREATE INDEX entity_indexes_customer_company_profile_tenant_doc_idx ON public.entity_indexes USING btree (tenant_id, entity_id) INCLUDE (doc) WHERE ((deleted_at IS NULL) AND (entity_type = 'customers:customer_company_profile'::text) AND (organization_id IS NULL) AND (tenant_id IS NOT NULL));`);\n this.addSql(`CREATE INDEX entity_indexes_customer_entity_doc_idx ON public.entity_indexes USING btree (entity_id, organization_id, tenant_id) INCLUDE (doc) WHERE ((deleted_at IS NULL) AND (entity_type = 'customers:customer_entity'::text) AND (organization_id IS NOT NULL) AND (tenant_id IS NOT NULL));`);\n this.addSql(`CREATE INDEX entity_indexes_customer_entity_tenant_doc_idx ON public.entity_indexes USING btree (tenant_id, entity_id) INCLUDE (doc) WHERE ((deleted_at IS NULL) AND (entity_type = 'customers:customer_entity'::text) AND (organization_id IS NULL) AND (tenant_id IS NOT NULL));`);\n this.addSql(`CREATE INDEX entity_indexes_customer_person_profile_doc_idx ON public.entity_indexes USING btree (entity_id, organization_id, tenant_id) INCLUDE (doc) WHERE ((deleted_at IS NULL) AND (entity_type = 'customers:customer_person_profile'::text) AND (organization_id IS NOT NULL) AND (tenant_id IS NOT NULL));`);\n this.addSql(`CREATE INDEX entity_indexes_customer_person_profile_tenant_doc_idx ON public.entity_indexes USING btree (tenant_id, entity_id) INCLUDE (doc) WHERE ((deleted_at IS NULL) AND (entity_type = 'customers:customer_person_profile'::text) AND (organization_id IS NULL) AND (tenant_id IS NOT NULL));`);\n this.addSql(`create index \"entity_indexes_entity_idx\" on \"entity_indexes\" (\"entity_id\");`);\n this.addSql(`create index \"entity_indexes_org_idx\" on \"entity_indexes\" (\"organization_id\");`);\n this.addSql(`create index \"entity_indexes_type_idx\" on \"entity_indexes\" (\"entity_type\");`);\n this.addSql(`create index \"entity_indexes_type_tenant_idx\" on \"entity_indexes\" (\"entity_type\", \"tenant_id\");`);\n\n this.addSql(`create table \"example_items\" (\"id\" uuid not null default gen_random_uuid(), \"title\" text not null, \"created_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"example_items_pkey\" primary key (\"id\"));`);\n\n this.addSql(`create table \"indexer_error_logs\" (\"id\" uuid not null default gen_random_uuid(), \"source\" text not null, \"handler\" text not null, \"entity_type\" text null, \"record_id\" text null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"payload\" jsonb null, \"message\" text not null, \"stack\" text null, \"occurred_at\" timestamptz(6) not null, constraint \"indexer_error_logs_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"indexer_error_logs_occurred_idx\" on \"indexer_error_logs\" (\"occurred_at\");`);\n this.addSql(`create index \"indexer_error_logs_source_idx\" on \"indexer_error_logs\" (\"source\");`);\n\n this.addSql(`create table \"indexer_status_logs\" (\"id\" uuid not null default gen_random_uuid(), \"source\" text not null, \"handler\" text not null, \"level\" text not null default 'info', \"entity_type\" text null, \"record_id\" text null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"message\" text not null, \"details\" jsonb null, \"occurred_at\" timestamptz(6) not null default now(), constraint \"indexer_status_logs_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"indexer_status_logs_occurred_idx\" on \"indexer_status_logs\" (\"occurred_at\");`);\n this.addSql(`create index \"indexer_status_logs_source_idx\" on \"indexer_status_logs\" (\"source\");`);\n\n this.addSql(`create table \"mikro_orm_migrations_api_keys\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_attachments\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_audit_logs\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_auth\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_business_rules\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_catalog\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_configs\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_customers\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_dashboards\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_dictionaries\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_directory\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_entities\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_example\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_onboarding\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_perspectives\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_query_index\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_sales\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"module_configs\" (\"id\" uuid not null default gen_random_uuid(), \"module_id\" text not null, \"name\" text not null, \"value_json\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"module_configs_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"module_configs_module_idx\" on \"module_configs\" (\"module_id\");`);\n this.addSql(`alter table \"module_configs\" add constraint \"module_configs_module_name_unique\" unique (\"module_id\", \"name\");`);\n\n this.addSql(`create table \"onboarding_requests\" (\"id\" uuid not null default gen_random_uuid(), \"email\" text not null, \"token_hash\" text not null, \"status\" text not null default 'pending', \"first_name\" text not null, \"last_name\" text not null, \"organization_name\" text not null, \"locale\" text null, \"terms_accepted\" bool not null default false, \"expires_at\" timestamptz(6) not null, \"completed_at\" timestamptz(6) null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"user_id\" uuid null, \"last_email_sent_at\" timestamptz(6) null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, \"password_hash\" text null, constraint \"onboarding_requests_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"onboarding_requests\" add constraint \"onboarding_requests_email_unique\" unique (\"email\");`);\n this.addSql(`alter table \"onboarding_requests\" add constraint \"onboarding_requests_token_hash_unique\" unique (\"token_hash\");`);\n\n this.addSql(`create table \"organizations\" (\"id\" uuid not null default gen_random_uuid(), \"tenant_id\" uuid not null, \"name\" text not null, \"is_active\" bool not null default true, \"parent_id\" uuid null, \"root_id\" uuid null, \"tree_path\" text null, \"depth\" int4 not null default 0, \"ancestor_ids\" jsonb not null default '[]', \"child_ids\" jsonb not null default '[]', \"descendant_ids\" jsonb not null default '[]', \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"organizations_pkey\" primary key (\"id\"));`);\n\n this.addSql(`create table \"password_resets\" (\"id\" uuid not null default gen_random_uuid(), \"user_id\" uuid not null, \"token\" text not null, \"expires_at\" timestamptz(6) not null, \"used_at\" timestamptz(6) null, \"created_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"password_resets_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"password_resets\" add constraint \"password_resets_token_unique\" unique (\"token\");`);\n\n this.addSql(`create table \"perspectives\" (\"id\" uuid not null default gen_random_uuid(), \"user_id\" uuid not null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"table_id\" text not null, \"name\" text not null, \"settings_json\" jsonb not null, \"is_default\" bool not null default false, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, constraint \"perspectives_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"perspectives\" add constraint \"perspectives_user_id_tenant_id_organization_id_ta_2d725_unique\" unique (\"user_id\", \"tenant_id\", \"organization_id\", \"table_id\", \"name\");`);\n this.addSql(`create index \"perspectives_user_scope_idx\" on \"perspectives\" (\"user_id\", \"tenant_id\", \"organization_id\", \"table_id\");`);\n\n this.addSql(`create table \"role_acls\" (\"id\" uuid not null default gen_random_uuid(), \"role_id\" uuid not null, \"tenant_id\" uuid not null, \"features_json\" jsonb null, \"is_super_admin\" bool not null default false, \"organizations_json\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, constraint \"role_acls_pkey\" primary key (\"id\"));`);\n\n this.addSql(`create table \"role_perspectives\" (\"id\" uuid not null default gen_random_uuid(), \"role_id\" uuid not null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"table_id\" text not null, \"name\" text not null, \"settings_json\" jsonb not null, \"is_default\" bool not null default false, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, constraint \"role_perspectives_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"role_perspectives\" add constraint \"role_perspectives_role_id_tenant_id_organization__c5467_unique\" unique (\"role_id\", \"tenant_id\", \"organization_id\", \"table_id\", \"name\");`);\n this.addSql(`create index \"role_perspectives_role_scope_idx\" on \"role_perspectives\" (\"role_id\", \"tenant_id\", \"organization_id\", \"table_id\");`);\n\n this.addSql(`create table \"role_sidebar_preferences\" (\"id\" uuid not null default gen_random_uuid(), \"role_id\" uuid not null, \"tenant_id\" uuid null, \"locale\" text not null, \"settings_json\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, constraint \"role_sidebar_preferences_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"role_sidebar_preferences\" add constraint \"role_sidebar_preferences_role_id_tenant_id_locale_unique\" unique (\"role_id\", \"tenant_id\", \"locale\");`);\n\n this.addSql(`create table \"roles\" (\"id\" uuid not null default gen_random_uuid(), \"name\" text not null, \"tenant_id\" uuid null, \"created_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"roles_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"roles\" add constraint \"roles_tenant_id_name_unique\" unique (\"tenant_id\", \"name\");`);\n\n this.addSql(`create table \"rule_execution_logs\" (\"id\" bigserial primary key, \"rule_id\" uuid not null, \"entity_id\" uuid not null, \"entity_type\" varchar(50) not null, \"execution_result\" varchar(20) not null, \"input_context\" jsonb null, \"output_context\" jsonb null, \"error_message\" text null, \"execution_time_ms\" int4 not null, \"executed_at\" timestamptz(6) not null, \"tenant_id\" uuid not null, \"organization_id\" uuid null, \"executed_by\" varchar(50) null);`);\n this.addSql(`create index \"rule_execution_logs_entity_idx\" on \"rule_execution_logs\" (\"entity_type\", \"entity_id\");`);\n this.addSql(`create index \"rule_execution_logs_result_idx\" on \"rule_execution_logs\" (\"execution_result\", \"executed_at\");`);\n this.addSql(`create index \"rule_execution_logs_rule_idx\" on \"rule_execution_logs\" (\"rule_id\");`);\n this.addSql(`create index \"rule_execution_logs_tenant_org_idx\" on \"rule_execution_logs\" (\"tenant_id\", \"organization_id\");`);\n\n this.addSql(`create table \"rule_set_members\" (\"id\" uuid not null default gen_random_uuid(), \"rule_set_id\" uuid not null, \"rule_id\" uuid not null, \"sequence\" int4 not null default 0, \"enabled\" bool not null default true, \"tenant_id\" uuid not null, \"organization_id\" uuid not null, \"created_at\" timestamptz(6) not null, constraint \"rule_set_members_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"rule_set_members_rule_idx\" on \"rule_set_members\" (\"rule_id\");`);\n this.addSql(`alter table \"rule_set_members\" add constraint \"rule_set_members_rule_set_id_rule_id_unique\" unique (\"rule_set_id\", \"rule_id\");`);\n this.addSql(`create index \"rule_set_members_set_idx\" on \"rule_set_members\" (\"rule_set_id\", \"sequence\");`);\n this.addSql(`create index \"rule_set_members_tenant_org_idx\" on \"rule_set_members\" (\"tenant_id\", \"organization_id\");`);\n\n this.addSql(`create table \"rule_sets\" (\"id\" uuid not null default gen_random_uuid(), \"set_id\" varchar(50) not null, \"set_name\" varchar(200) not null, \"description\" text null, \"enabled\" bool not null default true, \"tenant_id\" uuid not null, \"organization_id\" uuid not null, \"created_by\" varchar(50) null, \"updated_by\" varchar(50) null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"rule_sets_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"rule_sets_enabled_idx\" on \"rule_sets\" (\"enabled\");`);\n this.addSql(`alter table \"rule_sets\" add constraint \"rule_sets_set_id_tenant_id_unique\" unique (\"set_id\", \"tenant_id\");`);\n this.addSql(`create index \"rule_sets_tenant_org_idx\" on \"rule_sets\" (\"tenant_id\", \"organization_id\");`);\n\n this.addSql(`create table \"sales_channels\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"name\" text not null, \"code\" text null, \"description\" text null, \"status_entry_id\" uuid null, \"status\" text null, \"website_url\" text null, \"contact_email\" text null, \"contact_phone\" text null, \"address_line1\" text null, \"address_line2\" text null, \"city\" text null, \"region\" text null, \"postal_code\" text null, \"country\" text null, \"latitude\" numeric(10,6) null, \"longitude\" numeric(10,6) null, \"is_active\" bool not null default true, \"metadata\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"sales_channels_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"sales_channels\" add constraint \"sales_channels_code_unique\" unique (\"organization_id\", \"tenant_id\", \"code\");`);\n this.addSql(`create index \"sales_channels_org_tenant_idx\" on \"sales_channels\" (\"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"sales_channels_status_idx\" on \"sales_channels\" (\"organization_id\", \"tenant_id\", \"status\");`);\n\n this.addSql(`create table \"sales_credit_memo_lines\" (\"id\" uuid not null default gen_random_uuid(), \"credit_memo_id\" uuid not null, \"order_line_id\" uuid null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"line_number\" int4 not null default 0, \"description\" text null, \"quantity\" numeric(18,4) not null default '0', \"quantity_unit\" text null, \"currency_code\" text not null, \"unit_price_net\" numeric(18,4) not null default '0', \"unit_price_gross\" numeric(18,4) not null default '0', \"tax_rate\" numeric(7,4) not null default '0', \"tax_amount\" numeric(18,4) not null default '0', \"total_net_amount\" numeric(18,4) not null default '0', \"total_gross_amount\" numeric(18,4) not null default '0', \"metadata\" jsonb null, constraint \"sales_credit_memo_lines_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_credit_memo_lines_scope_idx\" on \"sales_credit_memo_lines\" (\"credit_memo_id\", \"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"sales_credit_memos\" (\"id\" uuid not null default gen_random_uuid(), \"order_id\" uuid null, \"invoice_id\" uuid null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"credit_memo_number\" text not null, \"status_entry_id\" uuid null, \"status\" text null, \"issue_date\" timestamptz(6) null, \"currency_code\" text not null, \"subtotal_net_amount\" numeric(18,4) not null default '0', \"subtotal_gross_amount\" numeric(18,4) not null default '0', \"tax_total_amount\" numeric(18,4) not null default '0', \"grand_total_net_amount\" numeric(18,4) not null default '0', \"grand_total_gross_amount\" numeric(18,4) not null default '0', \"metadata\" jsonb null, \"custom_field_set_id\" uuid null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"sales_credit_memos_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"sales_credit_memos\" add constraint \"sales_credit_memos_number_unique\" unique (\"organization_id\", \"tenant_id\", \"credit_memo_number\");`);\n this.addSql(`create index \"sales_credit_memos_scope_idx\" on \"sales_credit_memos\" (\"order_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"sales_credit_memos_status_idx\" on \"sales_credit_memos\" (\"organization_id\", \"tenant_id\", \"status\");`);\n\n this.addSql(`create table \"sales_delivery_windows\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"name\" text not null, \"code\" text not null, \"description\" text null, \"lead_time_days\" int4 null, \"cutoff_time\" text null, \"timezone\" text null, \"is_active\" bool not null default true, \"metadata\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"sales_delivery_windows_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"sales_delivery_windows\" add constraint \"sales_delivery_windows_code_unique\" unique (\"organization_id\", \"tenant_id\", \"code\");`);\n this.addSql(`create index \"sales_delivery_windows_scope_idx\" on \"sales_delivery_windows\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"sales_invoice_lines\" (\"id\" uuid not null default gen_random_uuid(), \"invoice_id\" uuid not null, \"order_line_id\" uuid null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"line_number\" int4 not null default 0, \"kind\" text not null default 'product', \"description\" text null, \"quantity\" numeric(18,4) not null default '0', \"quantity_unit\" text null, \"currency_code\" text not null, \"unit_price_net\" numeric(18,4) not null default '0', \"unit_price_gross\" numeric(18,4) not null default '0', \"discount_amount\" numeric(18,4) not null default '0', \"discount_percent\" numeric(7,4) not null default '0', \"tax_rate\" numeric(7,4) not null default '0', \"tax_amount\" numeric(18,4) not null default '0', \"total_net_amount\" numeric(18,4) not null default '0', \"total_gross_amount\" numeric(18,4) not null default '0', \"metadata\" jsonb null, constraint \"sales_invoice_lines_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_invoice_lines_scope_idx\" on \"sales_invoice_lines\" (\"invoice_id\", \"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"sales_invoices\" (\"id\" uuid not null default gen_random_uuid(), \"order_id\" uuid null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"invoice_number\" text not null, \"status_entry_id\" uuid null, \"status\" text null, \"issue_date\" timestamptz(6) null, \"due_date\" timestamptz(6) null, \"currency_code\" text not null, \"subtotal_net_amount\" numeric(18,4) not null default '0', \"subtotal_gross_amount\" numeric(18,4) not null default '0', \"discount_total_amount\" numeric(18,4) not null default '0', \"tax_total_amount\" numeric(18,4) not null default '0', \"grand_total_net_amount\" numeric(18,4) not null default '0', \"grand_total_gross_amount\" numeric(18,4) not null default '0', \"paid_total_amount\" numeric(18,4) not null default '0', \"outstanding_amount\" numeric(18,4) not null default '0', \"metadata\" jsonb null, \"custom_field_set_id\" uuid null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"sales_invoices_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"sales_invoices\" add constraint \"sales_invoices_number_unique\" unique (\"organization_id\", \"tenant_id\", \"invoice_number\");`);\n this.addSql(`create index \"sales_invoices_scope_idx\" on \"sales_invoices\" (\"order_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"sales_invoices_status_idx\" on \"sales_invoices\" (\"organization_id\", \"tenant_id\", \"status\");`);\n\n this.addSql(`create table \"sales_notes\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"context_type\" text not null, \"context_id\" uuid not null, \"order_id\" uuid null, \"quote_id\" uuid null, \"author_user_id\" uuid null, \"body\" text not null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"sales_notes_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_notes_scope_idx\" on \"sales_notes\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"sales_order_adjustments\" (\"id\" uuid not null default gen_random_uuid(), \"order_id\" uuid not null, \"order_line_id\" uuid null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"scope\" text not null default 'order', \"kind\" text not null default 'custom', \"code\" text null, \"label\" text null, \"calculator_key\" text null, \"promotion_id\" uuid null, \"rate\" numeric(7,4) not null default '0', \"amount_net\" numeric(18,4) not null default '0', \"amount_gross\" numeric(18,4) not null default '0', \"currency_code\" text null, \"metadata\" jsonb null, \"position\" int4 not null default 0, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"sales_order_adjustments_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_order_adjustments_scope_idx\" on \"sales_order_adjustments\" (\"order_id\", \"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"sales_order_lines\" (\"id\" uuid not null default gen_random_uuid(), \"order_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"line_number\" int4 not null default 0, \"kind\" text not null default 'product', \"status_entry_id\" uuid null, \"status\" text null, \"product_id\" uuid null, \"product_variant_id\" uuid null, \"catalog_snapshot\" jsonb null, \"name\" text null, \"description\" text null, \"comment\" text null, \"quantity\" numeric(18,4) not null default '0', \"quantity_unit\" text null, \"reserved_quantity\" numeric(18,4) not null default '0', \"fulfilled_quantity\" numeric(18,4) not null default '0', \"invoiced_quantity\" numeric(18,4) not null default '0', \"returned_quantity\" numeric(18,4) not null default '0', \"currency_code\" text not null, \"unit_price_net\" numeric(18,4) not null default '0', \"unit_price_gross\" numeric(18,4) not null default '0', \"discount_amount\" numeric(18,4) not null default '0', \"discount_percent\" numeric(7,4) not null default '0', \"tax_rate\" numeric(7,4) not null default '0', \"tax_amount\" numeric(18,4) not null default '0', \"total_net_amount\" numeric(18,4) not null default '0', \"total_gross_amount\" numeric(18,4) not null default '0', \"configuration\" jsonb null, \"promotion_code\" text null, \"promotion_snapshot\" jsonb null, \"metadata\" jsonb null, \"custom_field_set_id\" uuid null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"sales_order_lines_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_order_lines_scope_idx\" on \"sales_order_lines\" (\"order_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"sales_order_lines_status_idx\" on \"sales_order_lines\" (\"organization_id\", \"tenant_id\", \"status\");`);\n\n this.addSql(`create table \"sales_orders\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"order_number\" text not null, \"external_reference\" text null, \"customer_reference\" text null, \"customer_entity_id\" uuid null, \"customer_contact_id\" uuid null, \"billing_address_id\" uuid null, \"shipping_address_id\" uuid null, \"currency_code\" text not null, \"exchange_rate\" numeric(18,8) null, \"status_entry_id\" uuid null, \"status\" text null, \"fulfillment_status_entry_id\" uuid null, \"fulfillment_status\" text null, \"payment_status_entry_id\" uuid null, \"payment_status\" text null, \"tax_strategy_key\" text null, \"discount_strategy_key\" text null, \"shipping_method_snapshot\" jsonb null, \"payment_method_snapshot\" jsonb null, \"placed_at\" timestamptz(6) null, \"expected_delivery_at\" timestamptz(6) null, \"due_at\" timestamptz(6) null, \"comments\" text null, \"internal_notes\" text null, \"subtotal_net_amount\" numeric(18,4) not null default '0', \"subtotal_gross_amount\" numeric(18,4) not null default '0', \"discount_total_amount\" numeric(18,4) not null default '0', \"tax_total_amount\" numeric(18,4) not null default '0', \"shipping_net_amount\" numeric(18,4) not null default '0', \"shipping_gross_amount\" numeric(18,4) not null default '0', \"surcharge_total_amount\" numeric(18,4) not null default '0', \"grand_total_net_amount\" numeric(18,4) not null default '0', \"grand_total_gross_amount\" numeric(18,4) not null default '0', \"paid_total_amount\" numeric(18,4) not null default '0', \"refunded_total_amount\" numeric(18,4) not null default '0', \"outstanding_amount\" numeric(18,4) not null default '0', \"line_item_count\" int4 not null default 0, \"metadata\" jsonb null, \"custom_field_set_id\" uuid null, \"channel_id\" uuid null, \"channel_ref_id\" uuid null, \"shipping_method_id\" uuid null, \"shipping_method_ref_id\" uuid null, \"delivery_window_id\" uuid null, \"delivery_window_ref_id\" uuid null, \"payment_method_id\" uuid null, \"payment_method_ref_id\" uuid null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"sales_orders_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_orders_customer_idx\" on \"sales_orders\" (\"customer_entity_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"sales_orders_fulfillment_status_idx\" on \"sales_orders\" (\"organization_id\", \"tenant_id\", \"fulfillment_status\");`);\n this.addSql(`alter table \"sales_orders\" add constraint \"sales_orders_number_unique\" unique (\"organization_id\", \"tenant_id\", \"order_number\");`);\n this.addSql(`create index \"sales_orders_org_tenant_idx\" on \"sales_orders\" (\"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"sales_orders_payment_status_idx\" on \"sales_orders\" (\"organization_id\", \"tenant_id\", \"payment_status\");`);\n this.addSql(`create index \"sales_orders_status_idx\" on \"sales_orders\" (\"organization_id\", \"tenant_id\", \"status\");`);\n\n this.addSql(`create table \"sales_payment_allocations\" (\"id\" uuid not null default gen_random_uuid(), \"payment_id\" uuid not null, \"order_id\" uuid null, \"invoice_id\" uuid null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"amount\" numeric(18,4) not null default '0', \"currency_code\" text not null, \"metadata\" jsonb null, constraint \"sales_payment_allocations_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_payment_allocations_scope_idx\" on \"sales_payment_allocations\" (\"payment_id\", \"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"sales_payment_methods\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"name\" text not null, \"code\" text not null, \"description\" text null, \"provider_key\" text null, \"terms\" text null, \"is_active\" bool not null default true, \"metadata\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"sales_payment_methods_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"sales_payment_methods\" add constraint \"sales_payment_methods_code_unique\" unique (\"organization_id\", \"tenant_id\", \"code\");`);\n this.addSql(`create index \"sales_payment_methods_scope_idx\" on \"sales_payment_methods\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"sales_payments\" (\"id\" uuid not null default gen_random_uuid(), \"order_id\" uuid null, \"payment_method_id\" uuid null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"payment_reference\" text null, \"status_entry_id\" uuid null, \"status\" text null, \"amount\" numeric(18,4) not null default '0', \"currency_code\" text not null, \"captured_amount\" numeric(18,4) not null default '0', \"refunded_amount\" numeric(18,4) not null default '0', \"received_at\" timestamptz(6) null, \"captured_at\" timestamptz(6) null, \"metadata\" jsonb null, \"custom_field_set_id\" uuid null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"sales_payments_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_payments_scope_idx\" on \"sales_payments\" (\"order_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"sales_payments_status_idx\" on \"sales_payments\" (\"organization_id\", \"tenant_id\", \"status\");`);\n\n this.addSql(`create table \"sales_quote_adjustments\" (\"id\" uuid not null default gen_random_uuid(), \"quote_id\" uuid not null, \"quote_line_id\" uuid null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"scope\" text not null default 'order', \"kind\" text not null default 'custom', \"code\" text null, \"label\" text null, \"calculator_key\" text null, \"promotion_id\" uuid null, \"rate\" numeric(7,4) not null default '0', \"amount_net\" numeric(18,4) not null default '0', \"amount_gross\" numeric(18,4) not null default '0', \"currency_code\" text null, \"metadata\" jsonb null, \"position\" int4 not null default 0, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"sales_quote_adjustments_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_quote_adjustments_scope_idx\" on \"sales_quote_adjustments\" (\"quote_id\", \"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"sales_quote_lines\" (\"id\" uuid not null default gen_random_uuid(), \"quote_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"line_number\" int4 not null default 0, \"kind\" text not null default 'product', \"status_entry_id\" uuid null, \"status\" text null, \"product_id\" uuid null, \"product_variant_id\" uuid null, \"catalog_snapshot\" jsonb null, \"name\" text null, \"description\" text null, \"comment\" text null, \"quantity\" numeric(18,4) not null default '0', \"quantity_unit\" text null, \"currency_code\" text not null, \"unit_price_net\" numeric(18,4) not null default '0', \"unit_price_gross\" numeric(18,4) not null default '0', \"discount_amount\" numeric(18,4) not null default '0', \"discount_percent\" numeric(7,4) not null default '0', \"tax_rate\" numeric(7,4) not null default '0', \"tax_amount\" numeric(18,4) not null default '0', \"total_net_amount\" numeric(18,4) not null default '0', \"total_gross_amount\" numeric(18,4) not null default '0', \"configuration\" jsonb null, \"promotion_code\" text null, \"promotion_snapshot\" jsonb null, \"metadata\" jsonb null, \"custom_field_set_id\" uuid null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"sales_quote_lines_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_quote_lines_scope_idx\" on \"sales_quote_lines\" (\"quote_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"sales_quote_lines_status_idx\" on \"sales_quote_lines\" (\"organization_id\", \"tenant_id\", \"status\");`);\n\n this.addSql(`create table \"sales_quotes\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"quote_number\" text not null, \"status_entry_id\" uuid null, \"status\" text null, \"customer_entity_id\" uuid null, \"customer_contact_id\" uuid null, \"currency_code\" text not null, \"valid_from\" timestamptz(6) null, \"valid_until\" timestamptz(6) null, \"comments\" text null, \"subtotal_net_amount\" numeric(18,4) not null default '0', \"subtotal_gross_amount\" numeric(18,4) not null default '0', \"discount_total_amount\" numeric(18,4) not null default '0', \"tax_total_amount\" numeric(18,4) not null default '0', \"grand_total_net_amount\" numeric(18,4) not null default '0', \"grand_total_gross_amount\" numeric(18,4) not null default '0', \"line_item_count\" int4 not null default 0, \"metadata\" jsonb null, \"custom_field_set_id\" uuid null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, \"converted_order_id\" uuid null, constraint \"sales_quotes_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"sales_quotes\" add constraint \"sales_quotes_number_unique\" unique (\"organization_id\", \"tenant_id\", \"quote_number\");`);\n this.addSql(`create index \"sales_quotes_scope_idx\" on \"sales_quotes\" (\"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"sales_quotes_status_idx\" on \"sales_quotes\" (\"organization_id\", \"tenant_id\", \"status\");`);\n\n this.addSql(`create table \"sales_shipment_items\" (\"id\" uuid not null default gen_random_uuid(), \"shipment_id\" uuid not null, \"order_line_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"quantity\" numeric(18,4) not null default '0', \"metadata\" jsonb null, constraint \"sales_shipment_items_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_shipment_items_scope_idx\" on \"sales_shipment_items\" (\"shipment_id\", \"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"sales_shipments\" (\"id\" uuid not null default gen_random_uuid(), \"order_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"shipment_number\" text null, \"shipping_method_id\" uuid null, \"status_entry_id\" uuid null, \"status\" text null, \"carrier_name\" text null, \"tracking_numbers\" jsonb null, \"shipped_at\" timestamptz(6) null, \"delivered_at\" timestamptz(6) null, \"weight_value\" numeric(16,4) null, \"weight_unit\" text null, \"declared_value_net\" numeric(18,4) null, \"declared_value_gross\" numeric(18,4) null, \"currency_code\" text null, \"notes\" text null, \"metadata\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"sales_shipments_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_shipments_scope_idx\" on \"sales_shipments\" (\"order_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"sales_shipments_status_idx\" on \"sales_shipments\" (\"organization_id\", \"tenant_id\", \"status\");`);\n\n this.addSql(`create table \"sales_shipping_methods\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"name\" text not null, \"code\" text not null, \"description\" text null, \"carrier_code\" text null, \"service_level\" text null, \"estimated_transit_days\" int4 null, \"base_rate_net\" numeric(16,4) not null default '0', \"base_rate_gross\" numeric(16,4) not null default '0', \"currency_code\" text null, \"is_active\" bool not null default true, \"metadata\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"sales_shipping_methods_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"sales_shipping_methods\" add constraint \"sales_shipping_methods_code_unique\" unique (\"organization_id\", \"tenant_id\", \"code\");`);\n this.addSql(`create index \"sales_shipping_methods_scope_idx\" on \"sales_shipping_methods\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"sales_tax_rates\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"name\" text not null, \"code\" text not null, \"rate\" numeric(7,4) not null, \"country_code\" text null, \"region_code\" text null, \"postal_code\" text null, \"city\" text null, \"customer_group_id\" uuid null, \"product_category_id\" uuid null, \"channel_id\" uuid null, \"priority\" int4 not null default 0, \"is_compound\" bool not null default false, \"metadata\" jsonb null, \"starts_at\" timestamptz(6) null, \"ends_at\" timestamptz(6) null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, \"is_default\" bool not null default false, constraint \"sales_tax_rates_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"sales_tax_rates\" add constraint \"sales_tax_rates_code_unique\" unique (\"organization_id\", \"tenant_id\", \"code\");`);\n this.addSql(`create index \"sales_tax_rates_scope_idx\" on \"sales_tax_rates\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"sessions\" (\"id\" uuid not null default gen_random_uuid(), \"user_id\" uuid not null, \"token\" text not null, \"expires_at\" timestamptz(6) not null, \"created_at\" timestamptz(6) not null, \"last_used_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, constraint \"sessions_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"sessions\" add constraint \"sessions_token_unique\" unique (\"token\");`);\n\n this.addSql(`create table \"tenants\" (\"id\" uuid not null default gen_random_uuid(), \"name\" text not null, \"is_active\" bool not null default true, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"tenants_pkey\" primary key (\"id\"));`);\n\n this.addSql(`create table \"todos\" (\"id\" uuid not null default gen_random_uuid(), \"title\" text not null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"is_done\" bool not null default false, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"todos_pkey\" primary key (\"id\"));`);\n\n this.addSql(`create table \"user_acls\" (\"id\" uuid not null default gen_random_uuid(), \"user_id\" uuid not null, \"tenant_id\" uuid not null, \"features_json\" jsonb null, \"is_super_admin\" bool not null default false, \"organizations_json\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, constraint \"user_acls_pkey\" primary key (\"id\"));`);\n\n this.addSql(`create table \"user_roles\" (\"id\" uuid not null default gen_random_uuid(), \"user_id\" uuid not null, \"role_id\" uuid not null, \"created_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"user_roles_pkey\" primary key (\"id\"));`);\n\n this.addSql(`create table \"user_sidebar_preferences\" (\"id\" uuid not null default gen_random_uuid(), \"user_id\" uuid not null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"locale\" text not null, \"settings_json\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, constraint \"user_sidebar_preferences_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"user_sidebar_preferences\" add constraint \"user_sidebar_preferences_user_id_tenant_id_organi_f3f2f_unique\" unique (\"user_id\", \"tenant_id\", \"organization_id\", \"locale\");`);\n\n this.addSql(`create table \"users\" (\"id\" uuid not null default gen_random_uuid(), \"tenant_id\" uuid null, \"organization_id\" uuid null, \"email\" text not null, \"name\" text null, \"password_hash\" text null, \"is_confirmed\" bool not null default true, \"last_login_at\" timestamptz(6) null, \"created_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"users_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"users\" add constraint \"users_email_unique\" unique (\"email\");`);\n\n this.addSql(`create table \"vector_search\" (\"id\" uuid not null default gen_random_uuid(), \"driver_id\" text not null, \"entity_id\" text not null, \"record_id\" text not null, \"tenant_id\" uuid not null, \"organization_id\" uuid null, \"checksum\" text not null, \"embedding\" vector(1536) not null, \"url\" text null, \"presenter\" jsonb null, \"links\" jsonb null, \"payload\" jsonb null, \"result_title\" text null, \"result_subtitle\" text null, \"result_icon\" text null, \"result_badge\" text null, \"result_snapshot\" text null, \"primary_link_href\" text null, \"primary_link_label\" text null, \"created_at\" timestamptz(6) not null default now(), \"updated_at\" timestamptz(6) not null default now(), constraint \"vector_search_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"vector_search_embedding_idx\" on \"vector_search\" (\"embedding\");`);\n this.addSql(`create index \"vector_search_lookup\" on \"vector_search\" (\"tenant_id\", \"organization_id\", \"entity_id\");`);\n this.addSql(`alter table \"vector_search\" add constraint \"vector_search_uniq\" unique (\"driver_id\", \"entity_id\", \"record_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"vector_search_migrations\" (\"id\" text not null, \"applied_at\" timestamptz(6) not null default now(), constraint \"vector_search_migrations_pkey\" primary key (\"id\"));`);\n }\n\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { Migration } from '@mikro-orm/migrations';\n\nexport class Migration20251207131955 extends Migration {\n\n /** Drop a foreign key constraint only when the owning table exists (safe for disabled modules). */\n private dropConstraintIfTableExists(table: string, constraint: string): void {\n this.addSql(`DO $$ BEGIN IF EXISTS (SELECT 1 FROM information_schema.tables WHERE table_name = '${table}') THEN ALTER TABLE \"${table}\" DROP CONSTRAINT IF EXISTS \"${constraint}\"; END IF; END $$;`)\n }\n\n override async up(): Promise<void> {\n this.dropConstraintIfTableExists('rule_execution_logs', 'rule_execution_logs_rule_id_foreign');\n this.dropConstraintIfTableExists('rule_set_members', 'rule_set_members_rule_id_foreign');\n this.dropConstraintIfTableExists('catalog_product_variant_prices', 'catalog_product_variant_prices_price_kind_id_foreign');\n this.dropConstraintIfTableExists('catalog_product_category_assignments', 'catalog_product_category_assignments_category_id_foreign');\n this.dropConstraintIfTableExists('catalog_product_variant_prices', 'catalog_product_variant_prices_offer_id_foreign');\n this.dropConstraintIfTableExists('catalog_products', 'catalog_products_option_schema_id_foreign');\n this.dropConstraintIfTableExists('catalog_product_tag_assignments', 'catalog_product_tag_assignments_tag_id_foreign');\n this.dropConstraintIfTableExists('catalog_product_variant_option_values', 'catalog_product_variant_option_values_variant_id_foreign');\n this.dropConstraintIfTableExists('catalog_product_variant_prices', 'catalog_product_variant_prices_variant_id_foreign');\n this.dropConstraintIfTableExists('catalog_product_variant_relations', 'catalog_product_variant_relations_child_variant_id_foreign');\n this.dropConstraintIfTableExists('catalog_product_variant_relations', 'catalog_product_variant_relations_parent_variant_id_foreign');\n this.dropConstraintIfTableExists('catalog_product_category_assignments', 'catalog_product_category_assignments_product_id_foreign');\n this.dropConstraintIfTableExists('catalog_product_offers', 'catalog_product_offers_product_id_foreign');\n this.dropConstraintIfTableExists('catalog_product_options', 'catalog_product_options_product_id_foreign');\n this.dropConstraintIfTableExists('catalog_product_relations', 'catalog_product_relations_child_product_id_foreign');\n this.dropConstraintIfTableExists('catalog_product_relations', 'catalog_product_relations_parent_product_id_foreign');\n this.dropConstraintIfTableExists('catalog_product_tag_assignments', 'catalog_product_tag_assignments_product_id_foreign');\n this.dropConstraintIfTableExists('catalog_product_variant_prices', 'catalog_product_variant_prices_product_id_foreign');\n this.dropConstraintIfTableExists('catalog_product_variants', 'catalog_product_variants_product_id_foreign');\n this.dropConstraintIfTableExists('customer_activities', 'customer_activities_deal_id_foreign');\n this.dropConstraintIfTableExists('customer_comments', 'customer_comments_deal_id_foreign');\n this.dropConstraintIfTableExists('customer_deal_companies', 'customer_deal_companies_deal_id_foreign');\n this.dropConstraintIfTableExists('customer_deal_people', 'customer_deal_people_deal_id_foreign');\n this.dropConstraintIfTableExists('customer_activities', 'customer_activities_entity_id_foreign');\n this.dropConstraintIfTableExists('customer_addresses', 'customer_addresses_entity_id_foreign');\n this.dropConstraintIfTableExists('customer_comments', 'customer_comments_entity_id_foreign');\n this.dropConstraintIfTableExists('customer_companies', 'customer_companies_entity_id_foreign');\n this.dropConstraintIfTableExists('customer_deal_companies', 'customer_deal_companies_company_entity_id_foreign');\n this.dropConstraintIfTableExists('customer_deal_people', 'customer_deal_people_person_entity_id_foreign');\n this.dropConstraintIfTableExists('customer_people', 'customer_people_company_entity_id_foreign');\n this.dropConstraintIfTableExists('customer_people', 'customer_people_entity_id_foreign');\n this.dropConstraintIfTableExists('customer_tag_assignments', 'customer_tag_assignments_entity_id_foreign');\n this.dropConstraintIfTableExists('customer_todo_links', 'customer_todo_links_entity_id_foreign');\n this.dropConstraintIfTableExists('customer_tag_assignments', 'customer_tag_assignments_tag_id_foreign');\n this.dropConstraintIfTableExists('dictionary_entries', 'dictionary_entries_dictionary_id_foreign');\n this.dropConstraintIfTableExists('role_acls', 'role_acls_role_id_foreign');\n this.dropConstraintIfTableExists('role_sidebar_preferences', 'role_sidebar_preferences_role_id_foreign');\n this.dropConstraintIfTableExists('user_roles', 'user_roles_role_id_foreign');\n this.dropConstraintIfTableExists('rule_set_members', 'rule_set_members_rule_set_id_foreign');\n this.dropConstraintIfTableExists('sales_orders', 'sales_orders_channel_ref_id_foreign');\n this.dropConstraintIfTableExists('sales_credit_memo_lines', 'sales_credit_memo_lines_credit_memo_id_foreign');\n this.dropConstraintIfTableExists('sales_orders', 'sales_orders_delivery_window_ref_id_foreign');\n this.dropConstraintIfTableExists('sales_credit_memos', 'sales_credit_memos_invoice_id_foreign');\n this.dropConstraintIfTableExists('sales_invoice_lines', 'sales_invoice_lines_invoice_id_foreign');\n this.dropConstraintIfTableExists('sales_payment_allocations', 'sales_payment_allocations_invoice_id_foreign');\n this.dropConstraintIfTableExists('sales_credit_memo_lines', 'sales_credit_memo_lines_order_line_id_foreign');\n this.dropConstraintIfTableExists('sales_invoice_lines', 'sales_invoice_lines_order_line_id_foreign');\n this.dropConstraintIfTableExists('sales_order_adjustments', 'sales_order_adjustments_order_line_id_foreign');\n this.dropConstraintIfTableExists('sales_shipment_items', 'sales_shipment_items_order_line_id_foreign');\n this.dropConstraintIfTableExists('sales_credit_memos', 'sales_credit_memos_order_id_foreign');\n this.dropConstraintIfTableExists('sales_invoices', 'sales_invoices_order_id_foreign');\n this.dropConstraintIfTableExists('sales_notes', 'sales_notes_order_id_foreign');\n this.dropConstraintIfTableExists('sales_order_adjustments', 'sales_order_adjustments_order_id_foreign');\n this.dropConstraintIfTableExists('sales_order_lines', 'sales_order_lines_order_id_foreign');\n this.dropConstraintIfTableExists('sales_payment_allocations', 'sales_payment_allocations_order_id_foreign');\n this.dropConstraintIfTableExists('sales_payments', 'sales_payments_order_id_foreign');\n this.dropConstraintIfTableExists('sales_shipments', 'sales_shipments_order_id_foreign');\n this.dropConstraintIfTableExists('sales_orders', 'sales_orders_payment_method_ref_id_foreign');\n this.dropConstraintIfTableExists('sales_payments', 'sales_payments_payment_method_id_foreign');\n this.dropConstraintIfTableExists('sales_payment_allocations', 'sales_payment_allocations_payment_id_foreign');\n this.dropConstraintIfTableExists('sales_quote_adjustments', 'sales_quote_adjustments_quote_line_id_foreign');\n this.dropConstraintIfTableExists('sales_notes', 'sales_notes_quote_id_foreign');\n this.dropConstraintIfTableExists('sales_quote_adjustments', 'sales_quote_adjustments_quote_id_foreign');\n this.dropConstraintIfTableExists('sales_quote_lines', 'sales_quote_lines_quote_id_foreign');\n this.dropConstraintIfTableExists('sales_shipment_items', 'sales_shipment_items_shipment_id_foreign');\n this.dropConstraintIfTableExists('sales_orders', 'sales_orders_shipping_method_ref_id_foreign');\n this.dropConstraintIfTableExists('organizations', 'organizations_tenant_id_foreign');\n this.dropConstraintIfTableExists('password_resets', 'password_resets_user_id_foreign');\n this.dropConstraintIfTableExists('sessions', 'sessions_user_id_foreign');\n this.dropConstraintIfTableExists('user_acls', 'user_acls_user_id_foreign');\n this.dropConstraintIfTableExists('user_roles', 'user_roles_user_id_foreign');\n this.dropConstraintIfTableExists('user_sidebar_preferences', 'user_sidebar_preferences_user_id_foreign');\n\n this.addSql(`create table \"step_instances\" (\"id\" uuid not null default gen_random_uuid(), \"workflow_instance_id\" uuid not null, \"step_id\" varchar(100) not null, \"step_name\" varchar(255) not null, \"step_type\" varchar(50) not null, \"status\" varchar(20) not null, \"input_data\" jsonb null, \"output_data\" jsonb null, \"error_data\" jsonb null, \"entered_at\" timestamptz null, \"exited_at\" timestamptz null, \"execution_time_ms\" int null, \"retry_count\" int not null default 0, \"tenant_id\" uuid not null, \"organization_id\" uuid not null, \"created_at\" timestamptz not null, \"updated_at\" timestamptz not null, constraint \"step_instances_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"step_instances_tenant_org_idx\" on \"step_instances\" (\"tenant_id\", \"organization_id\");`);\n this.addSql(`create index \"step_instances_step_id_idx\" on \"step_instances\" (\"step_id\", \"status\");`);\n this.addSql(`create index \"step_instances_workflow_instance_idx\" on \"step_instances\" (\"workflow_instance_id\", \"status\");`);\n\n this.addSql(`create table \"user_tasks\" (\"id\" uuid not null default gen_random_uuid(), \"workflow_instance_id\" uuid not null, \"step_instance_id\" uuid not null, \"task_name\" varchar(255) not null, \"description\" text null, \"status\" varchar(20) not null, \"form_schema\" jsonb null, \"form_data\" jsonb null, \"assigned_to\" varchar(255) null, \"assigned_to_roles\" text[] null, \"claimed_by\" varchar(255) null, \"claimed_at\" timestamptz null, \"due_date\" timestamptz null, \"escalated_at\" timestamptz null, \"escalated_to\" varchar(255) null, \"completed_by\" varchar(255) null, \"completed_at\" timestamptz null, \"comments\" text null, \"tenant_id\" uuid not null, \"organization_id\" uuid not null, \"created_at\" timestamptz not null, \"updated_at\" timestamptz not null, constraint \"user_tasks_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"user_tasks_tenant_org_idx\" on \"user_tasks\" (\"tenant_id\", \"organization_id\");`);\n this.addSql(`create index \"user_tasks_status_due_date_idx\" on \"user_tasks\" (\"status\", \"due_date\");`);\n this.addSql(`create index \"user_tasks_status_assigned_idx\" on \"user_tasks\" (\"status\", \"assigned_to\");`);\n this.addSql(`create index \"user_tasks_workflow_instance_idx\" on \"user_tasks\" (\"workflow_instance_id\");`);\n\n this.addSql(`create table \"workflow_definitions\" (\"id\" uuid not null default gen_random_uuid(), \"workflow_id\" varchar(100) not null, \"workflow_name\" varchar(255) not null, \"description\" text null, \"version\" int not null default 1, \"definition\" jsonb not null, \"metadata\" jsonb null, \"enabled\" boolean not null default true, \"effective_from\" timestamptz null, \"effective_to\" timestamptz null, \"tenant_id\" uuid not null, \"organization_id\" uuid not null, \"created_by\" varchar(255) null, \"updated_by\" varchar(255) null, \"created_at\" timestamptz not null, \"updated_at\" timestamptz not null, \"deleted_at\" timestamptz null, constraint \"workflow_definitions_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"workflow_definitions_workflow_id_idx\" on \"workflow_definitions\" (\"workflow_id\");`);\n this.addSql(`create index \"workflow_definitions_tenant_org_idx\" on \"workflow_definitions\" (\"tenant_id\", \"organization_id\");`);\n this.addSql(`create index \"workflow_definitions_enabled_idx\" on \"workflow_definitions\" (\"enabled\");`);\n this.addSql(`alter table \"workflow_definitions\" add constraint \"workflow_definitions_workflow_id_tenant_id_unique\" unique (\"workflow_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"workflow_events\" (\"id\" bigserial primary key, \"workflow_instance_id\" uuid not null, \"step_instance_id\" uuid null, \"event_type\" varchar(50) not null, \"event_data\" jsonb not null, \"occurred_at\" timestamptz not null, \"user_id\" varchar(255) null, \"tenant_id\" uuid not null, \"organization_id\" uuid not null);`);\n this.addSql(`create index \"workflow_events_tenant_org_idx\" on \"workflow_events\" (\"tenant_id\", \"organization_id\");`);\n this.addSql(`create index \"workflow_events_event_type_idx\" on \"workflow_events\" (\"event_type\", \"occurred_at\");`);\n this.addSql(`create index \"workflow_events_instance_occurred_idx\" on \"workflow_events\" (\"workflow_instance_id\", \"occurred_at\");`);\n\n this.addSql(`create table \"workflow_instances\" (\"id\" uuid not null default gen_random_uuid(), \"definition_id\" uuid not null, \"workflow_id\" varchar(100) not null, \"version\" int not null, \"status\" varchar(20) not null, \"current_step_id\" varchar(100) not null, \"context\" jsonb not null, \"correlation_key\" varchar(255) null, \"metadata\" jsonb null, \"started_at\" timestamptz not null, \"completed_at\" timestamptz null, \"paused_at\" timestamptz null, \"cancelled_at\" timestamptz null, \"error_message\" text null, \"error_details\" jsonb null, \"retry_count\" int not null default 0, \"tenant_id\" uuid not null, \"organization_id\" uuid not null, \"created_at\" timestamptz not null, \"updated_at\" timestamptz not null, \"deleted_at\" timestamptz null, constraint \"workflow_instances_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"workflow_instances_tenant_org_idx\" on \"workflow_instances\" (\"tenant_id\", \"organization_id\");`);\n this.addSql(`create index \"workflow_instances_current_step_idx\" on \"workflow_instances\" (\"current_step_id\", \"status\");`);\n this.addSql(`create index \"workflow_instances_status_tenant_idx\" on \"workflow_instances\" (\"status\", \"tenant_id\");`);\n this.addSql(`create index \"workflow_instances_correlation_key_idx\" on \"workflow_instances\" (\"correlation_key\");`);\n this.addSql(`create index \"workflow_instances_definition_status_idx\" on \"workflow_instances\" (\"definition_id\", \"status\");`);\n }\n\n override async down(): Promise<void> {\n this.addSql(`create table \"access_logs\" (\"id\" uuid not null default gen_random_uuid(), \"tenant_id\" uuid null, \"organization_id\" uuid null, \"actor_user_id\" uuid null, \"resource_kind\" text not null, \"resource_id\" text not null, \"access_type\" text not null, \"fields_json\" jsonb null, \"context_json\" jsonb null, \"created_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"access_logs_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"access_logs_actor_idx\" on \"access_logs\" (\"actor_user_id\", \"created_at\");`);\n this.addSql(`create index \"access_logs_tenant_idx\" on \"access_logs\" (\"tenant_id\", \"created_at\");`);\n\n this.addSql(`create table \"action_logs\" (\"id\" uuid not null default gen_random_uuid(), \"tenant_id\" uuid null, \"organization_id\" uuid null, \"actor_user_id\" uuid null, \"command_id\" text not null, \"action_label\" text null, \"resource_kind\" text null, \"resource_id\" text null, \"execution_state\" text not null default 'done', \"undo_token\" text null, \"command_payload\" jsonb null, \"snapshot_before\" jsonb null, \"snapshot_after\" jsonb null, \"changes_json\" jsonb null, \"context_json\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"action_logs_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"action_logs_actor_idx\" on \"action_logs\" (\"actor_user_id\", \"created_at\");`);\n this.addSql(`create index \"action_logs_tenant_idx\" on \"action_logs\" (\"tenant_id\", \"created_at\");`);\n\n this.addSql(`create table \"api_keys\" (\"id\" uuid not null default gen_random_uuid(), \"name\" text not null, \"description\" text null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"key_hash\" text not null, \"key_prefix\" text not null, \"roles_json\" jsonb null, \"created_by\" uuid null, \"last_used_at\" timestamptz(6) null, \"expires_at\" timestamptz(6) null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, constraint \"api_keys_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"api_keys\" add constraint \"api_keys_key_prefix_unique\" unique (\"key_prefix\");`);\n\n this.addSql(`create table \"attachment_partitions\" (\"id\" uuid not null default gen_random_uuid(), \"code\" text not null, \"title\" text not null, \"description\" text null, \"storage_driver\" text not null default 'local', \"config_json\" jsonb null, \"is_public\" bool not null default false, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"attachment_partitions_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"attachment_partitions\" add constraint \"attachment_partitions_code_unique\" unique (\"code\");`);\n\n this.addSql(`create table \"attachments\" (\"id\" uuid not null default gen_random_uuid(), \"entity_id\" text not null, \"record_id\" text not null, \"organization_id\" uuid null, \"tenant_id\" uuid null, \"file_name\" text not null, \"mime_type\" text not null, \"file_size\" int4 not null, \"url\" text not null, \"created_at\" timestamptz(6) not null, \"partition_code\" text not null, \"storage_driver\" text not null default 'local', \"storage_path\" text not null, \"storage_metadata\" jsonb null, constraint \"attachments_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"attachments_entity_record_idx\" on \"attachments\" (\"record_id\");`);\n this.addSql(`create index \"attachments_partition_code_idx\" on \"attachments\" (\"partition_code\");`);\n\n this.addSql(`create table \"business_rules\" (\"id\" uuid not null default gen_random_uuid(), \"rule_id\" varchar(50) not null, \"rule_name\" varchar(200) not null, \"description\" text null, \"rule_type\" varchar(20) not null, \"rule_category\" varchar(50) null, \"entity_type\" varchar(50) not null, \"event_type\" varchar(50) null, \"condition_expression\" jsonb not null, \"success_actions\" jsonb null, \"failure_actions\" jsonb null, \"enabled\" bool not null default true, \"priority\" int4 not null default 100, \"version\" int4 not null default 1, \"effective_from\" timestamptz(6) null, \"effective_to\" timestamptz(6) null, \"tenant_id\" uuid not null, \"organization_id\" uuid not null, \"created_by\" varchar(50) null, \"updated_by\" varchar(50) null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"business_rules_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"business_rules_entity_event_idx\" on \"business_rules\" (\"entity_type\", \"event_type\", \"enabled\");`);\n this.addSql(`alter table \"business_rules\" add constraint \"business_rules_rule_id_tenant_id_unique\" unique (\"rule_id\", \"tenant_id\");`);\n this.addSql(`create index \"business_rules_tenant_org_idx\" on \"business_rules\" (\"tenant_id\", \"organization_id\");`);\n this.addSql(`create index \"business_rules_type_enabled_idx\" on \"business_rules\" (\"rule_type\", \"enabled\", \"priority\");`);\n\n this.addSql(`create table \"catalog_price_kinds\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"code\" text not null, \"title\" text not null, \"display_mode\" text not null default 'excluding-tax', \"currency_code\" text null, \"is_promotion\" bool not null default false, \"is_active\" bool not null default true, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"catalog_price_kinds_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"catalog_price_kinds\" add constraint \"catalog_price_kinds_code_scope_unique\" unique (\"organization_id\", \"tenant_id\", \"code\");`);\n this.addSql(`create index \"catalog_price_kinds_scope_idx\" on \"catalog_price_kinds\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"catalog_product_categories\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"name\" text not null, \"slug\" text null, \"description\" text null, \"parent_id\" uuid null, \"root_id\" uuid null, \"tree_path\" text null, \"depth\" int4 not null default 0, \"ancestor_ids\" jsonb not null default '[]', \"child_ids\" jsonb not null default '[]', \"descendant_ids\" jsonb not null default '[]', \"metadata\" jsonb null, \"is_active\" bool not null default true, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"catalog_product_categories_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"catalog_product_categories_scope_idx\" on \"catalog_product_categories\" (\"organization_id\", \"tenant_id\");`);\n this.addSql(`alter table \"catalog_product_categories\" add constraint \"catalog_product_categories_slug_unique\" unique (\"organization_id\", \"tenant_id\", \"slug\");`);\n\n this.addSql(`create table \"catalog_product_category_assignments\" (\"id\" uuid not null default gen_random_uuid(), \"product_id\" uuid not null, \"category_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"position\" int4 not null default 0, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"catalog_product_category_assignments_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"catalog_product_category_assignments_scope_idx\" on \"catalog_product_category_assignments\" (\"organization_id\", \"tenant_id\");`);\n this.addSql(`alter table \"catalog_product_category_assignments\" add constraint \"catalog_product_category_assignments_unique\" unique (\"product_id\", \"category_id\");`);\n\n this.addSql(`create table \"catalog_product_offers\" (\"id\" uuid not null default gen_random_uuid(), \"product_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"channel_id\" uuid not null, \"title\" text not null, \"description\" text null, \"localized_content\" jsonb null, \"metadata\" jsonb null, \"is_active\" bool not null default true, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, \"default_media_id\" uuid null, \"default_media_url\" text null, constraint \"catalog_product_offers_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"catalog_product_offers\" add constraint \"catalog_product_offers_product_channel_unique\" unique (\"product_id\", \"organization_id\", \"tenant_id\", \"channel_id\");`);\n this.addSql(`create index \"catalog_product_offers_scope_idx\" on \"catalog_product_offers\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"catalog_product_option_schemas\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"name\" text not null, \"code\" text not null, \"description\" text null, \"schema\" jsonb not null, \"metadata\" jsonb null, \"is_active\" bool not null default true, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"catalog_product_option_schemas_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"catalog_product_option_schemas\" add constraint \"catalog_product_option_schemas_code_unique\" unique (\"organization_id\", \"tenant_id\", \"code\");`);\n this.addSql(`create index \"catalog_product_option_schemas_scope_idx\" on \"catalog_product_option_schemas\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"catalog_product_option_values\" (\"id\" uuid not null default gen_random_uuid(), \"option_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"code\" text not null, \"label\" text not null, \"description\" text null, \"position\" int4 not null default 0, \"metadata\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"catalog_product_option_values_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"catalog_product_option_values\" add constraint \"catalog_product_option_values_code_unique\" unique (\"organization_id\", \"tenant_id\", \"option_id\", \"code\");`);\n this.addSql(`create index \"catalog_product_option_values_scope_idx\" on \"catalog_product_option_values\" (\"option_id\", \"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"catalog_product_options\" (\"id\" uuid not null default gen_random_uuid(), \"product_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"code\" text not null, \"label\" text not null, \"description\" text null, \"position\" int4 not null default 0, \"is_required\" bool not null default false, \"is_multiple\" bool not null default false, \"metadata\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"input_type\" text not null default 'select', \"input_config\" jsonb null, constraint \"catalog_product_options_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"catalog_product_options_scope_idx\" on \"catalog_product_options\" (\"product_id\", \"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"catalog_product_relations\" (\"id\" uuid not null default gen_random_uuid(), \"parent_product_id\" uuid not null, \"child_product_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"relation_type\" text not null default 'grouped', \"is_required\" bool not null default false, \"min_quantity\" int4 null, \"max_quantity\" int4 null, \"position\" int4 not null default 0, \"metadata\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"catalog_product_relations_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"catalog_product_relations_child_idx\" on \"catalog_product_relations\" (\"child_product_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"catalog_product_relations_parent_idx\" on \"catalog_product_relations\" (\"parent_product_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`alter table \"catalog_product_relations\" add constraint \"catalog_product_relations_unique\" unique (\"parent_product_id\", \"child_product_id\", \"relation_type\");`);\n\n this.addSql(`create table \"catalog_product_tag_assignments\" (\"id\" uuid not null default gen_random_uuid(), \"product_id\" uuid not null, \"tag_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"catalog_product_tag_assignments_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"catalog_product_tag_assignments_scope_idx\" on \"catalog_product_tag_assignments\" (\"organization_id\", \"tenant_id\");`);\n this.addSql(`alter table \"catalog_product_tag_assignments\" add constraint \"catalog_product_tag_assignments_unique\" unique (\"product_id\", \"tag_id\");`);\n\n this.addSql(`create table \"catalog_product_tags\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"label\" text not null, \"slug\" text not null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"catalog_product_tags_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"catalog_product_tags_scope_idx\" on \"catalog_product_tags\" (\"organization_id\", \"tenant_id\");`);\n this.addSql(`alter table \"catalog_product_tags\" add constraint \"catalog_product_tags_slug_unique\" unique (\"organization_id\", \"tenant_id\", \"slug\");`);\n\n this.addSql(`create table \"catalog_product_variant_option_values\" (\"id\" uuid not null default gen_random_uuid(), \"variant_id\" uuid not null, \"option_value_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"metadata\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"catalog_product_variant_option_values_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"catalog_product_variant_option_values\" add constraint \"catalog_product_variant_option_values_unique\" unique (\"variant_id\", \"option_value_id\");`);\n\n this.addSql(`create table \"catalog_product_variant_prices\" (\"id\" uuid not null default gen_random_uuid(), \"variant_id\" uuid null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"currency_code\" text not null, \"kind\" text not null default 'regular', \"min_quantity\" int4 not null default 1, \"max_quantity\" int4 null, \"unit_price_net\" numeric(16,4) null, \"unit_price_gross\" numeric(16,4) null, \"tax_rate\" numeric(7,4) null, \"metadata\" jsonb null, \"starts_at\" timestamptz(6) null, \"ends_at\" timestamptz(6) null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"product_id\" uuid null, \"offer_id\" uuid null, \"channel_id\" uuid null, \"user_id\" uuid null, \"user_group_id\" uuid null, \"customer_id\" uuid null, \"customer_group_id\" uuid null, \"price_kind_id\" uuid not null, \"tax_amount\" numeric(16,4) null, constraint \"catalog_product_variant_prices_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"catalog_product_variant_prices_product_scope_idx\" on \"catalog_product_variant_prices\" (\"product_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`alter table \"catalog_product_variant_prices\" add constraint \"catalog_product_variant_prices_unique\" unique (\"variant_id\", \"organization_id\", \"tenant_id\", \"currency_code\", \"price_kind_id\", \"min_quantity\");`);\n this.addSql(`create index \"catalog_product_variant_prices_variant_scope_idx\" on \"catalog_product_variant_prices\" (\"variant_id\", \"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"catalog_product_variant_relations\" (\"id\" uuid not null default gen_random_uuid(), \"parent_variant_id\" uuid not null, \"child_variant_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"relation_type\" text not null default 'grouped', \"is_required\" bool not null default false, \"min_quantity\" int4 null, \"max_quantity\" int4 null, \"position\" int4 not null default 0, \"metadata\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"catalog_product_variant_relations_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"catalog_product_variant_relations_child_idx\" on \"catalog_product_variant_relations\" (\"child_variant_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"catalog_product_variant_relations_parent_idx\" on \"catalog_product_variant_relations\" (\"parent_variant_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`alter table \"catalog_product_variant_relations\" add constraint \"catalog_product_variant_relations_unique\" unique (\"parent_variant_id\", \"child_variant_id\", \"relation_type\");`);\n\n this.addSql(`create table \"catalog_product_variants\" (\"id\" uuid not null default gen_random_uuid(), \"product_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"name\" text null, \"sku\" text null, \"barcode\" text null, \"status_entry_id\" text null, \"is_default\" bool not null default false, \"is_active\" bool not null default true, \"weight_value\" numeric(16,4) null, \"weight_unit\" text null, \"dimensions\" jsonb null, \"metadata\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, \"custom_fieldset_code\" text null, \"default_media_id\" uuid null, \"default_media_url\" text null, \"option_values\" jsonb null, constraint \"catalog_product_variants_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"catalog_product_variants_scope_idx\" on \"catalog_product_variants\" (\"product_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`alter table \"catalog_product_variants\" add constraint \"catalog_product_variants_sku_unique\" unique (\"organization_id\", \"tenant_id\", \"sku\");`);\n\n this.addSql(`create table \"catalog_products\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"title\" text not null, \"description\" text null, \"subtitle\" text null, \"status_entry_id\" uuid null, \"primary_currency_code\" text null, \"default_unit\" text null, \"metadata\" jsonb null, \"is_configurable\" bool not null default false, \"is_active\" bool not null default true, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, \"product_type\" text not null default 'simple', \"sku\" text null, \"handle\" text null, \"option_schema_id\" uuid null, \"custom_fieldset_code\" text null, \"default_media_id\" uuid null, \"default_media_url\" text null, \"weight_value\" numeric(16,4) null, \"weight_unit\" text null, \"dimensions\" jsonb null, constraint \"catalog_products_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"catalog_products\" add constraint \"catalog_products_handle_scope_unique\" unique (\"organization_id\", \"tenant_id\", \"handle\");`);\n this.addSql(`create index \"catalog_products_org_tenant_idx\" on \"catalog_products\" (\"organization_id\", \"tenant_id\");`);\n this.addSql(`alter table \"catalog_products\" add constraint \"catalog_products_sku_scope_unique\" unique (\"organization_id\", \"tenant_id\", \"sku\");`);\n\n this.addSql(`create table \"custom_entities\" (\"id\" uuid not null default gen_random_uuid(), \"entity_id\" text not null, \"label\" text not null, \"description\" text null, \"label_field\" text null, \"default_editor\" text null, \"show_in_sidebar\" bool not null default false, \"organization_id\" uuid null, \"tenant_id\" uuid null, \"is_active\" bool not null default true, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"custom_entities_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"custom_entities_unique_idx\" on \"custom_entities\" (\"entity_id\", \"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"custom_entities_storage\" (\"id\" uuid not null default gen_random_uuid(), \"entity_type\" text not null, \"entity_id\" text not null, \"organization_id\" uuid null, \"tenant_id\" uuid null, \"doc\" jsonb not null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"custom_entities_storage_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"custom_entities_storage_unique_idx\" on \"custom_entities_storage\" (\"entity_type\", \"entity_id\", \"organization_id\");`);\n\n this.addSql(`create table \"custom_field_defs\" (\"id\" uuid not null default gen_random_uuid(), \"entity_id\" text not null, \"organization_id\" uuid null, \"tenant_id\" uuid null, \"key\" text not null, \"kind\" text not null, \"config_json\" jsonb null, \"is_active\" bool not null default true, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"custom_field_defs_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"cf_defs_active_entity_global_idx\" on \"custom_field_defs\" (\"entity_id\");`);\n this.addSql(`create index \"cf_defs_active_entity_key_scope_idx\" on \"custom_field_defs\" (\"entity_id\", \"key\", \"tenant_id\", \"organization_id\");`);\n this.addSql(`create index \"cf_defs_active_entity_org_idx\" on \"custom_field_defs\" (\"entity_id\", \"organization_id\");`);\n this.addSql(`create index \"cf_defs_active_entity_tenant_idx\" on \"custom_field_defs\" (\"entity_id\", \"tenant_id\");`);\n this.addSql(`create index \"cf_defs_active_entity_tenant_org_idx\" on \"custom_field_defs\" (\"entity_id\", \"tenant_id\", \"organization_id\");`);\n this.addSql(`create index \"cf_defs_entity_key_idx\" on \"custom_field_defs\" (\"key\");`);\n\n this.addSql(`create table \"custom_field_entity_configs\" (\"id\" uuid not null default gen_random_uuid(), \"entity_id\" text not null, \"organization_id\" uuid null, \"tenant_id\" uuid null, \"config_json\" jsonb null, \"is_active\" bool not null default true, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"custom_field_entity_configs_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"cf_entity_cfgs_entity_org_idx\" on \"custom_field_entity_configs\" (\"entity_id\", \"organization_id\");`);\n this.addSql(`create index \"cf_entity_cfgs_entity_scope_idx\" on \"custom_field_entity_configs\" (\"entity_id\", \"tenant_id\", \"organization_id\");`);\n this.addSql(`create index \"cf_entity_cfgs_entity_tenant_idx\" on \"custom_field_entity_configs\" (\"entity_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"custom_field_values\" (\"id\" uuid not null default gen_random_uuid(), \"entity_id\" text not null, \"record_id\" text not null, \"organization_id\" uuid null, \"tenant_id\" uuid null, \"field_key\" text not null, \"value_text\" text null, \"value_multiline\" text null, \"value_int\" int4 null, \"value_float\" float4 null, \"value_bool\" bool null, \"created_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"custom_field_values_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"cf_values_entity_record_field_idx\" on \"custom_field_values\" (\"field_key\");`);\n this.addSql(`create index \"cf_values_entity_record_tenant_idx\" on \"custom_field_values\" (\"entity_id\", \"record_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"customer_activities\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"activity_type\" text not null, \"subject\" text null, \"body\" text null, \"occurred_at\" timestamptz(6) null, \"author_user_id\" uuid null, \"appearance_icon\" text null, \"appearance_color\" text null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"entity_id\" uuid not null, \"deal_id\" uuid null, constraint \"customer_activities_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"customer_activities_entity_idx\" on \"customer_activities\" (\"entity_id\");`);\n this.addSql(`create index \"customer_activities_entity_occurred_created_idx\" on \"customer_activities\" (\"entity_id\", \"occurred_at\", \"created_at\");`);\n this.addSql(`create index \"customer_activities_org_tenant_idx\" on \"customer_activities\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"customer_addresses\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"name\" text null, \"purpose\" text null, \"address_line1\" text not null, \"address_line2\" text null, \"city\" text null, \"region\" text null, \"postal_code\" text null, \"country\" text null, \"building_number\" text null, \"flat_number\" text null, \"latitude\" float4 null, \"longitude\" float4 null, \"is_primary\" bool not null default false, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"entity_id\" uuid not null, constraint \"customer_addresses_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"customer_addresses_entity_idx\" on \"customer_addresses\" (\"entity_id\");`);\n\n this.addSql(`create table \"customer_comments\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"body\" text not null, \"author_user_id\" uuid null, \"appearance_icon\" text null, \"appearance_color\" text null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, \"entity_id\" uuid not null, \"deal_id\" uuid null, constraint \"customer_comments_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"customer_comments_entity_created_idx\" on \"customer_comments\" (\"entity_id\", \"created_at\");`);\n this.addSql(`create index \"customer_comments_entity_idx\" on \"customer_comments\" (\"entity_id\");`);\n\n this.addSql(`create table \"customer_companies\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"legal_name\" text null, \"brand_name\" text null, \"domain\" text null, \"website_url\" text null, \"industry\" text null, \"size_bucket\" text null, \"annual_revenue\" numeric(16,2) null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"entity_id\" uuid not null, constraint \"customer_companies_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"customer_companies\" add constraint \"customer_companies_entity_id_unique\" unique (\"entity_id\");`);\n this.addSql(`create index \"customer_companies_org_tenant_idx\" on \"customer_companies\" (\"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"idx_customer_companies_entity_id\" on \"customer_companies\" (\"entity_id\");`);\n\n this.addSql(`create table \"customer_deal_companies\" (\"id\" uuid not null default gen_random_uuid(), \"created_at\" timestamptz(6) not null, \"deal_id\" uuid not null, \"company_entity_id\" uuid not null, constraint \"customer_deal_companies_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"customer_deal_companies_company_idx\" on \"customer_deal_companies\" (\"company_entity_id\");`);\n this.addSql(`create index \"customer_deal_companies_deal_idx\" on \"customer_deal_companies\" (\"deal_id\");`);\n this.addSql(`alter table \"customer_deal_companies\" add constraint \"customer_deal_companies_unique\" unique (\"deal_id\", \"company_entity_id\");`);\n\n this.addSql(`create table \"customer_deal_people\" (\"id\" uuid not null default gen_random_uuid(), \"role\" text null, \"created_at\" timestamptz(6) not null, \"deal_id\" uuid not null, \"person_entity_id\" uuid not null, constraint \"customer_deal_people_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"customer_deal_people_deal_idx\" on \"customer_deal_people\" (\"deal_id\");`);\n this.addSql(`create index \"customer_deal_people_person_idx\" on \"customer_deal_people\" (\"person_entity_id\");`);\n this.addSql(`alter table \"customer_deal_people\" add constraint \"customer_deal_people_unique\" unique (\"deal_id\", \"person_entity_id\");`);\n\n this.addSql(`create table \"customer_deals\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"title\" text not null, \"description\" text null, \"status\" text not null default 'open', \"pipeline_stage\" text null, \"value_amount\" numeric(14,2) null, \"value_currency\" text null, \"probability\" int4 null, \"expected_close_at\" timestamptz(6) null, \"owner_user_id\" uuid null, \"source\" text null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"customer_deals_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"customer_deals_org_tenant_idx\" on \"customer_deals\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"customer_dictionary_entries\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"kind\" text not null, \"value\" text not null, \"normalized_value\" text not null, \"label\" text not null, \"color\" text null, \"icon\" text null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"customer_dictionary_entries_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"customer_dictionary_entries_scope_idx\" on \"customer_dictionary_entries\" (\"organization_id\", \"tenant_id\", \"kind\");`);\n this.addSql(`alter table \"customer_dictionary_entries\" add constraint \"customer_dictionary_entries_unique\" unique (\"organization_id\", \"tenant_id\", \"kind\", \"normalized_value\");`);\n\n this.addSql(`create table \"customer_entities\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"kind\" text not null, \"display_name\" text not null, \"description\" text null, \"owner_user_id\" uuid null, \"primary_email\" text null, \"primary_phone\" text null, \"status\" text null, \"lifecycle_stage\" text null, \"source\" text null, \"next_interaction_at\" timestamptz(6) null, \"next_interaction_name\" text null, \"next_interaction_ref_id\" text null, \"next_interaction_icon\" text null, \"next_interaction_color\" text null, \"is_active\" bool not null default true, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"customer_entities_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"customer_entities_org_tenant_kind_idx\" on \"customer_entities\" (\"organization_id\", \"tenant_id\", \"kind\");`);\n this.addSql(`create index \"idx_ce_tenant_company_id\" on \"customer_entities\" (\"tenant_id\", \"id\");`);\n this.addSql(`create index \"idx_ce_tenant_org_company_id\" on \"customer_entities\" (\"tenant_id\", \"organization_id\", \"id\");`);\n this.addSql(`create index \"idx_ce_tenant_org_person_id\" on \"customer_entities\" (\"tenant_id\", \"organization_id\", \"id\");`);\n this.addSql(`create index \"idx_ce_tenant_person_id\" on \"customer_entities\" (\"tenant_id\", \"id\");`);\n\n this.addSql(`create table \"customer_people\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"first_name\" text null, \"last_name\" text null, \"preferred_name\" text null, \"job_title\" text null, \"department\" text null, \"seniority\" text null, \"timezone\" text null, \"linked_in_url\" text null, \"twitter_url\" text null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"entity_id\" uuid not null, \"company_entity_id\" uuid null, constraint \"customer_people_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"customer_people\" add constraint \"customer_people_entity_id_unique\" unique (\"entity_id\");`);\n this.addSql(`create index \"customer_people_org_tenant_idx\" on \"customer_people\" (\"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"idx_customer_people_entity_id\" on \"customer_people\" (\"entity_id\");`);\n\n this.addSql(`create table \"customer_settings\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"address_format\" text not null default 'line_first', \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"customer_settings_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"customer_settings\" add constraint \"customer_settings_scope_unique\" unique (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"customer_tag_assignments\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"created_at\" timestamptz(6) not null, \"tag_id\" uuid not null, \"entity_id\" uuid not null, constraint \"customer_tag_assignments_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"customer_tag_assignments_entity_idx\" on \"customer_tag_assignments\" (\"entity_id\");`);\n this.addSql(`alter table \"customer_tag_assignments\" add constraint \"customer_tag_assignments_unique\" unique (\"tag_id\", \"entity_id\");`);\n\n this.addSql(`create table \"customer_tags\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"slug\" text not null, \"label\" text not null, \"color\" text null, \"description\" text null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"customer_tags_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"customer_tags\" add constraint \"customer_tags_org_slug_unique\" unique (\"organization_id\", \"tenant_id\", \"slug\");`);\n this.addSql(`create index \"customer_tags_org_tenant_idx\" on \"customer_tags\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"customer_todo_links\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"todo_id\" uuid not null, \"todo_source\" text not null default 'example:todo', \"created_at\" timestamptz(6) not null, \"created_by_user_id\" uuid null, \"entity_id\" uuid not null, constraint \"customer_todo_links_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"customer_todo_links_entity_created_idx\" on \"customer_todo_links\" (\"entity_id\", \"created_at\");`);\n this.addSql(`create index \"customer_todo_links_entity_idx\" on \"customer_todo_links\" (\"entity_id\");`);\n this.addSql(`alter table \"customer_todo_links\" add constraint \"customer_todo_links_unique\" unique (\"entity_id\", \"todo_id\", \"todo_source\");`);\n\n this.addSql(`create table \"dashboard_layouts\" (\"id\" uuid not null default gen_random_uuid(), \"user_id\" uuid not null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"layout_json\" jsonb not null default '[]', \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, constraint \"dashboard_layouts_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"dashboard_layouts\" add constraint \"dashboard_layouts_user_id_tenant_id_organization_id_unique\" unique (\"user_id\", \"tenant_id\", \"organization_id\");`);\n\n this.addSql(`create table \"dashboard_role_widgets\" (\"id\" uuid not null default gen_random_uuid(), \"role_id\" uuid not null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"widget_ids_json\" jsonb not null default '[]', \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, constraint \"dashboard_role_widgets_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"dashboard_role_widgets\" add constraint \"dashboard_role_widgets_role_id_tenant_id_organization_id_unique\" unique (\"role_id\", \"tenant_id\", \"organization_id\");`);\n\n this.addSql(`create table \"dashboard_user_widgets\" (\"id\" uuid not null default gen_random_uuid(), \"user_id\" uuid not null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"mode\" text not null default 'inherit', \"widget_ids_json\" jsonb not null default '[]', \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, constraint \"dashboard_user_widgets_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"dashboard_user_widgets\" add constraint \"dashboard_user_widgets_user_id_tenant_id_organization_id_unique\" unique (\"user_id\", \"tenant_id\", \"organization_id\");`);\n\n this.addSql(`create table \"dictionaries\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"key\" text not null, \"name\" text not null, \"description\" text null, \"is_system\" bool not null default false, \"is_active\" bool not null default true, \"manager_visibility\" text not null default 'default', \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"dictionaries_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"dictionaries\" add constraint \"dictionaries_scope_key_unique\" unique (\"organization_id\", \"tenant_id\", \"key\");`);\n\n this.addSql(`create table \"dictionary_entries\" (\"id\" uuid not null default gen_random_uuid(), \"dictionary_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"value\" text not null, \"normalized_value\" text not null, \"label\" text not null, \"color\" text null, \"icon\" text null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"dictionary_entries_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"dictionary_entries_scope_idx\" on \"dictionary_entries\" (\"dictionary_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`alter table \"dictionary_entries\" add constraint \"dictionary_entries_unique\" unique (\"dictionary_id\", \"organization_id\", \"tenant_id\", \"normalized_value\");`);\n\n this.addSql(`create table \"entity_index_coverage\" (\"id\" uuid not null default gen_random_uuid(), \"entity_type\" text not null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"with_deleted\" bool not null default false, \"base_count\" int4 not null default 0, \"indexed_count\" int4 not null default 0, \"vector_indexed_count\" int4 not null default 0, \"refreshed_at\" timestamptz(6) not null, constraint \"entity_index_coverage_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"entity_index_coverage\" add constraint \"entity_index_coverage_scope_idx\" unique (\"entity_type\", \"tenant_id\", \"organization_id\", \"with_deleted\");`);\n\n this.addSql(`create table \"entity_index_jobs\" (\"id\" uuid not null default gen_random_uuid(), \"entity_type\" text not null, \"organization_id\" uuid null, \"tenant_id\" uuid null, \"partition_index\" int4 null, \"partition_count\" int4 null, \"processed_count\" int4 null, \"total_count\" int4 null, \"heartbeat_at\" timestamptz(6) null, \"status\" text not null, \"started_at\" timestamptz(6) not null, \"finished_at\" timestamptz(6) null, constraint \"entity_index_jobs_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"entity_index_jobs_org_idx\" on \"entity_index_jobs\" (\"organization_id\");`);\n this.addSql(`create index \"entity_index_jobs_type_idx\" on \"entity_index_jobs\" (\"entity_type\");`);\n\n this.addSql(`create table \"entity_indexes\" (\"id\" uuid not null default gen_random_uuid(), \"entity_type\" text not null, \"entity_id\" text not null, \"organization_id\" uuid null, \"tenant_id\" uuid null, \"doc\" jsonb not null, \"embedding\" jsonb null, \"index_version\" int4 not null default 1, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"entity_indexes_pkey\" primary key (\"id\"));`);\n this.addSql(`CREATE INDEX entity_indexes_customer_company_profile_doc_idx ON public.entity_indexes USING btree (entity_id, organization_id, tenant_id) INCLUDE (doc) WHERE ((deleted_at IS NULL) AND (entity_type = 'customers:customer_company_profile'::text) AND (organization_id IS NOT NULL) AND (tenant_id IS NOT NULL));`);\n this.addSql(`CREATE INDEX entity_indexes_customer_company_profile_tenant_doc_idx ON public.entity_indexes USING btree (tenant_id, entity_id) INCLUDE (doc) WHERE ((deleted_at IS NULL) AND (entity_type = 'customers:customer_company_profile'::text) AND (organization_id IS NULL) AND (tenant_id IS NOT NULL));`);\n this.addSql(`CREATE INDEX entity_indexes_customer_entity_doc_idx ON public.entity_indexes USING btree (entity_id, organization_id, tenant_id) INCLUDE (doc) WHERE ((deleted_at IS NULL) AND (entity_type = 'customers:customer_entity'::text) AND (organization_id IS NOT NULL) AND (tenant_id IS NOT NULL));`);\n this.addSql(`CREATE INDEX entity_indexes_customer_entity_tenant_doc_idx ON public.entity_indexes USING btree (tenant_id, entity_id) INCLUDE (doc) WHERE ((deleted_at IS NULL) AND (entity_type = 'customers:customer_entity'::text) AND (organization_id IS NULL) AND (tenant_id IS NOT NULL));`);\n this.addSql(`CREATE INDEX entity_indexes_customer_person_profile_doc_idx ON public.entity_indexes USING btree (entity_id, organization_id, tenant_id) INCLUDE (doc) WHERE ((deleted_at IS NULL) AND (entity_type = 'customers:customer_person_profile'::text) AND (organization_id IS NOT NULL) AND (tenant_id IS NOT NULL));`);\n this.addSql(`CREATE INDEX entity_indexes_customer_person_profile_tenant_doc_idx ON public.entity_indexes USING btree (tenant_id, entity_id) INCLUDE (doc) WHERE ((deleted_at IS NULL) AND (entity_type = 'customers:customer_person_profile'::text) AND (organization_id IS NULL) AND (tenant_id IS NOT NULL));`);\n this.addSql(`create index \"entity_indexes_entity_idx\" on \"entity_indexes\" (\"entity_id\");`);\n this.addSql(`create index \"entity_indexes_org_idx\" on \"entity_indexes\" (\"organization_id\");`);\n this.addSql(`create index \"entity_indexes_type_idx\" on \"entity_indexes\" (\"entity_type\");`);\n this.addSql(`create index \"entity_indexes_type_tenant_idx\" on \"entity_indexes\" (\"entity_type\", \"tenant_id\");`);\n\n this.addSql(`create table \"example_items\" (\"id\" uuid not null default gen_random_uuid(), \"title\" text not null, \"created_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"example_items_pkey\" primary key (\"id\"));`);\n\n this.addSql(`create table \"indexer_error_logs\" (\"id\" uuid not null default gen_random_uuid(), \"source\" text not null, \"handler\" text not null, \"entity_type\" text null, \"record_id\" text null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"payload\" jsonb null, \"message\" text not null, \"stack\" text null, \"occurred_at\" timestamptz(6) not null, constraint \"indexer_error_logs_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"indexer_error_logs_occurred_idx\" on \"indexer_error_logs\" (\"occurred_at\");`);\n this.addSql(`create index \"indexer_error_logs_source_idx\" on \"indexer_error_logs\" (\"source\");`);\n\n this.addSql(`create table \"indexer_status_logs\" (\"id\" uuid not null default gen_random_uuid(), \"source\" text not null, \"handler\" text not null, \"level\" text not null default 'info', \"entity_type\" text null, \"record_id\" text null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"message\" text not null, \"details\" jsonb null, \"occurred_at\" timestamptz(6) not null default now(), constraint \"indexer_status_logs_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"indexer_status_logs_occurred_idx\" on \"indexer_status_logs\" (\"occurred_at\");`);\n this.addSql(`create index \"indexer_status_logs_source_idx\" on \"indexer_status_logs\" (\"source\");`);\n\n this.addSql(`create table \"mikro_orm_migrations_api_keys\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_attachments\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_audit_logs\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_auth\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_business_rules\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_catalog\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_configs\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_customers\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_dashboards\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_dictionaries\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_directory\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_entities\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_example\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_onboarding\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_perspectives\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_query_index\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"mikro_orm_migrations_sales\" (\"id\" serial primary key, \"name\" varchar(255) null, \"executed_at\" timestamptz(6) null default CURRENT_TIMESTAMP);`);\n\n this.addSql(`create table \"module_configs\" (\"id\" uuid not null default gen_random_uuid(), \"module_id\" text not null, \"name\" text not null, \"value_json\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"module_configs_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"module_configs_module_idx\" on \"module_configs\" (\"module_id\");`);\n this.addSql(`alter table \"module_configs\" add constraint \"module_configs_module_name_unique\" unique (\"module_id\", \"name\");`);\n\n this.addSql(`create table \"onboarding_requests\" (\"id\" uuid not null default gen_random_uuid(), \"email\" text not null, \"token_hash\" text not null, \"status\" text not null default 'pending', \"first_name\" text not null, \"last_name\" text not null, \"organization_name\" text not null, \"locale\" text null, \"terms_accepted\" bool not null default false, \"expires_at\" timestamptz(6) not null, \"completed_at\" timestamptz(6) null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"user_id\" uuid null, \"last_email_sent_at\" timestamptz(6) null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, \"password_hash\" text null, constraint \"onboarding_requests_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"onboarding_requests\" add constraint \"onboarding_requests_email_unique\" unique (\"email\");`);\n this.addSql(`alter table \"onboarding_requests\" add constraint \"onboarding_requests_token_hash_unique\" unique (\"token_hash\");`);\n\n this.addSql(`create table \"organizations\" (\"id\" uuid not null default gen_random_uuid(), \"tenant_id\" uuid not null, \"name\" text not null, \"is_active\" bool not null default true, \"parent_id\" uuid null, \"root_id\" uuid null, \"tree_path\" text null, \"depth\" int4 not null default 0, \"ancestor_ids\" jsonb not null default '[]', \"child_ids\" jsonb not null default '[]', \"descendant_ids\" jsonb not null default '[]', \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"organizations_pkey\" primary key (\"id\"));`);\n\n this.addSql(`create table \"password_resets\" (\"id\" uuid not null default gen_random_uuid(), \"user_id\" uuid not null, \"token\" text not null, \"expires_at\" timestamptz(6) not null, \"used_at\" timestamptz(6) null, \"created_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"password_resets_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"password_resets\" add constraint \"password_resets_token_unique\" unique (\"token\");`);\n\n this.addSql(`create table \"perspectives\" (\"id\" uuid not null default gen_random_uuid(), \"user_id\" uuid not null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"table_id\" text not null, \"name\" text not null, \"settings_json\" jsonb not null, \"is_default\" bool not null default false, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, constraint \"perspectives_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"perspectives\" add constraint \"perspectives_user_id_tenant_id_organization_id_ta_2d725_unique\" unique (\"user_id\", \"tenant_id\", \"organization_id\", \"table_id\", \"name\");`);\n this.addSql(`create index \"perspectives_user_scope_idx\" on \"perspectives\" (\"user_id\", \"tenant_id\", \"organization_id\", \"table_id\");`);\n\n this.addSql(`create table \"role_acls\" (\"id\" uuid not null default gen_random_uuid(), \"role_id\" uuid not null, \"tenant_id\" uuid not null, \"features_json\" jsonb null, \"is_super_admin\" bool not null default false, \"organizations_json\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, constraint \"role_acls_pkey\" primary key (\"id\"));`);\n\n this.addSql(`create table \"role_perspectives\" (\"id\" uuid not null default gen_random_uuid(), \"role_id\" uuid not null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"table_id\" text not null, \"name\" text not null, \"settings_json\" jsonb not null, \"is_default\" bool not null default false, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, constraint \"role_perspectives_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"role_perspectives\" add constraint \"role_perspectives_role_id_tenant_id_organization__c5467_unique\" unique (\"role_id\", \"tenant_id\", \"organization_id\", \"table_id\", \"name\");`);\n this.addSql(`create index \"role_perspectives_role_scope_idx\" on \"role_perspectives\" (\"role_id\", \"tenant_id\", \"organization_id\", \"table_id\");`);\n\n this.addSql(`create table \"role_sidebar_preferences\" (\"id\" uuid not null default gen_random_uuid(), \"role_id\" uuid not null, \"tenant_id\" uuid null, \"locale\" text not null, \"settings_json\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, constraint \"role_sidebar_preferences_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"role_sidebar_preferences\" add constraint \"role_sidebar_preferences_role_id_tenant_id_locale_unique\" unique (\"role_id\", \"tenant_id\", \"locale\");`);\n\n this.addSql(`create table \"roles\" (\"id\" uuid not null default gen_random_uuid(), \"name\" text not null, \"tenant_id\" uuid null, \"created_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"roles_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"roles\" add constraint \"roles_tenant_id_name_unique\" unique (\"tenant_id\", \"name\");`);\n\n this.addSql(`create table \"rule_execution_logs\" (\"id\" bigserial primary key, \"rule_id\" uuid not null, \"entity_id\" uuid not null, \"entity_type\" varchar(50) not null, \"execution_result\" varchar(20) not null, \"input_context\" jsonb null, \"output_context\" jsonb null, \"error_message\" text null, \"execution_time_ms\" int4 not null, \"executed_at\" timestamptz(6) not null, \"tenant_id\" uuid not null, \"organization_id\" uuid null, \"executed_by\" varchar(50) null);`);\n this.addSql(`create index \"rule_execution_logs_entity_idx\" on \"rule_execution_logs\" (\"entity_type\", \"entity_id\");`);\n this.addSql(`create index \"rule_execution_logs_result_idx\" on \"rule_execution_logs\" (\"execution_result\", \"executed_at\");`);\n this.addSql(`create index \"rule_execution_logs_rule_idx\" on \"rule_execution_logs\" (\"rule_id\");`);\n this.addSql(`create index \"rule_execution_logs_tenant_org_idx\" on \"rule_execution_logs\" (\"tenant_id\", \"organization_id\");`);\n\n this.addSql(`create table \"rule_set_members\" (\"id\" uuid not null default gen_random_uuid(), \"rule_set_id\" uuid not null, \"rule_id\" uuid not null, \"sequence\" int4 not null default 0, \"enabled\" bool not null default true, \"tenant_id\" uuid not null, \"organization_id\" uuid not null, \"created_at\" timestamptz(6) not null, constraint \"rule_set_members_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"rule_set_members_rule_idx\" on \"rule_set_members\" (\"rule_id\");`);\n this.addSql(`alter table \"rule_set_members\" add constraint \"rule_set_members_rule_set_id_rule_id_unique\" unique (\"rule_set_id\", \"rule_id\");`);\n this.addSql(`create index \"rule_set_members_set_idx\" on \"rule_set_members\" (\"rule_set_id\", \"sequence\");`);\n this.addSql(`create index \"rule_set_members_tenant_org_idx\" on \"rule_set_members\" (\"tenant_id\", \"organization_id\");`);\n\n this.addSql(`create table \"rule_sets\" (\"id\" uuid not null default gen_random_uuid(), \"set_id\" varchar(50) not null, \"set_name\" varchar(200) not null, \"description\" text null, \"enabled\" bool not null default true, \"tenant_id\" uuid not null, \"organization_id\" uuid not null, \"created_by\" varchar(50) null, \"updated_by\" varchar(50) null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"rule_sets_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"rule_sets_enabled_idx\" on \"rule_sets\" (\"enabled\");`);\n this.addSql(`alter table \"rule_sets\" add constraint \"rule_sets_set_id_tenant_id_unique\" unique (\"set_id\", \"tenant_id\");`);\n this.addSql(`create index \"rule_sets_tenant_org_idx\" on \"rule_sets\" (\"tenant_id\", \"organization_id\");`);\n\n this.addSql(`create table \"sales_channels\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"name\" text not null, \"code\" text null, \"description\" text null, \"status_entry_id\" uuid null, \"status\" text null, \"website_url\" text null, \"contact_email\" text null, \"contact_phone\" text null, \"address_line1\" text null, \"address_line2\" text null, \"city\" text null, \"region\" text null, \"postal_code\" text null, \"country\" text null, \"latitude\" numeric(10,6) null, \"longitude\" numeric(10,6) null, \"is_active\" bool not null default true, \"metadata\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"sales_channels_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"sales_channels\" add constraint \"sales_channels_code_unique\" unique (\"organization_id\", \"tenant_id\", \"code\");`);\n this.addSql(`create index \"sales_channels_org_tenant_idx\" on \"sales_channels\" (\"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"sales_channels_status_idx\" on \"sales_channels\" (\"organization_id\", \"tenant_id\", \"status\");`);\n\n this.addSql(`create table \"sales_credit_memo_lines\" (\"id\" uuid not null default gen_random_uuid(), \"credit_memo_id\" uuid not null, \"order_line_id\" uuid null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"line_number\" int4 not null default 0, \"description\" text null, \"quantity\" numeric(18,4) not null default '0', \"quantity_unit\" text null, \"currency_code\" text not null, \"unit_price_net\" numeric(18,4) not null default '0', \"unit_price_gross\" numeric(18,4) not null default '0', \"tax_rate\" numeric(7,4) not null default '0', \"tax_amount\" numeric(18,4) not null default '0', \"total_net_amount\" numeric(18,4) not null default '0', \"total_gross_amount\" numeric(18,4) not null default '0', \"metadata\" jsonb null, constraint \"sales_credit_memo_lines_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_credit_memo_lines_scope_idx\" on \"sales_credit_memo_lines\" (\"credit_memo_id\", \"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"sales_credit_memos\" (\"id\" uuid not null default gen_random_uuid(), \"order_id\" uuid null, \"invoice_id\" uuid null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"credit_memo_number\" text not null, \"status_entry_id\" uuid null, \"status\" text null, \"issue_date\" timestamptz(6) null, \"currency_code\" text not null, \"subtotal_net_amount\" numeric(18,4) not null default '0', \"subtotal_gross_amount\" numeric(18,4) not null default '0', \"tax_total_amount\" numeric(18,4) not null default '0', \"grand_total_net_amount\" numeric(18,4) not null default '0', \"grand_total_gross_amount\" numeric(18,4) not null default '0', \"metadata\" jsonb null, \"custom_field_set_id\" uuid null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"sales_credit_memos_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"sales_credit_memos\" add constraint \"sales_credit_memos_number_unique\" unique (\"organization_id\", \"tenant_id\", \"credit_memo_number\");`);\n this.addSql(`create index \"sales_credit_memos_scope_idx\" on \"sales_credit_memos\" (\"order_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"sales_credit_memos_status_idx\" on \"sales_credit_memos\" (\"organization_id\", \"tenant_id\", \"status\");`);\n\n this.addSql(`create table \"sales_delivery_windows\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"name\" text not null, \"code\" text not null, \"description\" text null, \"lead_time_days\" int4 null, \"cutoff_time\" text null, \"timezone\" text null, \"is_active\" bool not null default true, \"metadata\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"sales_delivery_windows_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"sales_delivery_windows\" add constraint \"sales_delivery_windows_code_unique\" unique (\"organization_id\", \"tenant_id\", \"code\");`);\n this.addSql(`create index \"sales_delivery_windows_scope_idx\" on \"sales_delivery_windows\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"sales_invoice_lines\" (\"id\" uuid not null default gen_random_uuid(), \"invoice_id\" uuid not null, \"order_line_id\" uuid null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"line_number\" int4 not null default 0, \"kind\" text not null default 'product', \"description\" text null, \"quantity\" numeric(18,4) not null default '0', \"quantity_unit\" text null, \"currency_code\" text not null, \"unit_price_net\" numeric(18,4) not null default '0', \"unit_price_gross\" numeric(18,4) not null default '0', \"discount_amount\" numeric(18,4) not null default '0', \"discount_percent\" numeric(7,4) not null default '0', \"tax_rate\" numeric(7,4) not null default '0', \"tax_amount\" numeric(18,4) not null default '0', \"total_net_amount\" numeric(18,4) not null default '0', \"total_gross_amount\" numeric(18,4) not null default '0', \"metadata\" jsonb null, constraint \"sales_invoice_lines_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_invoice_lines_scope_idx\" on \"sales_invoice_lines\" (\"invoice_id\", \"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"sales_invoices\" (\"id\" uuid not null default gen_random_uuid(), \"order_id\" uuid null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"invoice_number\" text not null, \"status_entry_id\" uuid null, \"status\" text null, \"issue_date\" timestamptz(6) null, \"due_date\" timestamptz(6) null, \"currency_code\" text not null, \"subtotal_net_amount\" numeric(18,4) not null default '0', \"subtotal_gross_amount\" numeric(18,4) not null default '0', \"discount_total_amount\" numeric(18,4) not null default '0', \"tax_total_amount\" numeric(18,4) not null default '0', \"grand_total_net_amount\" numeric(18,4) not null default '0', \"grand_total_gross_amount\" numeric(18,4) not null default '0', \"paid_total_amount\" numeric(18,4) not null default '0', \"outstanding_amount\" numeric(18,4) not null default '0', \"metadata\" jsonb null, \"custom_field_set_id\" uuid null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"sales_invoices_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"sales_invoices\" add constraint \"sales_invoices_number_unique\" unique (\"organization_id\", \"tenant_id\", \"invoice_number\");`);\n this.addSql(`create index \"sales_invoices_scope_idx\" on \"sales_invoices\" (\"order_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"sales_invoices_status_idx\" on \"sales_invoices\" (\"organization_id\", \"tenant_id\", \"status\");`);\n\n this.addSql(`create table \"sales_notes\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"context_type\" text not null, \"context_id\" uuid not null, \"order_id\" uuid null, \"quote_id\" uuid null, \"author_user_id\" uuid null, \"body\" text not null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"sales_notes_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_notes_scope_idx\" on \"sales_notes\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"sales_order_adjustments\" (\"id\" uuid not null default gen_random_uuid(), \"order_id\" uuid not null, \"order_line_id\" uuid null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"scope\" text not null default 'order', \"kind\" text not null default 'custom', \"code\" text null, \"label\" text null, \"calculator_key\" text null, \"promotion_id\" uuid null, \"rate\" numeric(7,4) not null default '0', \"amount_net\" numeric(18,4) not null default '0', \"amount_gross\" numeric(18,4) not null default '0', \"currency_code\" text null, \"metadata\" jsonb null, \"position\" int4 not null default 0, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"sales_order_adjustments_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_order_adjustments_scope_idx\" on \"sales_order_adjustments\" (\"order_id\", \"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"sales_order_lines\" (\"id\" uuid not null default gen_random_uuid(), \"order_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"line_number\" int4 not null default 0, \"kind\" text not null default 'product', \"status_entry_id\" uuid null, \"status\" text null, \"product_id\" uuid null, \"product_variant_id\" uuid null, \"catalog_snapshot\" jsonb null, \"name\" text null, \"description\" text null, \"comment\" text null, \"quantity\" numeric(18,4) not null default '0', \"quantity_unit\" text null, \"reserved_quantity\" numeric(18,4) not null default '0', \"fulfilled_quantity\" numeric(18,4) not null default '0', \"invoiced_quantity\" numeric(18,4) not null default '0', \"returned_quantity\" numeric(18,4) not null default '0', \"currency_code\" text not null, \"unit_price_net\" numeric(18,4) not null default '0', \"unit_price_gross\" numeric(18,4) not null default '0', \"discount_amount\" numeric(18,4) not null default '0', \"discount_percent\" numeric(7,4) not null default '0', \"tax_rate\" numeric(7,4) not null default '0', \"tax_amount\" numeric(18,4) not null default '0', \"total_net_amount\" numeric(18,4) not null default '0', \"total_gross_amount\" numeric(18,4) not null default '0', \"configuration\" jsonb null, \"promotion_code\" text null, \"promotion_snapshot\" jsonb null, \"metadata\" jsonb null, \"custom_field_set_id\" uuid null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"sales_order_lines_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_order_lines_scope_idx\" on \"sales_order_lines\" (\"order_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"sales_order_lines_status_idx\" on \"sales_order_lines\" (\"organization_id\", \"tenant_id\", \"status\");`);\n\n this.addSql(`create table \"sales_orders\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"order_number\" text not null, \"external_reference\" text null, \"customer_reference\" text null, \"customer_entity_id\" uuid null, \"customer_contact_id\" uuid null, \"billing_address_id\" uuid null, \"shipping_address_id\" uuid null, \"currency_code\" text not null, \"exchange_rate\" numeric(18,8) null, \"status_entry_id\" uuid null, \"status\" text null, \"fulfillment_status_entry_id\" uuid null, \"fulfillment_status\" text null, \"payment_status_entry_id\" uuid null, \"payment_status\" text null, \"tax_strategy_key\" text null, \"discount_strategy_key\" text null, \"shipping_method_snapshot\" jsonb null, \"payment_method_snapshot\" jsonb null, \"placed_at\" timestamptz(6) null, \"expected_delivery_at\" timestamptz(6) null, \"due_at\" timestamptz(6) null, \"comments\" text null, \"internal_notes\" text null, \"subtotal_net_amount\" numeric(18,4) not null default '0', \"subtotal_gross_amount\" numeric(18,4) not null default '0', \"discount_total_amount\" numeric(18,4) not null default '0', \"tax_total_amount\" numeric(18,4) not null default '0', \"shipping_net_amount\" numeric(18,4) not null default '0', \"shipping_gross_amount\" numeric(18,4) not null default '0', \"surcharge_total_amount\" numeric(18,4) not null default '0', \"grand_total_net_amount\" numeric(18,4) not null default '0', \"grand_total_gross_amount\" numeric(18,4) not null default '0', \"paid_total_amount\" numeric(18,4) not null default '0', \"refunded_total_amount\" numeric(18,4) not null default '0', \"outstanding_amount\" numeric(18,4) not null default '0', \"line_item_count\" int4 not null default 0, \"metadata\" jsonb null, \"custom_field_set_id\" uuid null, \"channel_id\" uuid null, \"channel_ref_id\" uuid null, \"shipping_method_id\" uuid null, \"shipping_method_ref_id\" uuid null, \"delivery_window_id\" uuid null, \"delivery_window_ref_id\" uuid null, \"payment_method_id\" uuid null, \"payment_method_ref_id\" uuid null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"sales_orders_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_orders_customer_idx\" on \"sales_orders\" (\"customer_entity_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"sales_orders_fulfillment_status_idx\" on \"sales_orders\" (\"organization_id\", \"tenant_id\", \"fulfillment_status\");`);\n this.addSql(`alter table \"sales_orders\" add constraint \"sales_orders_number_unique\" unique (\"organization_id\", \"tenant_id\", \"order_number\");`);\n this.addSql(`create index \"sales_orders_org_tenant_idx\" on \"sales_orders\" (\"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"sales_orders_payment_status_idx\" on \"sales_orders\" (\"organization_id\", \"tenant_id\", \"payment_status\");`);\n this.addSql(`create index \"sales_orders_status_idx\" on \"sales_orders\" (\"organization_id\", \"tenant_id\", \"status\");`);\n\n this.addSql(`create table \"sales_payment_allocations\" (\"id\" uuid not null default gen_random_uuid(), \"payment_id\" uuid not null, \"order_id\" uuid null, \"invoice_id\" uuid null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"amount\" numeric(18,4) not null default '0', \"currency_code\" text not null, \"metadata\" jsonb null, constraint \"sales_payment_allocations_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_payment_allocations_scope_idx\" on \"sales_payment_allocations\" (\"payment_id\", \"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"sales_payment_methods\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"name\" text not null, \"code\" text not null, \"description\" text null, \"provider_key\" text null, \"terms\" text null, \"is_active\" bool not null default true, \"metadata\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"sales_payment_methods_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"sales_payment_methods\" add constraint \"sales_payment_methods_code_unique\" unique (\"organization_id\", \"tenant_id\", \"code\");`);\n this.addSql(`create index \"sales_payment_methods_scope_idx\" on \"sales_payment_methods\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"sales_payments\" (\"id\" uuid not null default gen_random_uuid(), \"order_id\" uuid null, \"payment_method_id\" uuid null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"payment_reference\" text null, \"status_entry_id\" uuid null, \"status\" text null, \"amount\" numeric(18,4) not null default '0', \"currency_code\" text not null, \"captured_amount\" numeric(18,4) not null default '0', \"refunded_amount\" numeric(18,4) not null default '0', \"received_at\" timestamptz(6) null, \"captured_at\" timestamptz(6) null, \"metadata\" jsonb null, \"custom_field_set_id\" uuid null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"sales_payments_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_payments_scope_idx\" on \"sales_payments\" (\"order_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"sales_payments_status_idx\" on \"sales_payments\" (\"organization_id\", \"tenant_id\", \"status\");`);\n\n this.addSql(`create table \"sales_quote_adjustments\" (\"id\" uuid not null default gen_random_uuid(), \"quote_id\" uuid not null, \"quote_line_id\" uuid null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"scope\" text not null default 'order', \"kind\" text not null default 'custom', \"code\" text null, \"label\" text null, \"calculator_key\" text null, \"promotion_id\" uuid null, \"rate\" numeric(7,4) not null default '0', \"amount_net\" numeric(18,4) not null default '0', \"amount_gross\" numeric(18,4) not null default '0', \"currency_code\" text null, \"metadata\" jsonb null, \"position\" int4 not null default 0, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, constraint \"sales_quote_adjustments_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_quote_adjustments_scope_idx\" on \"sales_quote_adjustments\" (\"quote_id\", \"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"sales_quote_lines\" (\"id\" uuid not null default gen_random_uuid(), \"quote_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"line_number\" int4 not null default 0, \"kind\" text not null default 'product', \"status_entry_id\" uuid null, \"status\" text null, \"product_id\" uuid null, \"product_variant_id\" uuid null, \"catalog_snapshot\" jsonb null, \"name\" text null, \"description\" text null, \"comment\" text null, \"quantity\" numeric(18,4) not null default '0', \"quantity_unit\" text null, \"currency_code\" text not null, \"unit_price_net\" numeric(18,4) not null default '0', \"unit_price_gross\" numeric(18,4) not null default '0', \"discount_amount\" numeric(18,4) not null default '0', \"discount_percent\" numeric(7,4) not null default '0', \"tax_rate\" numeric(7,4) not null default '0', \"tax_amount\" numeric(18,4) not null default '0', \"total_net_amount\" numeric(18,4) not null default '0', \"total_gross_amount\" numeric(18,4) not null default '0', \"configuration\" jsonb null, \"promotion_code\" text null, \"promotion_snapshot\" jsonb null, \"metadata\" jsonb null, \"custom_field_set_id\" uuid null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"sales_quote_lines_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_quote_lines_scope_idx\" on \"sales_quote_lines\" (\"quote_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"sales_quote_lines_status_idx\" on \"sales_quote_lines\" (\"organization_id\", \"tenant_id\", \"status\");`);\n\n this.addSql(`create table \"sales_quotes\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"quote_number\" text not null, \"status_entry_id\" uuid null, \"status\" text null, \"customer_entity_id\" uuid null, \"customer_contact_id\" uuid null, \"currency_code\" text not null, \"valid_from\" timestamptz(6) null, \"valid_until\" timestamptz(6) null, \"comments\" text null, \"subtotal_net_amount\" numeric(18,4) not null default '0', \"subtotal_gross_amount\" numeric(18,4) not null default '0', \"discount_total_amount\" numeric(18,4) not null default '0', \"tax_total_amount\" numeric(18,4) not null default '0', \"grand_total_net_amount\" numeric(18,4) not null default '0', \"grand_total_gross_amount\" numeric(18,4) not null default '0', \"line_item_count\" int4 not null default 0, \"metadata\" jsonb null, \"custom_field_set_id\" uuid null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, \"converted_order_id\" uuid null, constraint \"sales_quotes_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"sales_quotes\" add constraint \"sales_quotes_number_unique\" unique (\"organization_id\", \"tenant_id\", \"quote_number\");`);\n this.addSql(`create index \"sales_quotes_scope_idx\" on \"sales_quotes\" (\"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"sales_quotes_status_idx\" on \"sales_quotes\" (\"organization_id\", \"tenant_id\", \"status\");`);\n\n this.addSql(`create table \"sales_shipment_items\" (\"id\" uuid not null default gen_random_uuid(), \"shipment_id\" uuid not null, \"order_line_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"quantity\" numeric(18,4) not null default '0', \"metadata\" jsonb null, constraint \"sales_shipment_items_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_shipment_items_scope_idx\" on \"sales_shipment_items\" (\"shipment_id\", \"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"sales_shipments\" (\"id\" uuid not null default gen_random_uuid(), \"order_id\" uuid not null, \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"shipment_number\" text null, \"shipping_method_id\" uuid null, \"status_entry_id\" uuid null, \"status\" text null, \"carrier_name\" text null, \"tracking_numbers\" jsonb null, \"shipped_at\" timestamptz(6) null, \"delivered_at\" timestamptz(6) null, \"weight_value\" numeric(16,4) null, \"weight_unit\" text null, \"declared_value_net\" numeric(18,4) null, \"declared_value_gross\" numeric(18,4) null, \"currency_code\" text null, \"notes\" text null, \"metadata\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"sales_shipments_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"sales_shipments_scope_idx\" on \"sales_shipments\" (\"order_id\", \"organization_id\", \"tenant_id\");`);\n this.addSql(`create index \"sales_shipments_status_idx\" on \"sales_shipments\" (\"organization_id\", \"tenant_id\", \"status\");`);\n\n this.addSql(`create table \"sales_shipping_methods\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"name\" text not null, \"code\" text not null, \"description\" text null, \"carrier_code\" text null, \"service_level\" text null, \"estimated_transit_days\" int4 null, \"base_rate_net\" numeric(16,4) not null default '0', \"base_rate_gross\" numeric(16,4) not null default '0', \"currency_code\" text null, \"is_active\" bool not null default true, \"metadata\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"sales_shipping_methods_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"sales_shipping_methods\" add constraint \"sales_shipping_methods_code_unique\" unique (\"organization_id\", \"tenant_id\", \"code\");`);\n this.addSql(`create index \"sales_shipping_methods_scope_idx\" on \"sales_shipping_methods\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"sales_tax_rates\" (\"id\" uuid not null default gen_random_uuid(), \"organization_id\" uuid not null, \"tenant_id\" uuid not null, \"name\" text not null, \"code\" text not null, \"rate\" numeric(7,4) not null, \"country_code\" text null, \"region_code\" text null, \"postal_code\" text null, \"city\" text null, \"customer_group_id\" uuid null, \"product_category_id\" uuid null, \"channel_id\" uuid null, \"priority\" int4 not null default 0, \"is_compound\" bool not null default false, \"metadata\" jsonb null, \"starts_at\" timestamptz(6) null, \"ends_at\" timestamptz(6) null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, \"is_default\" bool not null default false, constraint \"sales_tax_rates_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"sales_tax_rates\" add constraint \"sales_tax_rates_code_unique\" unique (\"organization_id\", \"tenant_id\", \"code\");`);\n this.addSql(`create index \"sales_tax_rates_scope_idx\" on \"sales_tax_rates\" (\"organization_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"sessions\" (\"id\" uuid not null default gen_random_uuid(), \"user_id\" uuid not null, \"token\" text not null, \"expires_at\" timestamptz(6) not null, \"created_at\" timestamptz(6) not null, \"last_used_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, constraint \"sessions_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"sessions\" add constraint \"sessions_token_unique\" unique (\"token\");`);\n\n this.addSql(`create table \"tenants\" (\"id\" uuid not null default gen_random_uuid(), \"name\" text not null, \"is_active\" bool not null default true, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"tenants_pkey\" primary key (\"id\"));`);\n\n this.addSql(`create table \"todos\" (\"id\" uuid not null default gen_random_uuid(), \"title\" text not null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"is_done\" bool not null default false, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"todos_pkey\" primary key (\"id\"));`);\n\n this.addSql(`create table \"user_acls\" (\"id\" uuid not null default gen_random_uuid(), \"user_id\" uuid not null, \"tenant_id\" uuid not null, \"features_json\" jsonb null, \"is_super_admin\" bool not null default false, \"organizations_json\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, constraint \"user_acls_pkey\" primary key (\"id\"));`);\n\n this.addSql(`create table \"user_roles\" (\"id\" uuid not null default gen_random_uuid(), \"user_id\" uuid not null, \"role_id\" uuid not null, \"created_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"user_roles_pkey\" primary key (\"id\"));`);\n\n this.addSql(`create table \"user_sidebar_preferences\" (\"id\" uuid not null default gen_random_uuid(), \"user_id\" uuid not null, \"tenant_id\" uuid null, \"organization_id\" uuid null, \"locale\" text not null, \"settings_json\" jsonb null, \"created_at\" timestamptz(6) not null, \"updated_at\" timestamptz(6) null, \"deleted_at\" timestamptz(6) null, constraint \"user_sidebar_preferences_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"user_sidebar_preferences\" add constraint \"user_sidebar_preferences_user_id_tenant_id_organi_f3f2f_unique\" unique (\"user_id\", \"tenant_id\", \"organization_id\", \"locale\");`);\n\n this.addSql(`create table \"users\" (\"id\" uuid not null default gen_random_uuid(), \"tenant_id\" uuid null, \"organization_id\" uuid null, \"email\" text not null, \"name\" text null, \"password_hash\" text null, \"is_confirmed\" bool not null default true, \"last_login_at\" timestamptz(6) null, \"created_at\" timestamptz(6) not null, \"deleted_at\" timestamptz(6) null, constraint \"users_pkey\" primary key (\"id\"));`);\n this.addSql(`alter table \"users\" add constraint \"users_email_unique\" unique (\"email\");`);\n\n this.addSql(`create table \"vector_search\" (\"id\" uuid not null default gen_random_uuid(), \"driver_id\" text not null, \"entity_id\" text not null, \"record_id\" text not null, \"tenant_id\" uuid not null, \"organization_id\" uuid null, \"checksum\" text not null, \"embedding\" vector(1536) not null, \"url\" text null, \"presenter\" jsonb null, \"links\" jsonb null, \"payload\" jsonb null, \"result_title\" text null, \"result_subtitle\" text null, \"result_icon\" text null, \"result_badge\" text null, \"result_snapshot\" text null, \"primary_link_href\" text null, \"primary_link_label\" text null, \"created_at\" timestamptz(6) not null default now(), \"updated_at\" timestamptz(6) not null default now(), constraint \"vector_search_pkey\" primary key (\"id\"));`);\n this.addSql(`create index \"vector_search_embedding_idx\" on \"vector_search\" (\"embedding\");`);\n this.addSql(`create index \"vector_search_lookup\" on \"vector_search\" (\"tenant_id\", \"organization_id\", \"entity_id\");`);\n this.addSql(`alter table \"vector_search\" add constraint \"vector_search_uniq\" unique (\"driver_id\", \"entity_id\", \"record_id\", \"tenant_id\");`);\n\n this.addSql(`create table \"vector_search_migrations\" (\"id\" text not null, \"applied_at\" timestamptz(6) not null default now(), constraint \"vector_search_migrations_pkey\" primary key (\"id\"));`);\n }\n\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }