@open-mercato/core 0.6.6-develop.6089.1.a7ed560528 → 0.6.6-develop.6121.1.5797a901b3

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 (320) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/generated/entities/catalog_product/index.js +52 -0
  3. package/dist/generated/entities/catalog_product/index.js.map +2 -2
  4. package/dist/generated/entities/catalog_product_variant/index.js +4 -0
  5. package/dist/generated/entities/catalog_product_variant/index.js.map +2 -2
  6. package/dist/generated/entity-fields-registry.js +28 -0
  7. package/dist/generated/entity-fields-registry.js.map +2 -2
  8. package/dist/modules/catalog/api/products/route.js +103 -33
  9. package/dist/modules/catalog/api/products/route.js.map +2 -2
  10. package/dist/modules/catalog/api/variants/route.js +4 -0
  11. package/dist/modules/catalog/api/variants/route.js.map +2 -2
  12. package/dist/modules/catalog/backend/catalog/products/[id]/page.js +46 -2
  13. package/dist/modules/catalog/backend/catalog/products/[id]/page.js.map +2 -2
  14. package/dist/modules/catalog/backend/catalog/products/[productId]/variants/[variantId]/page.js +4 -0
  15. package/dist/modules/catalog/backend/catalog/products/[productId]/variants/[variantId]/page.js.map +2 -2
  16. package/dist/modules/catalog/backend/catalog/products/[productId]/variants/create/page.js +2 -0
  17. package/dist/modules/catalog/backend/catalog/products/[productId]/variants/create/page.js.map +2 -2
  18. package/dist/modules/catalog/backend/catalog/products/create/page.js +42 -2
  19. package/dist/modules/catalog/backend/catalog/products/create/page.js.map +2 -2
  20. package/dist/modules/catalog/commands/products.js +251 -14
  21. package/dist/modules/catalog/commands/products.js.map +2 -2
  22. package/dist/modules/catalog/commands/variants.js +72 -1
  23. package/dist/modules/catalog/commands/variants.js.map +2 -2
  24. package/dist/modules/catalog/components/products/ProductComplianceSection.js +500 -0
  25. package/dist/modules/catalog/components/products/ProductComplianceSection.js.map +7 -0
  26. package/dist/modules/catalog/components/products/VariantBuilder.js +39 -1
  27. package/dist/modules/catalog/components/products/VariantBuilder.js.map +2 -2
  28. package/dist/modules/catalog/components/products/productForm.js +164 -2
  29. package/dist/modules/catalog/components/products/productForm.js.map +2 -2
  30. package/dist/modules/catalog/components/products/variantForm.js +2 -0
  31. package/dist/modules/catalog/components/products/variantForm.js.map +2 -2
  32. package/dist/modules/catalog/data/entities.js +93 -0
  33. package/dist/modules/catalog/data/entities.js.map +2 -2
  34. package/dist/modules/catalog/data/types.js +28 -0
  35. package/dist/modules/catalog/data/types.js.map +2 -2
  36. package/dist/modules/catalog/data/validators.js +100 -5
  37. package/dist/modules/catalog/data/validators.js.map +2 -2
  38. package/dist/modules/catalog/lib/gtin.js +61 -0
  39. package/dist/modules/catalog/lib/gtin.js.map +7 -0
  40. package/dist/modules/catalog/migrations/Migration20260611090000.js +17 -0
  41. package/dist/modules/catalog/migrations/Migration20260611090000.js.map +7 -0
  42. package/dist/modules/catalog/translations.js +1 -1
  43. package/dist/modules/catalog/translations.js.map +2 -2
  44. package/dist/modules/configs/api/cache/route.js +60 -10
  45. package/dist/modules/configs/api/cache/route.js.map +3 -3
  46. package/dist/modules/configs/components/CachePanel.js +52 -29
  47. package/dist/modules/configs/components/CachePanel.js.map +2 -2
  48. package/dist/modules/currencies/api/currencies/options/route.js +18 -4
  49. package/dist/modules/currencies/api/currencies/options/route.js.map +2 -2
  50. package/dist/modules/currencies/services/rateFetchingService.js +35 -18
  51. package/dist/modules/currencies/services/rateFetchingService.js.map +2 -2
  52. package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/page.js +16 -16
  53. package/dist/modules/customer_accounts/backend/customer_accounts/users/[id]/page.js.map +2 -2
  54. package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js +1 -1
  55. package/dist/modules/customer_accounts/backend/customer_accounts/users/page.js.map +2 -2
  56. package/dist/modules/customers/backend/calendar/page.js +10 -0
  57. package/dist/modules/customers/backend/calendar/page.js.map +7 -0
  58. package/dist/modules/customers/backend/calendar/page.meta.js +25 -0
  59. package/dist/modules/customers/backend/calendar/page.meta.js.map +7 -0
  60. package/dist/modules/customers/cli.js +1 -0
  61. package/dist/modules/customers/cli.js.map +2 -2
  62. package/dist/modules/customers/components/calendar/AgendaList.js +182 -0
  63. package/dist/modules/customers/components/calendar/AgendaList.js.map +7 -0
  64. package/dist/modules/customers/components/calendar/CalendarEventEditor.js +331 -0
  65. package/dist/modules/customers/components/calendar/CalendarEventEditor.js.map +7 -0
  66. package/dist/modules/customers/components/calendar/CalendarFooter.js +48 -0
  67. package/dist/modules/customers/components/calendar/CalendarFooter.js.map +7 -0
  68. package/dist/modules/customers/components/calendar/CalendarHeader.js +36 -0
  69. package/dist/modules/customers/components/calendar/CalendarHeader.js.map +7 -0
  70. package/dist/modules/customers/components/calendar/CalendarScreen.js +516 -0
  71. package/dist/modules/customers/components/calendar/CalendarScreen.js.map +7 -0
  72. package/dist/modules/customers/components/calendar/CalendarSettingsModal.js +163 -0
  73. package/dist/modules/customers/components/calendar/CalendarSettingsModal.js.map +7 -0
  74. package/dist/modules/customers/components/calendar/CalendarTabs.js +60 -0
  75. package/dist/modules/customers/components/calendar/CalendarTabs.js.map +7 -0
  76. package/dist/modules/customers/components/calendar/CalendarToolbar.js +262 -0
  77. package/dist/modules/customers/components/calendar/CalendarToolbar.js.map +7 -0
  78. package/dist/modules/customers/components/calendar/EventBlock.js +149 -0
  79. package/dist/modules/customers/components/calendar/EventBlock.js.map +7 -0
  80. package/dist/modules/customers/components/calendar/EventPeekPopover.js +72 -0
  81. package/dist/modules/customers/components/calendar/EventPeekPopover.js.map +7 -0
  82. package/dist/modules/customers/components/calendar/MonthGrid.js +214 -0
  83. package/dist/modules/customers/components/calendar/MonthGrid.js.map +7 -0
  84. package/dist/modules/customers/components/calendar/ShortcutsDialog.js +44 -0
  85. package/dist/modules/customers/components/calendar/ShortcutsDialog.js.map +7 -0
  86. package/dist/modules/customers/components/calendar/TimeGrid.js +410 -0
  87. package/dist/modules/customers/components/calendar/TimeGrid.js.map +7 -0
  88. package/dist/modules/customers/components/calendar/UpcomingCards.js +175 -0
  89. package/dist/modules/customers/components/calendar/UpcomingCards.js.map +7 -0
  90. package/dist/modules/customers/components/calendar/editor/CategoryField.js +75 -0
  91. package/dist/modules/customers/components/calendar/editor/CategoryField.js.map +7 -0
  92. package/dist/modules/customers/components/calendar/editor/LocationField.js +30 -0
  93. package/dist/modules/customers/components/calendar/editor/LocationField.js.map +7 -0
  94. package/dist/modules/customers/components/calendar/editor/PeopleField.js +135 -0
  95. package/dist/modules/customers/components/calendar/editor/PeopleField.js.map +7 -0
  96. package/dist/modules/customers/components/calendar/editor/RelatedToField.js +218 -0
  97. package/dist/modules/customers/components/calendar/editor/RelatedToField.js.map +7 -0
  98. package/dist/modules/customers/components/calendar/editor/RepeatField.js +119 -0
  99. package/dist/modules/customers/components/calendar/editor/RepeatField.js.map +7 -0
  100. package/dist/modules/customers/components/calendar/editor/ScheduleSection.js +83 -0
  101. package/dist/modules/customers/components/calendar/editor/ScheduleSection.js.map +7 -0
  102. package/dist/modules/customers/components/calendar/editor/SegmentGroup.js +44 -0
  103. package/dist/modules/customers/components/calendar/editor/SegmentGroup.js.map +7 -0
  104. package/dist/modules/customers/components/calendar/editor/hooks.js +132 -0
  105. package/dist/modules/customers/components/calendar/editor/hooks.js.map +7 -0
  106. package/dist/modules/customers/components/calendar/editor/inputs.js +160 -0
  107. package/dist/modules/customers/components/calendar/editor/inputs.js.map +7 -0
  108. package/dist/modules/customers/components/calendar/editor/lookups.js +107 -0
  109. package/dist/modules/customers/components/calendar/editor/lookups.js.map +7 -0
  110. package/dist/modules/customers/components/calendar/types.js +30 -0
  111. package/dist/modules/customers/components/calendar/types.js.map +7 -0
  112. package/dist/modules/customers/components/calendar/useCalendarItems.js +131 -0
  113. package/dist/modules/customers/components/calendar/useCalendarItems.js.map +7 -0
  114. package/dist/modules/customers/components/calendar/useCalendarPreferences.js +41 -0
  115. package/dist/modules/customers/components/calendar/useCalendarPreferences.js.map +7 -0
  116. package/dist/modules/customers/lib/calendar/categories.js +28 -0
  117. package/dist/modules/customers/lib/calendar/categories.js.map +7 -0
  118. package/dist/modules/customers/lib/calendar/conflicts.js +72 -0
  119. package/dist/modules/customers/lib/calendar/conflicts.js.map +7 -0
  120. package/dist/modules/customers/lib/calendar/editorPayload.js +271 -0
  121. package/dist/modules/customers/lib/calendar/editorPayload.js.map +7 -0
  122. package/dist/modules/customers/lib/calendar/grid.js +48 -0
  123. package/dist/modules/customers/lib/calendar/grid.js.map +7 -0
  124. package/dist/modules/customers/lib/calendar/layout.js +39 -0
  125. package/dist/modules/customers/lib/calendar/layout.js.map +7 -0
  126. package/dist/modules/customers/lib/calendar/mapItem.js +79 -0
  127. package/dist/modules/customers/lib/calendar/mapItem.js.map +7 -0
  128. package/dist/modules/customers/lib/calendar/preferences.js +71 -0
  129. package/dist/modules/customers/lib/calendar/preferences.js.map +7 -0
  130. package/dist/modules/customers/lib/calendar/range.js +46 -0
  131. package/dist/modules/customers/lib/calendar/range.js.map +7 -0
  132. package/dist/modules/customers/lib/calendar/recurrence.js +113 -0
  133. package/dist/modules/customers/lib/calendar/recurrence.js.map +7 -0
  134. package/dist/modules/dashboards/services/widgetDataService.js +5 -5
  135. package/dist/modules/dashboards/services/widgetDataService.js.map +2 -2
  136. package/dist/modules/dictionaries/api/[dictionaryId]/entries/[entryId]/route.js +61 -1
  137. package/dist/modules/dictionaries/api/[dictionaryId]/entries/[entryId]/route.js.map +2 -2
  138. package/dist/modules/dictionaries/api/[dictionaryId]/entries/route.js +33 -1
  139. package/dist/modules/dictionaries/api/[dictionaryId]/entries/route.js.map +2 -2
  140. package/dist/modules/dictionaries/api/[dictionaryId]/route.js +61 -1
  141. package/dist/modules/dictionaries/api/[dictionaryId]/route.js.map +2 -2
  142. package/dist/modules/dictionaries/api/route.js +33 -1
  143. package/dist/modules/dictionaries/api/route.js.map +2 -2
  144. package/dist/modules/feature_toggles/lib/queries.js +36 -52
  145. package/dist/modules/feature_toggles/lib/queries.js.map +2 -2
  146. package/dist/modules/messages/commands/actions.js +81 -9
  147. package/dist/modules/messages/commands/actions.js.map +2 -2
  148. package/dist/modules/perspectives/api/[tableId]/[perspectiveId]/route.js +32 -1
  149. package/dist/modules/perspectives/api/[tableId]/[perspectiveId]/route.js.map +2 -2
  150. package/dist/modules/perspectives/api/[tableId]/roles/[roleId]/route.js +32 -1
  151. package/dist/modules/perspectives/api/[tableId]/roles/[roleId]/route.js.map +2 -2
  152. package/dist/modules/perspectives/api/[tableId]/route.js +73 -2
  153. package/dist/modules/perspectives/api/[tableId]/route.js.map +2 -2
  154. package/dist/modules/perspectives/services/perspectiveService.js +5 -3
  155. package/dist/modules/perspectives/services/perspectiveService.js.map +2 -2
  156. package/dist/modules/planner/api/access.js +9 -0
  157. package/dist/modules/planner/api/access.js.map +2 -2
  158. package/dist/modules/planner/api/availability-date-specific.js +22 -1
  159. package/dist/modules/planner/api/availability-date-specific.js.map +2 -2
  160. package/dist/modules/planner/api/availability-weekly.js +22 -1
  161. package/dist/modules/planner/api/availability-weekly.js.map +2 -2
  162. package/dist/modules/resources/api/resources/tags/assign/route.js +39 -0
  163. package/dist/modules/resources/api/resources/tags/assign/route.js.map +2 -2
  164. package/dist/modules/resources/api/resources/tags/unassign/route.js +39 -0
  165. package/dist/modules/resources/api/resources/tags/unassign/route.js.map +2 -2
  166. package/dist/modules/sales/api/settings/document-numbers/route.js +33 -1
  167. package/dist/modules/sales/api/settings/document-numbers/route.js.map +2 -2
  168. package/dist/modules/sales/api/settings/order-editing/route.js +35 -3
  169. package/dist/modules/sales/api/settings/order-editing/route.js.map +2 -2
  170. package/dist/modules/staff/api/leave-requests/accept/route.js +41 -0
  171. package/dist/modules/staff/api/leave-requests/accept/route.js.map +2 -2
  172. package/dist/modules/staff/api/leave-requests/reject/route.js +41 -0
  173. package/dist/modules/staff/api/leave-requests/reject/route.js.map +2 -2
  174. package/dist/modules/staff/api/team-members/self/route.js +40 -0
  175. package/dist/modules/staff/api/team-members/self/route.js.map +2 -2
  176. package/dist/modules/staff/api/team-members/tags/assign/route.js +41 -0
  177. package/dist/modules/staff/api/team-members/tags/assign/route.js.map +2 -2
  178. package/dist/modules/staff/api/team-members/tags/unassign/route.js +41 -0
  179. package/dist/modules/staff/api/team-members/tags/unassign/route.js.map +2 -2
  180. package/dist/modules/translations/api/[entityType]/[entityId]/route.js +61 -1
  181. package/dist/modules/translations/api/[entityType]/[entityId]/route.js.map +2 -2
  182. package/dist/modules/translations/api/context.js +7 -0
  183. package/dist/modules/translations/api/context.js.map +2 -2
  184. package/dist/modules/translations/api/put/locales.js +33 -1
  185. package/dist/modules/translations/api/put/locales.js.map +2 -2
  186. package/dist/modules/workflows/backend/definitions/visual-editor/page.js +6 -7
  187. package/dist/modules/workflows/backend/definitions/visual-editor/page.js.map +2 -2
  188. package/dist/modules/workflows/backend/instances/[id]/page.js.map +1 -1
  189. package/dist/modules/workflows/components/EdgeEditDialog.js.map +1 -1
  190. package/dist/modules/workflows/components/EdgeEditDialogCrudForm.js.map +1 -1
  191. package/dist/modules/workflows/components/NodeEditDialog.js.map +1 -1
  192. package/dist/modules/workflows/components/NodeEditDialogCrudForm.js.map +1 -1
  193. package/dist/modules/workflows/components/WorkflowGraph.js.map +1 -1
  194. package/dist/modules/workflows/components/WorkflowGraphImpl.js +17 -9
  195. package/dist/modules/workflows/components/WorkflowGraphImpl.js.map +2 -2
  196. package/dist/modules/workflows/components/mobile/MobileVisualEditor.js.map +1 -1
  197. package/dist/modules/workflows/frontend/checkout-demo/deriveCurrentStep.js +8 -0
  198. package/dist/modules/workflows/frontend/checkout-demo/deriveCurrentStep.js.map +7 -0
  199. package/dist/modules/workflows/frontend/checkout-demo/page.js +2 -20
  200. package/dist/modules/workflows/frontend/checkout-demo/page.js.map +2 -2
  201. package/dist/modules/workflows/lib/graph-utils.js +8 -0
  202. package/dist/modules/workflows/lib/graph-utils.js.map +2 -2
  203. package/generated/entities/catalog_product/index.ts +26 -0
  204. package/generated/entities/catalog_product_variant/index.ts +2 -0
  205. package/generated/entity-fields-registry.ts +28 -0
  206. package/package.json +7 -7
  207. package/src/modules/catalog/api/products/route.ts +123 -39
  208. package/src/modules/catalog/api/variants/route.ts +4 -0
  209. package/src/modules/catalog/backend/catalog/products/[id]/page.tsx +43 -0
  210. package/src/modules/catalog/backend/catalog/products/[productId]/variants/[variantId]/page.tsx +14 -0
  211. package/src/modules/catalog/backend/catalog/products/[productId]/variants/create/page.tsx +2 -0
  212. package/src/modules/catalog/backend/catalog/products/create/page.tsx +41 -0
  213. package/src/modules/catalog/commands/products.ts +307 -2
  214. package/src/modules/catalog/commands/variants.ts +90 -1
  215. package/src/modules/catalog/components/products/ProductComplianceSection.tsx +497 -0
  216. package/src/modules/catalog/components/products/VariantBuilder.tsx +43 -0
  217. package/src/modules/catalog/components/products/productForm.ts +262 -0
  218. package/src/modules/catalog/components/products/variantForm.ts +4 -0
  219. package/src/modules/catalog/data/entities.ts +97 -0
  220. package/src/modules/catalog/data/types.ts +36 -0
  221. package/src/modules/catalog/data/validators.ts +159 -3
  222. package/src/modules/catalog/i18n/de.json +64 -0
  223. package/src/modules/catalog/i18n/en.json +64 -0
  224. package/src/modules/catalog/i18n/es.json +64 -0
  225. package/src/modules/catalog/i18n/pl.json +64 -0
  226. package/src/modules/catalog/lib/gtin.ts +66 -0
  227. package/src/modules/catalog/migrations/.snapshot-open-mercato.json +457 -0
  228. package/src/modules/catalog/migrations/Migration20260611090000.ts +17 -0
  229. package/src/modules/catalog/translations.ts +1 -1
  230. package/src/modules/configs/api/cache/route.ts +72 -10
  231. package/src/modules/configs/components/CachePanel.tsx +59 -29
  232. package/src/modules/currencies/api/currencies/options/route.ts +22 -4
  233. package/src/modules/currencies/services/rateFetchingService.ts +63 -26
  234. package/src/modules/customer_accounts/backend/customer_accounts/users/[id]/page.tsx +18 -18
  235. package/src/modules/customer_accounts/backend/customer_accounts/users/page.tsx +1 -1
  236. package/src/modules/customer_accounts/i18n/de.json +1 -1
  237. package/src/modules/customer_accounts/i18n/en.json +1 -1
  238. package/src/modules/customer_accounts/i18n/es.json +1 -1
  239. package/src/modules/customer_accounts/i18n/pl.json +1 -1
  240. package/src/modules/customers/backend/calendar/page.meta.ts +23 -0
  241. package/src/modules/customers/backend/calendar/page.tsx +12 -0
  242. package/src/modules/customers/cli.ts +1 -0
  243. package/src/modules/customers/components/calendar/AgendaList.tsx +219 -0
  244. package/src/modules/customers/components/calendar/CalendarEventEditor.tsx +386 -0
  245. package/src/modules/customers/components/calendar/CalendarFooter.tsx +61 -0
  246. package/src/modules/customers/components/calendar/CalendarHeader.tsx +40 -0
  247. package/src/modules/customers/components/calendar/CalendarScreen.tsx +590 -0
  248. package/src/modules/customers/components/calendar/CalendarSettingsModal.tsx +207 -0
  249. package/src/modules/customers/components/calendar/CalendarTabs.tsx +63 -0
  250. package/src/modules/customers/components/calendar/CalendarToolbar.tsx +295 -0
  251. package/src/modules/customers/components/calendar/EventBlock.tsx +205 -0
  252. package/src/modules/customers/components/calendar/EventPeekPopover.tsx +100 -0
  253. package/src/modules/customers/components/calendar/MonthGrid.tsx +236 -0
  254. package/src/modules/customers/components/calendar/ShortcutsDialog.tsx +57 -0
  255. package/src/modules/customers/components/calendar/TimeGrid.tsx +510 -0
  256. package/src/modules/customers/components/calendar/UpcomingCards.tsx +220 -0
  257. package/src/modules/customers/components/calendar/editor/CategoryField.tsx +79 -0
  258. package/src/modules/customers/components/calendar/editor/LocationField.tsx +37 -0
  259. package/src/modules/customers/components/calendar/editor/PeopleField.tsx +148 -0
  260. package/src/modules/customers/components/calendar/editor/RelatedToField.tsx +242 -0
  261. package/src/modules/customers/components/calendar/editor/RepeatField.tsx +132 -0
  262. package/src/modules/customers/components/calendar/editor/ScheduleSection.tsx +110 -0
  263. package/src/modules/customers/components/calendar/editor/SegmentGroup.tsx +50 -0
  264. package/src/modules/customers/components/calendar/editor/hooks.ts +162 -0
  265. package/src/modules/customers/components/calendar/editor/inputs.tsx +158 -0
  266. package/src/modules/customers/components/calendar/editor/lookups.ts +160 -0
  267. package/src/modules/customers/components/calendar/types.ts +163 -0
  268. package/src/modules/customers/components/calendar/useCalendarItems.ts +162 -0
  269. package/src/modules/customers/components/calendar/useCalendarPreferences.ts +52 -0
  270. package/src/modules/customers/i18n/de.json +195 -0
  271. package/src/modules/customers/i18n/en.json +195 -0
  272. package/src/modules/customers/i18n/es.json +195 -0
  273. package/src/modules/customers/i18n/pl.json +195 -0
  274. package/src/modules/customers/lib/calendar/categories.ts +26 -0
  275. package/src/modules/customers/lib/calendar/conflicts.ts +117 -0
  276. package/src/modules/customers/lib/calendar/editorPayload.ts +388 -0
  277. package/src/modules/customers/lib/calendar/grid.ts +50 -0
  278. package/src/modules/customers/lib/calendar/layout.ts +47 -0
  279. package/src/modules/customers/lib/calendar/mapItem.ts +94 -0
  280. package/src/modules/customers/lib/calendar/preferences.ts +95 -0
  281. package/src/modules/customers/lib/calendar/range.ts +45 -0
  282. package/src/modules/customers/lib/calendar/recurrence.ts +137 -0
  283. package/src/modules/dashboards/services/widgetDataService.ts +8 -6
  284. package/src/modules/dictionaries/api/[dictionaryId]/entries/[entryId]/route.ts +61 -1
  285. package/src/modules/dictionaries/api/[dictionaryId]/entries/route.ts +33 -1
  286. package/src/modules/dictionaries/api/[dictionaryId]/route.ts +65 -1
  287. package/src/modules/dictionaries/api/route.ts +36 -1
  288. package/src/modules/feature_toggles/lib/queries.ts +41 -60
  289. package/src/modules/messages/commands/actions.ts +100 -7
  290. package/src/modules/perspectives/api/[tableId]/[perspectiveId]/route.ts +34 -1
  291. package/src/modules/perspectives/api/[tableId]/roles/[roleId]/route.ts +34 -1
  292. package/src/modules/perspectives/api/[tableId]/route.ts +107 -32
  293. package/src/modules/perspectives/services/perspectiveService.ts +9 -5
  294. package/src/modules/planner/api/access.ts +9 -0
  295. package/src/modules/planner/api/availability-date-specific.ts +22 -1
  296. package/src/modules/planner/api/availability-weekly.ts +22 -1
  297. package/src/modules/resources/api/resources/tags/assign/route.ts +42 -0
  298. package/src/modules/resources/api/resources/tags/unassign/route.ts +42 -0
  299. package/src/modules/sales/api/settings/document-numbers/route.ts +35 -1
  300. package/src/modules/sales/api/settings/order-editing/route.ts +37 -3
  301. package/src/modules/staff/api/leave-requests/accept/route.ts +45 -0
  302. package/src/modules/staff/api/leave-requests/reject/route.ts +45 -0
  303. package/src/modules/staff/api/team-members/self/route.ts +43 -0
  304. package/src/modules/staff/api/team-members/tags/assign/route.ts +45 -0
  305. package/src/modules/staff/api/team-members/tags/unassign/route.ts +45 -0
  306. package/src/modules/translations/api/[entityType]/[entityId]/route.ts +65 -1
  307. package/src/modules/translations/api/context.ts +7 -0
  308. package/src/modules/translations/api/put/locales.ts +35 -1
  309. package/src/modules/workflows/backend/definitions/visual-editor/page.tsx +11 -9
  310. package/src/modules/workflows/backend/instances/[id]/page.tsx +1 -1
  311. package/src/modules/workflows/components/EdgeEditDialog.tsx +1 -1
  312. package/src/modules/workflows/components/EdgeEditDialogCrudForm.tsx +1 -1
  313. package/src/modules/workflows/components/NodeEditDialog.tsx +1 -1
  314. package/src/modules/workflows/components/NodeEditDialogCrudForm.tsx +1 -1
  315. package/src/modules/workflows/components/WorkflowGraph.tsx +2 -2
  316. package/src/modules/workflows/components/WorkflowGraphImpl.tsx +27 -13
  317. package/src/modules/workflows/components/mobile/MobileVisualEditor.tsx +3 -3
  318. package/src/modules/workflows/frontend/checkout-demo/deriveCurrentStep.ts +12 -0
  319. package/src/modules/workflows/frontend/checkout-demo/page.tsx +3 -23
  320. package/src/modules/workflows/lib/graph-utils.ts +21 -1
@@ -73,6 +73,11 @@ let CatalogProduct = class {
73
73
  this.uomRoundingScale = 4;
74
74
  this.uomRoundingMode = "half_up";
75
75
  this.unitPriceEnabled = false;
76
+ this.isExciseGood = false;
77
+ this.requiresPrescription = false;
78
+ this.containsLithiumBattery = false;
79
+ this.requiresShipping = true;
80
+ this.isQuoteOnly = false;
76
81
  this.isConfigurable = false;
77
82
  this.isActive = true;
78
83
  this.createdAt = /* @__PURE__ */ new Date();
@@ -162,6 +167,84 @@ __decorateClass([
162
167
  __decorateClass([
163
168
  Property({ name: "dimensions", type: "jsonb", nullable: true })
164
169
  ], CatalogProduct.prototype, "dimensions", 2);
170
+ __decorateClass([
171
+ Property({ name: "country_of_origin_code", type: "text", nullable: true })
172
+ ], CatalogProduct.prototype, "countryOfOriginCode", 2);
173
+ __decorateClass([
174
+ Property({ name: "pkwiu_code", type: "text", nullable: true })
175
+ ], CatalogProduct.prototype, "pkwiuCode", 2);
176
+ __decorateClass([
177
+ Property({ name: "cn_code", type: "text", nullable: true })
178
+ ], CatalogProduct.prototype, "cnCode", 2);
179
+ __decorateClass([
180
+ Property({ name: "hs_code", type: "text", nullable: true })
181
+ ], CatalogProduct.prototype, "hsCode", 2);
182
+ __decorateClass([
183
+ Property({ name: "tax_classification_code", type: "text", nullable: true })
184
+ ], CatalogProduct.prototype, "taxClassificationCode", 2);
185
+ __decorateClass([
186
+ Property({ name: "gtu_codes", type: "text[]", nullable: true })
187
+ ], CatalogProduct.prototype, "gtuCodes", 2);
188
+ __decorateClass([
189
+ Property({ name: "age_min", type: "smallint", nullable: true })
190
+ ], CatalogProduct.prototype, "ageMin", 2);
191
+ __decorateClass([
192
+ Property({ name: "is_excise_good", type: "boolean", default: false })
193
+ ], CatalogProduct.prototype, "isExciseGood", 2);
194
+ __decorateClass([
195
+ Property({ name: "excise_category", type: "text", nullable: true })
196
+ ], CatalogProduct.prototype, "exciseCategory", 2);
197
+ __decorateClass([
198
+ Property({ name: "requires_prescription", type: "boolean", default: false })
199
+ ], CatalogProduct.prototype, "requiresPrescription", 2);
200
+ __decorateClass([
201
+ Property({ name: "hazmat_class", type: "text", nullable: true })
202
+ ], CatalogProduct.prototype, "hazmatClass", 2);
203
+ __decorateClass([
204
+ Property({ name: "un_number", type: "text", nullable: true })
205
+ ], CatalogProduct.prototype, "unNumber", 2);
206
+ __decorateClass([
207
+ Property({ name: "hazmat_packing_group", type: "text", nullable: true })
208
+ ], CatalogProduct.prototype, "hazmatPackingGroup", 2);
209
+ __decorateClass([
210
+ Property({ name: "contains_lithium_battery", type: "boolean", default: false })
211
+ ], CatalogProduct.prototype, "containsLithiumBattery", 2);
212
+ __decorateClass([
213
+ Property({ name: "launch_at", type: Date, nullable: true })
214
+ ], CatalogProduct.prototype, "launchAt", 2);
215
+ __decorateClass([
216
+ Property({ name: "end_of_life_at", type: Date, nullable: true })
217
+ ], CatalogProduct.prototype, "endOfLifeAt", 2);
218
+ __decorateClass([
219
+ Property({ name: "available_from", type: Date, nullable: true })
220
+ ], CatalogProduct.prototype, "availableFrom", 2);
221
+ __decorateClass([
222
+ Property({ name: "available_until", type: Date, nullable: true })
223
+ ], CatalogProduct.prototype, "availableUntil", 2);
224
+ __decorateClass([
225
+ Property({ name: "min_order_qty", type: "integer", nullable: true })
226
+ ], CatalogProduct.prototype, "minOrderQty", 2);
227
+ __decorateClass([
228
+ Property({ name: "max_order_qty", type: "integer", nullable: true })
229
+ ], CatalogProduct.prototype, "maxOrderQty", 2);
230
+ __decorateClass([
231
+ Property({ name: "order_qty_increment", type: "integer", nullable: true })
232
+ ], CatalogProduct.prototype, "orderQtyIncrement", 2);
233
+ __decorateClass([
234
+ Property({ name: "requires_shipping", type: "boolean", default: true })
235
+ ], CatalogProduct.prototype, "requiresShipping", 2);
236
+ __decorateClass([
237
+ Property({ name: "is_quote_only", type: "boolean", default: false })
238
+ ], CatalogProduct.prototype, "isQuoteOnly", 2);
239
+ __decorateClass([
240
+ Property({ name: "seo_title", type: "text", nullable: true })
241
+ ], CatalogProduct.prototype, "seoTitle", 2);
242
+ __decorateClass([
243
+ Property({ name: "seo_description", type: "text", nullable: true })
244
+ ], CatalogProduct.prototype, "seoDescription", 2);
245
+ __decorateClass([
246
+ Property({ name: "canonical_url", type: "text", nullable: true })
247
+ ], CatalogProduct.prototype, "canonicalUrl", 2);
165
248
  __decorateClass([
166
249
  Property({ name: "metadata", type: "jsonb", nullable: true })
167
250
  ], CatalogProduct.prototype, "metadata", 2);
@@ -550,6 +633,12 @@ __decorateClass([
550
633
  __decorateClass([
551
634
  Property({ type: "text", nullable: true })
552
635
  ], CatalogProductVariant.prototype, "barcode", 2);
636
+ __decorateClass([
637
+ Property({ name: "gtin_type", type: "text", nullable: true })
638
+ ], CatalogProductVariant.prototype, "gtinType", 2);
639
+ __decorateClass([
640
+ Property({ name: "hs_code", type: "text", nullable: true })
641
+ ], CatalogProductVariant.prototype, "hsCode", 2);
553
642
  __decorateClass([
554
643
  Property({ type: "text", nullable: true })
555
644
  ], CatalogProductVariant.prototype, "statusEntryId", 2);
@@ -613,6 +702,10 @@ CatalogProductVariant = __decorateClass([
613
702
  Unique({
614
703
  name: "catalog_product_variants_sku_unique",
615
704
  properties: ["organizationId", "tenantId", "sku"]
705
+ }),
706
+ Index({
707
+ name: "catalog_product_variants_gtin_scope_unique",
708
+ expression: `create unique index "catalog_product_variants_gtin_scope_unique" on "catalog_product_variants" ("tenant_id", "organization_id", "gtin_type", "barcode") where deleted_at is null and gtin_type is not null and barcode is not null`
616
709
  })
617
710
  ], CatalogProductVariant);
618
711
  OptionalProps;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/modules/catalog/data/entities.ts"],
4
- "sourcesContent": ["import { Collection, OptionalProps } from '@mikro-orm/core'\nimport { Entity, Index, ManyToOne, OneToMany, PrimaryKey, Property, Unique } from '@mikro-orm/decorators/legacy'\nimport type {\n CatalogPriceDisplayMode,\n CatalogProductOptionSchema,\n CatalogProductRelationType,\n CatalogProductType,\n} from './types'\nimport type { ReferenceUnitCode } from '@open-mercato/shared/lib/units/unitCodes'\n\n@Entity({ tableName: 'catalog_product_option_schemas' })\n@Index({\n name: 'catalog_product_option_schemas_scope_idx',\n properties: ['organizationId', 'tenantId'],\n})\n@Unique({\n name: 'catalog_product_option_schemas_code_unique',\n properties: ['organizationId', 'tenantId', 'code'],\n})\nexport class CatalogOptionSchemaTemplate {\n [OptionalProps]?: 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ name: 'code', type: 'text' })\n code!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'schema', type: 'jsonb' })\n schema!: CatalogProductOptionSchema\n\n @Property({ name: 'metadata', type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'catalog_products' })\n@Index({ name: 'catalog_products_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Unique({ name: 'catalog_products_sku_scope_unique', properties: ['organizationId', 'tenantId', 'sku'] })\n@Unique({ name: 'catalog_products_handle_scope_unique', properties: ['organizationId', 'tenantId', 'handle'] })\nexport class CatalogProduct {\n [OptionalProps]?:\n | 'createdAt'\n | 'updatedAt'\n | 'deletedAt'\n | 'defaultSalesUnitQuantity'\n | 'uomRoundingScale'\n | 'uomRoundingMode'\n | 'unitPriceEnabled'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ type: 'text' })\n title!: string\n\n @Property({ type: 'text', nullable: true })\n subtitle?: string | null\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ type: 'text', nullable: true })\n sku?: string | null\n\n @Property({ type: 'text', nullable: true })\n handle?: string | null\n\n @Property({ name: 'tax_rate_id', type: 'uuid', nullable: true })\n taxRateId?: string | null\n\n @Property({ name: 'tax_rate', type: 'numeric', precision: 7, scale: 4, nullable: true })\n taxRate?: string | null\n\n @Property({ name: 'product_type', type: 'text', default: 'simple' })\n productType: CatalogProductType = 'simple'\n\n @Property({ name: 'status_entry_id', type: 'uuid', nullable: true })\n statusEntryId?: string | null\n\n @Property({ name: 'primary_currency_code', type: 'text', nullable: true })\n primaryCurrencyCode?: string | null\n\n @Property({ name: 'default_unit', type: 'text', nullable: true })\n defaultUnit?: string | null\n\n @Property({ name: 'default_sales_unit', type: 'text', nullable: true })\n defaultSalesUnit?: string | null\n\n @Property({ name: 'default_sales_unit_quantity', type: 'numeric', precision: 18, scale: 6, default: '1' })\n defaultSalesUnitQuantity: string = '1'\n\n @Property({ name: 'uom_rounding_scale', type: 'smallint', default: 4 })\n uomRoundingScale: number = 4\n\n @Property({ name: 'uom_rounding_mode', type: 'text', default: 'half_up' })\n uomRoundingMode: 'half_up' | 'down' | 'up' = 'half_up'\n\n @Property({ name: 'unit_price_enabled', type: 'boolean', default: false })\n unitPriceEnabled: boolean = false\n\n @Property({ name: 'unit_price_reference_unit', type: 'text', nullable: true })\n unitPriceReferenceUnit?: ReferenceUnitCode | null\n\n @Property({ name: 'unit_price_base_quantity', type: 'numeric', precision: 18, scale: 6, nullable: true })\n unitPriceBaseQuantity?: string | null\n\n @Property({ name: 'default_media_id', type: 'uuid', nullable: true })\n defaultMediaId?: string | null\n\n @Property({ name: 'default_media_url', type: 'text', nullable: true })\n defaultMediaUrl?: string | null\n\n @Property({ name: 'weight_value', type: 'numeric', precision: 16, scale: 4, nullable: true })\n weightValue?: string | null\n\n @Property({ name: 'weight_unit', type: 'text', nullable: true })\n weightUnit?: string | null\n\n @Property({ name: 'dimensions', type: 'jsonb', nullable: true })\n dimensions?: {\n width?: number | null\n height?: number | null\n depth?: number | null\n unit?: string | null\n } | null\n\n @Property({ name: 'metadata', type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'custom_fieldset_code', type: 'text', nullable: true })\n customFieldsetCode?: string | null\n\n @ManyToOne(() => CatalogOptionSchemaTemplate, {\n fieldName: 'option_schema_id',\n nullable: true,\n deleteRule: 'set null',\n })\n optionSchemaTemplate?: CatalogOptionSchemaTemplate | null\n\n @Property({ name: 'is_configurable', type: 'boolean', default: false })\n isConfigurable: boolean = false\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n\n @OneToMany(() => CatalogProductVariant, (variant) => variant.product)\n variants = new Collection<CatalogProductVariant>(this)\n\n @OneToMany(() => CatalogOffer, (offer) => offer.product)\n offers = new Collection<CatalogOffer>(this)\n\n @OneToMany(() => CatalogProductCategoryAssignment, (assignment) => assignment.product)\n categoryAssignments = new Collection<CatalogProductCategoryAssignment>(this)\n\n @OneToMany(() => CatalogProductTagAssignment, (assignment) => assignment.product)\n tagAssignments = new Collection<CatalogProductTagAssignment>(this)\n\n @OneToMany(() => CatalogProductUnitConversion, (conversion) => conversion.product)\n unitConversions = new Collection<CatalogProductUnitConversion>(this)\n}\n\n@Entity({ tableName: 'catalog_product_unit_conversions' })\n@Index({\n name: 'catalog_product_unit_conversions_scope_idx',\n properties: ['organizationId', 'tenantId', 'product'],\n})\n@Unique({\n name: 'catalog_product_unit_conversions_unique',\n properties: ['product', 'unitCode'],\n})\nexport class CatalogProductUnitConversion {\n [OptionalProps]?: 'createdAt' | 'updatedAt' | 'deletedAt' | 'sortOrder' | 'isActive'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @ManyToOne(() => CatalogProduct, { fieldName: 'product_id', deleteRule: 'cascade' })\n product!: CatalogProduct\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'unit_code', type: 'text' })\n unitCode!: string\n\n @Property({ name: 'to_base_factor', type: 'numeric', precision: 24, scale: 12 })\n toBaseFactor!: string\n\n @Property({ name: 'sort_order', type: 'integer', default: 0 })\n sortOrder: number = 0\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'metadata', type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'catalog_product_categories' })\n@Index({ name: 'catalog_product_categories_scope_idx', properties: ['organizationId', 'tenantId'] })\n@Unique({ name: 'catalog_product_categories_slug_unique', properties: ['organizationId', 'tenantId', 'slug'] })\nexport class CatalogProductCategory {\n [OptionalProps]?: 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', nullable: true })\n slug?: string | null\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'parent_id', type: 'uuid', nullable: true })\n parentId?: string | null\n\n @Property({ name: 'root_id', type: 'uuid', nullable: true })\n rootId?: string | null\n\n @Property({ name: 'tree_path', type: 'text', nullable: true })\n treePath?: string | null\n\n @Property({ type: 'int', default: 0 })\n depth: number = 0\n\n @Property({ name: 'ancestor_ids', type: 'jsonb', default: [], nullable: false })\n ancestorIds: string[] = []\n\n @Property({ name: 'child_ids', type: 'jsonb', default: [], nullable: false })\n childIds: string[] = []\n\n @Property({ name: 'descendant_ids', type: 'jsonb', default: [], nullable: false })\n descendantIds: string[] = []\n\n @Property({ name: 'metadata', type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n\n @OneToMany(() => CatalogProductCategoryAssignment, (assignment) => assignment.category)\n assignments = new Collection<CatalogProductCategoryAssignment>(this)\n}\n\n@Entity({ tableName: 'catalog_product_category_assignments' })\n@Index({\n name: 'catalog_product_category_assignments_scope_idx',\n properties: ['organizationId', 'tenantId'],\n})\n@Unique({\n name: 'catalog_product_category_assignments_unique',\n properties: ['product', 'category'],\n})\nexport class CatalogProductCategoryAssignment {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @ManyToOne(() => CatalogProduct, { fieldName: 'product_id', deleteRule: 'cascade' })\n product!: CatalogProduct\n\n @ManyToOne(() => CatalogProductCategory, { fieldName: 'category_id', deleteRule: 'cascade' })\n category!: CatalogProductCategory\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'position', type: 'int', default: 0 })\n position: number = 0\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n}\n\n@Entity({ tableName: 'catalog_product_tags' })\n@Index({ name: 'catalog_product_tags_scope_idx', properties: ['organizationId', 'tenantId'] })\n@Unique({ name: 'catalog_product_tags_slug_unique', properties: ['organizationId', 'tenantId', 'slug'] })\nexport class CatalogProductTag {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ type: 'text' })\n label!: string\n\n @Property({ type: 'text' })\n slug!: string\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @OneToMany(() => CatalogProductTagAssignment, (assignment) => assignment.tag)\n assignments = new Collection<CatalogProductTagAssignment>(this)\n}\n\n@Entity({ tableName: 'catalog_product_tag_assignments' })\n@Index({ name: 'catalog_product_tag_assignments_scope_idx', properties: ['organizationId', 'tenantId'] })\n@Unique({ name: 'catalog_product_tag_assignments_unique', properties: ['product', 'tag'] })\nexport class CatalogProductTagAssignment {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @ManyToOne(() => CatalogProduct, { fieldName: 'product_id', deleteRule: 'cascade' })\n product!: CatalogProduct\n\n @ManyToOne(() => CatalogProductTag, { fieldName: 'tag_id', deleteRule: 'cascade' })\n tag!: CatalogProductTag\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n}\n\n@Entity({ tableName: 'catalog_product_offers' })\n@Index({ name: 'catalog_product_offers_scope_idx', properties: ['organizationId', 'tenantId'] })\n@Unique({\n name: 'catalog_product_offers_product_channel_unique',\n properties: ['product', 'organizationId', 'tenantId', 'channelId'],\n})\nexport class CatalogOffer {\n [OptionalProps]?: 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @ManyToOne(() => CatalogProduct, { fieldName: 'product_id', deleteRule: 'cascade' })\n product!: CatalogProduct\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'channel_id', type: 'uuid' })\n channelId!: string\n\n @Property({ type: 'text' })\n title!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'default_media_id', type: 'uuid', nullable: true })\n defaultMediaId?: string | null\n\n @Property({ name: 'default_media_url', type: 'text', nullable: true })\n defaultMediaUrl?: string | null\n\n @Property({ name: 'metadata', type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n\n @OneToMany(() => CatalogProductPrice, (price) => price.offer)\n prices = new Collection<CatalogProductPrice>(this)\n}\n\n@Entity({ tableName: 'catalog_product_variants' })\n@Index({ name: 'catalog_product_variants_scope_idx', properties: ['product', 'organizationId', 'tenantId'] })\n@Unique({\n name: 'catalog_product_variants_sku_unique',\n properties: ['organizationId', 'tenantId', 'sku'],\n})\nexport class CatalogProductVariant {\n [OptionalProps]?: 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @ManyToOne(() => CatalogProduct, { fieldName: 'product_id' })\n product!: CatalogProduct\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ type: 'text', nullable: true })\n name?: string | null\n\n @Property({ type: 'text', nullable: true })\n sku?: string | null\n\n @Property({ type: 'text', nullable: true })\n barcode?: string | null\n\n @Property({ type: 'text', nullable: true })\n statusEntryId?: string | null\n\n @Property({ name: 'is_default', type: 'boolean', default: false })\n isDefault: boolean = false\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'weight_value', type: 'numeric', precision: 16, scale: 4, nullable: true })\n weightValue?: string | null\n\n @Property({ name: 'weight_unit', type: 'text', nullable: true })\n weightUnit?: string | null\n\n @Property({ name: 'dimensions', type: 'jsonb', nullable: true })\n dimensions?: {\n width?: number | null\n height?: number | null\n depth?: number | null\n unit?: string | null\n } | null\n\n @Property({ name: 'metadata', type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'tax_rate_id', type: 'uuid', nullable: true })\n taxRateId?: string | null\n\n @Property({ name: 'tax_rate', type: 'numeric', precision: 7, scale: 4, nullable: true })\n taxRate?: string | null\n\n @Property({ name: 'option_values', type: 'jsonb', nullable: true })\n optionValues?: Record<string, string> | null\n\n @Property({ name: 'default_media_id', type: 'uuid', nullable: true })\n defaultMediaId?: string | null\n\n @Property({ name: 'default_media_url', type: 'text', nullable: true })\n defaultMediaUrl?: string | null\n\n @Property({ name: 'custom_fieldset_code', type: 'text', nullable: true })\n customFieldsetCode?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n\n @OneToMany(() => CatalogProductPrice, (price) => price.variant)\n prices = new Collection<CatalogProductPrice>(this)\n\n\n @OneToMany(() => CatalogProductVariantRelation, (relation) => relation.parentVariant)\n componentRelations = new Collection<CatalogProductVariantRelation>(this)\n\n @OneToMany(() => CatalogProductVariantRelation, (relation) => relation.childVariant)\n parentRelations = new Collection<CatalogProductVariantRelation>(this)\n\n}\n\n@Entity({ tableName: 'catalog_product_variant_relations' })\n@Index({\n name: 'catalog_product_variant_relations_parent_idx',\n properties: ['parentVariant', 'organizationId', 'tenantId'],\n})\n@Index({\n name: 'catalog_product_variant_relations_child_idx',\n properties: ['childVariant', 'organizationId', 'tenantId'],\n})\n@Index({\n name: 'catalog_product_variant_relations_child_product_idx',\n properties: ['childProduct', 'organizationId', 'tenantId'],\n})\nexport class CatalogProductVariantRelation {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @ManyToOne(() => CatalogProductVariant, {\n fieldName: 'parent_variant_id',\n deleteRule: 'cascade',\n })\n parentVariant!: CatalogProductVariant\n\n @ManyToOne(() => CatalogProductVariant, {\n fieldName: 'child_variant_id',\n deleteRule: 'cascade',\n nullable: true,\n })\n childVariant?: CatalogProductVariant | null\n\n @ManyToOne(() => CatalogProduct, {\n fieldName: 'child_product_id',\n nullable: true,\n deleteRule: 'cascade',\n })\n childProduct?: CatalogProduct | null\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'relation_type', type: 'text' })\n relationType: CatalogProductRelationType = 'grouped'\n\n @Property({ name: 'is_required', type: 'boolean', default: false })\n isRequired: boolean = false\n\n @Property({ name: 'min_quantity', type: 'integer', nullable: true })\n minQuantity?: number | null\n\n @Property({ name: 'max_quantity', type: 'integer', nullable: true })\n maxQuantity?: number | null\n\n @Property({ type: 'integer', default: 0 })\n position: number = 0\n\n @Property({ name: 'metadata', type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n}\n\n@Entity({ tableName: 'catalog_price_kinds' })\n@Index({\n name: 'catalog_price_kinds_tenant_idx',\n properties: ['tenantId'],\n})\n@Unique({\n name: 'catalog_price_kinds_code_tenant_unique',\n properties: ['tenantId', 'code'],\n})\nexport class CatalogPriceKind {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid', nullable: true })\n organizationId?: string | null\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n title!: string\n\n @Property({ name: 'display_mode', type: 'text', default: 'excluding-tax' })\n displayMode: CatalogPriceDisplayMode = 'excluding-tax'\n\n @Property({ name: 'currency_code', type: 'text', nullable: true })\n currencyCode?: string | null\n\n @Property({ name: 'is_promotion', type: 'boolean', default: false })\n isPromotion: boolean = false\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n\n @OneToMany(() => CatalogProductPrice, (price) => price.priceKind)\n prices = new Collection<CatalogProductPrice>(this)\n}\n\n@Entity({ tableName: 'catalog_product_variant_prices' })\n@Index({\n name: 'catalog_product_variant_prices_variant_scope_idx',\n properties: ['variant', 'organizationId', 'tenantId'],\n})\n@Index({\n name: 'catalog_product_variant_prices_product_scope_idx',\n properties: ['product', 'organizationId', 'tenantId'],\n})\nexport class CatalogProductPrice {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @ManyToOne(() => CatalogProductVariant, { fieldName: 'variant_id', nullable: true })\n variant?: CatalogProductVariant | null\n\n @ManyToOne(() => CatalogProduct, { fieldName: 'product_id', nullable: true })\n product?: CatalogProduct | null\n\n @ManyToOne(() => CatalogOffer, { fieldName: 'offer_id', nullable: true })\n offer?: CatalogOffer | null\n\n @ManyToOne(() => CatalogPriceKind, { fieldName: 'price_kind_id', deleteRule: 'restrict' })\n priceKind!: CatalogPriceKind\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'currency_code', type: 'text' })\n currencyCode!: string\n\n @Property({ name: 'kind', type: 'text', default: 'regular' })\n kind: string = 'regular'\n\n @Property({ name: 'min_quantity', type: 'integer', default: 1 })\n minQuantity: number = 1\n\n @Property({ name: 'max_quantity', type: 'integer', nullable: true })\n maxQuantity?: number | null\n\n @Property({ name: 'unit_price_net', type: 'numeric', precision: 16, scale: 4, nullable: true })\n unitPriceNet?: string | null\n\n @Property({ name: 'unit_price_gross', type: 'numeric', precision: 16, scale: 4, nullable: true })\n unitPriceGross?: string | null\n\n @Property({ name: 'tax_rate', type: 'numeric', precision: 7, scale: 4, nullable: true })\n taxRate?: string | null\n\n @Property({ name: 'tax_amount', type: 'numeric', precision: 16, scale: 4, nullable: true })\n taxAmount?: string | null\n\n @Property({ name: 'channel_id', type: 'uuid', nullable: true })\n channelId?: string | null\n\n @Property({ name: 'user_id', type: 'uuid', nullable: true })\n userId?: string | null\n\n @Property({ name: 'user_group_id', type: 'uuid', nullable: true })\n userGroupId?: string | null\n\n @Property({ name: 'customer_id', type: 'uuid', nullable: true })\n customerId?: string | null\n\n @Property({ name: 'customer_group_id', type: 'uuid', nullable: true })\n customerGroupId?: string | null\n\n @Property({ name: 'metadata', type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'starts_at', type: Date, nullable: true })\n startsAt?: Date | null\n\n @Property({ name: 'ends_at', type: Date, nullable: true })\n endsAt?: Date | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n}\n"],
5
- "mappings": ";;;;;;;;;;AAAA,SAAS,YAAY,qBAAqB;AAC1C,SAAS,QAAQ,OAAO,WAAW,WAAW,YAAY,UAAU,cAAc;AAmB/E;AADI,IAAM,8BAAN,MAAkC;AAAA,EAAlC;AA4BL,oBAAoB;AAGpB,qBAAkB,oBAAI,KAAK;AAG3B,qBAAkB,oBAAI,KAAK;AAAA;AAI7B;AAlCE;AAAA,EADC,WAAW,EAAE,MAAM,QAAQ,YAAY,oBAAoB,CAAC;AAAA,GAHlD,4BAIX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,mBAAmB,MAAM,OAAO,CAAC;AAAA,GANxC,4BAOX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,OAAO,CAAC;AAAA,GATlC,4BAUX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GAZf,4BAaX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,MAAM,OAAO,CAAC;AAAA,GAf7B,4BAgBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAlB/B,4BAmBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,UAAU,MAAM,QAAQ,CAAC;AAAA,GArBhC,4BAsBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,YAAY,MAAM,SAAS,UAAU,KAAK,CAAC;AAAA,GAxBlD,4BAyBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,WAAW,SAAS,KAAK,CAAC;AAAA,GA3BpD,4BA4BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GA9B7D,4BA+BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GAjC7D,4BAkCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,KAAK,CAAC;AAAA,GApCjD,4BAqCX;AArCW,8BAAN;AAAA,EATN,OAAO,EAAE,WAAW,iCAAiC,CAAC;AAAA,EACtD,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YAAY,CAAC,kBAAkB,UAAU;AAAA,EAC3C,CAAC;AAAA,EACA,OAAO;AAAA,IACN,MAAM;AAAA,IACN,YAAY,CAAC,kBAAkB,YAAY,MAAM;AAAA,EACnD,CAAC;AAAA,GACY;AA6CV;AADI,IAAM,iBAAN,MAAqB;AAAA,EAArB;AAyCL,uBAAkC;AAelC,oCAAmC;AAGnC,4BAA2B;AAG3B,2BAA6C;AAG7C,4BAA4B;AA0C5B,0BAA0B;AAG1B,oBAAoB;AAGpB,qBAAkB,oBAAI,KAAK;AAG3B,qBAAkB,oBAAI,KAAK;AAM3B,oBAAW,IAAI,WAAkC,IAAI;AAGrD,kBAAS,IAAI,WAAyB,IAAI;AAG1C,+BAAsB,IAAI,WAA6C,IAAI;AAG3E,0BAAiB,IAAI,WAAwC,IAAI;AAGjE,2BAAkB,IAAI,WAAyC,IAAI;AAAA;AACrE;AA5HE;AAAA,EADC,WAAW,EAAE,MAAM,QAAQ,YAAY,oBAAoB,CAAC;AAAA,GAVlD,eAWX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,mBAAmB,MAAM,OAAO,CAAC;AAAA,GAbxC,eAcX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,OAAO,CAAC;AAAA,GAhBlC,eAiBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GAnBf,eAoBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAtB/B,eAuBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAzB/B,eA0BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GA5B/B,eA6BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GA/B/B,eAgCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,eAAe,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAlCpD,eAmCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,YAAY,MAAM,WAAW,WAAW,GAAG,OAAO,GAAG,UAAU,KAAK,CAAC;AAAA,GArC5E,eAsCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,gBAAgB,MAAM,QAAQ,SAAS,SAAS,CAAC;AAAA,GAxCxD,eAyCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,mBAAmB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GA3CxD,eA4CX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,yBAAyB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GA9C9D,eA+CX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,gBAAgB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAjDrD,eAkDX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,sBAAsB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GApD3D,eAqDX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,+BAA+B,MAAM,WAAW,WAAW,IAAI,OAAO,GAAG,SAAS,IAAI,CAAC;AAAA,GAvD9F,eAwDX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,sBAAsB,MAAM,YAAY,SAAS,EAAE,CAAC;AAAA,GA1D3D,eA2DX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,qBAAqB,MAAM,QAAQ,SAAS,UAAU,CAAC;AAAA,GA7D9D,eA8DX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,sBAAsB,MAAM,WAAW,SAAS,MAAM,CAAC;AAAA,GAhE9D,eAiEX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,6BAA6B,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAnElE,eAoEX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,4BAA4B,MAAM,WAAW,WAAW,IAAI,OAAO,GAAG,UAAU,KAAK,CAAC;AAAA,GAtE7F,eAuEX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,oBAAoB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAzEzD,eA0EX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,qBAAqB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GA5E1D,eA6EX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,gBAAgB,MAAM,WAAW,WAAW,IAAI,OAAO,GAAG,UAAU,KAAK,CAAC;AAAA,GA/EjF,eAgFX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,eAAe,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAlFpD,eAmFX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,SAAS,UAAU,KAAK,CAAC;AAAA,GArFpD,eAsFX;AAQA;AAAA,EADC,SAAS,EAAE,MAAM,YAAY,MAAM,SAAS,UAAU,KAAK,CAAC;AAAA,GA7FlD,eA8FX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,wBAAwB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAhG7D,eAiGX;AAOA;AAAA,EALC,UAAU,MAAM,6BAA6B;AAAA,IAC5C,WAAW;AAAA,IACX,UAAU;AAAA,IACV,YAAY;AAAA,EACd,CAAC;AAAA,GAvGU,eAwGX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,mBAAmB,MAAM,WAAW,SAAS,MAAM,CAAC;AAAA,GA1G3D,eA2GX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,WAAW,SAAS,KAAK,CAAC;AAAA,GA7GpD,eA8GX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GAhH7D,eAiHX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GAnH7D,eAoHX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,KAAK,CAAC;AAAA,GAtHjD,eAuHX;AAGA;AAAA,EADC,UAAU,MAAM,uBAAuB,CAAC,YAAY,QAAQ,OAAO;AAAA,GAzHzD,eA0HX;AAGA;AAAA,EADC,UAAU,MAAM,cAAc,CAAC,UAAU,MAAM,OAAO;AAAA,GA5H5C,eA6HX;AAGA;AAAA,EADC,UAAU,MAAM,kCAAkC,CAAC,eAAe,WAAW,OAAO;AAAA,GA/H1E,eAgIX;AAGA;AAAA,EADC,UAAU,MAAM,6BAA6B,CAAC,eAAe,WAAW,OAAO;AAAA,GAlIrE,eAmIX;AAGA;AAAA,EADC,UAAU,MAAM,8BAA8B,CAAC,eAAe,WAAW,OAAO;AAAA,GArItE,eAsIX;AAtIW,iBAAN;AAAA,EAJN,OAAO,EAAE,WAAW,mBAAmB,CAAC;AAAA,EACxC,MAAM,EAAE,MAAM,mCAAmC,YAAY,CAAC,kBAAkB,UAAU,EAAE,CAAC;AAAA,EAC7F,OAAO,EAAE,MAAM,qCAAqC,YAAY,CAAC,kBAAkB,YAAY,KAAK,EAAE,CAAC;AAAA,EACvG,OAAO,EAAE,MAAM,wCAAwC,YAAY,CAAC,kBAAkB,YAAY,QAAQ,EAAE,CAAC;AAAA,GACjG;AAmJV;AADI,IAAM,+BAAN,MAAmC;AAAA,EAAnC;AAsBL,qBAAoB;AAGpB,oBAAoB;AAMpB,qBAAkB,oBAAI,KAAK;AAG3B,qBAAkB,oBAAI,KAAK;AAAA;AAI7B;AAlCE;AAAA,EADC,WAAW,EAAE,MAAM,QAAQ,YAAY,oBAAoB,CAAC;AAAA,GAHlD,6BAIX;AAGA;AAAA,EADC,UAAU,MAAM,gBAAgB,EAAE,WAAW,cAAc,YAAY,UAAU,CAAC;AAAA,GANxE,6BAOX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,mBAAmB,MAAM,OAAO,CAAC;AAAA,GATxC,6BAUX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,OAAO,CAAC;AAAA,GAZlC,6BAaX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,OAAO,CAAC;AAAA,GAflC,6BAgBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,kBAAkB,MAAM,WAAW,WAAW,IAAI,OAAO,GAAG,CAAC;AAAA,GAlBpE,6BAmBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,WAAW,SAAS,EAAE,CAAC;AAAA,GArBlD,6BAsBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,WAAW,SAAS,KAAK,CAAC;AAAA,GAxBpD,6BAyBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,YAAY,MAAM,SAAS,UAAU,KAAK,CAAC;AAAA,GA3BlD,6BA4BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GA9B7D,6BA+BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GAjC7D,6BAkCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,KAAK,CAAC;AAAA,GApCjD,6BAqCX;AArCW,+BAAN;AAAA,EATN,OAAO,EAAE,WAAW,mCAAmC,CAAC;AAAA,EACxD,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YAAY,CAAC,kBAAkB,YAAY,SAAS;AAAA,EACtD,CAAC;AAAA,EACA,OAAO;AAAA,IACN,MAAM;AAAA,IACN,YAAY,CAAC,WAAW,UAAU;AAAA,EACpC,CAAC;AAAA,GACY;AA4CV;AADI,IAAM,yBAAN,MAA6B;AAAA,EAA7B;AA+BL,iBAAgB;AAGhB,uBAAwB,CAAC;AAGzB,oBAAqB,CAAC;AAGtB,yBAA0B,CAAC;AAM3B,oBAAoB;AAGpB,qBAAkB,oBAAI,KAAK;AAG3B,qBAAkB,oBAAI,KAAK;AAM3B,uBAAc,IAAI,WAA6C,IAAI;AAAA;AACrE;AAvDE;AAAA,EADC,WAAW,EAAE,MAAM,QAAQ,YAAY,oBAAoB,CAAC;AAAA,GAHlD,uBAIX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,mBAAmB,MAAM,OAAO,CAAC;AAAA,GANxC,uBAOX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,OAAO,CAAC;AAAA,GATlC,uBAUX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GAZf,uBAaX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAf/B,uBAgBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAlB/B,uBAmBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GArBlD,uBAsBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,WAAW,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAxBhD,uBAyBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GA3BlD,uBA4BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,SAAS,EAAE,CAAC;AAAA,GA9B1B,uBA+BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,gBAAgB,MAAM,SAAS,SAAS,CAAC,GAAG,UAAU,MAAM,CAAC;AAAA,GAjCpE,uBAkCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,SAAS,SAAS,CAAC,GAAG,UAAU,MAAM,CAAC;AAAA,GApCjE,uBAqCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,kBAAkB,MAAM,SAAS,SAAS,CAAC,GAAG,UAAU,MAAM,CAAC;AAAA,GAvCtE,uBAwCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,YAAY,MAAM,SAAS,UAAU,KAAK,CAAC;AAAA,GA1ClD,uBA2CX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,WAAW,SAAS,KAAK,CAAC;AAAA,GA7CpD,uBA8CX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GAhD7D,uBAiDX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GAnD7D,uBAoDX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,KAAK,CAAC;AAAA,GAtDjD,uBAuDX;AAGA;AAAA,EADC,UAAU,MAAM,kCAAkC,CAAC,eAAe,WAAW,QAAQ;AAAA,GAzD3E,uBA0DX;AA1DW,yBAAN;AAAA,EAHN,OAAO,EAAE,WAAW,6BAA6B,CAAC;AAAA,EAClD,MAAM,EAAE,MAAM,wCAAwC,YAAY,CAAC,kBAAkB,UAAU,EAAE,CAAC;AAAA,EAClG,OAAO,EAAE,MAAM,0CAA0C,YAAY,CAAC,kBAAkB,YAAY,MAAM,EAAE,CAAC;AAAA,GACjG;AAuEV;AADI,IAAM,mCAAN,MAAuC;AAAA,EAAvC;AAmBL,oBAAmB;AAGnB,qBAAkB,oBAAI,KAAK;AAG3B,qBAAkB,oBAAI,KAAK;AAAA;AAC7B;AAtBE;AAAA,EADC,WAAW,EAAE,MAAM,QAAQ,YAAY,oBAAoB,CAAC;AAAA,GAHlD,iCAIX;AAGA;AAAA,EADC,UAAU,MAAM,gBAAgB,EAAE,WAAW,cAAc,YAAY,UAAU,CAAC;AAAA,GANxE,iCAOX;AAGA;AAAA,EADC,UAAU,MAAM,wBAAwB,EAAE,WAAW,eAAe,YAAY,UAAU,CAAC;AAAA,GATjF,iCAUX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,mBAAmB,MAAM,OAAO,CAAC;AAAA,GAZxC,iCAaX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,OAAO,CAAC;AAAA,GAflC,iCAgBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,YAAY,MAAM,OAAO,SAAS,EAAE,CAAC;AAAA,GAlB5C,iCAmBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GArB7D,iCAsBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GAxB7D,iCAyBX;AAzBW,mCAAN;AAAA,EATN,OAAO,EAAE,WAAW,uCAAuC,CAAC;AAAA,EAC5D,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YAAY,CAAC,kBAAkB,UAAU;AAAA,EAC3C,CAAC;AAAA,EACA,OAAO;AAAA,IACN,MAAM;AAAA,IACN,YAAY,CAAC,WAAW,UAAU;AAAA,EACpC,CAAC;AAAA,GACY;AAgCV;AADI,IAAM,oBAAN,MAAwB;AAAA,EAAxB;AAmBL,qBAAkB,oBAAI,KAAK;AAG3B,qBAAkB,oBAAI,KAAK;AAG3B,uBAAc,IAAI,WAAwC,IAAI;AAAA;AAChE;AAtBE;AAAA,EADC,WAAW,EAAE,MAAM,QAAQ,YAAY,oBAAoB,CAAC;AAAA,GAHlD,kBAIX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,mBAAmB,MAAM,OAAO,CAAC;AAAA,GANxC,kBAOX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,OAAO,CAAC;AAAA,GATlC,kBAUX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GAZf,kBAaX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GAff,kBAgBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GAlB7D,kBAmBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GArB7D,kBAsBX;AAGA;AAAA,EADC,UAAU,MAAM,6BAA6B,CAAC,eAAe,WAAW,GAAG;AAAA,GAxBjE,kBAyBX;AAzBW,oBAAN;AAAA,EAHN,OAAO,EAAE,WAAW,uBAAuB,CAAC;AAAA,EAC5C,MAAM,EAAE,MAAM,kCAAkC,YAAY,CAAC,kBAAkB,UAAU,EAAE,CAAC;AAAA,EAC5F,OAAO,EAAE,MAAM,oCAAoC,YAAY,CAAC,kBAAkB,YAAY,MAAM,EAAE,CAAC;AAAA,GAC3F;AAgCV;AADI,IAAM,8BAAN,MAAkC;AAAA,EAAlC;AAmBL,qBAAkB,oBAAI,KAAK;AAG3B,qBAAkB,oBAAI,KAAK;AAAA;AAC7B;AAnBE;AAAA,EADC,WAAW,EAAE,MAAM,QAAQ,YAAY,oBAAoB,CAAC;AAAA,GAHlD,4BAIX;AAGA;AAAA,EADC,UAAU,MAAM,gBAAgB,EAAE,WAAW,cAAc,YAAY,UAAU,CAAC;AAAA,GANxE,4BAOX;AAGA;AAAA,EADC,UAAU,MAAM,mBAAmB,EAAE,WAAW,UAAU,YAAY,UAAU,CAAC;AAAA,GATvE,4BAUX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,mBAAmB,MAAM,OAAO,CAAC;AAAA,GAZxC,4BAaX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,OAAO,CAAC;AAAA,GAflC,4BAgBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GAlB7D,4BAmBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GArB7D,4BAsBX;AAtBW,8BAAN;AAAA,EAHN,OAAO,EAAE,WAAW,kCAAkC,CAAC;AAAA,EACvD,MAAM,EAAE,MAAM,6CAA6C,YAAY,CAAC,kBAAkB,UAAU,EAAE,CAAC;AAAA,EACvG,OAAO,EAAE,MAAM,0CAA0C,YAAY,CAAC,WAAW,KAAK,EAAE,CAAC;AAAA,GAC7E;AAgCV;AADI,IAAM,eAAN,MAAmB;AAAA,EAAnB;AAkCL,oBAAoB;AAGpB,qBAAkB,oBAAI,KAAK;AAG3B,qBAAkB,oBAAI,KAAK;AAM3B,kBAAS,IAAI,WAAgC,IAAI;AAAA;AACnD;AA3CE;AAAA,EADC,WAAW,EAAE,MAAM,QAAQ,YAAY,oBAAoB,CAAC;AAAA,GAHlD,aAIX;AAGA;AAAA,EADC,UAAU,MAAM,gBAAgB,EAAE,WAAW,cAAc,YAAY,UAAU,CAAC;AAAA,GANxE,aAOX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,mBAAmB,MAAM,OAAO,CAAC;AAAA,GATxC,aAUX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,OAAO,CAAC;AAAA,GAZlC,aAaX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,OAAO,CAAC;AAAA,GAfnC,aAgBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GAlBf,aAmBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GArB/B,aAsBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,oBAAoB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAxBzD,aAyBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,qBAAqB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GA3B1D,aA4BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,YAAY,MAAM,SAAS,UAAU,KAAK,CAAC;AAAA,GA9BlD,aA+BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,WAAW,SAAS,KAAK,CAAC;AAAA,GAjCpD,aAkCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GApC7D,aAqCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GAvC7D,aAwCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,KAAK,CAAC;AAAA,GA1CjD,aA2CX;AAGA;AAAA,EADC,UAAU,MAAM,qBAAqB,CAAC,UAAU,MAAM,KAAK;AAAA,GA7CjD,aA8CX;AA9CW,eAAN;AAAA,EANN,OAAO,EAAE,WAAW,yBAAyB,CAAC;AAAA,EAC9C,MAAM,EAAE,MAAM,oCAAoC,YAAY,CAAC,kBAAkB,UAAU,EAAE,CAAC;AAAA,EAC9F,OAAO;AAAA,IACN,MAAM;AAAA,IACN,YAAY,CAAC,WAAW,kBAAkB,YAAY,WAAW;AAAA,EACnE,CAAC;AAAA,GACY;AAwDV;AADI,IAAM,wBAAN,MAA4B;AAAA,EAA5B;AA4BL,qBAAqB;AAGrB,oBAAoB;AAsCpB,qBAAkB,oBAAI,KAAK;AAG3B,qBAAkB,oBAAI,KAAK;AAM3B,kBAAS,IAAI,WAAgC,IAAI;AAIjD,8BAAqB,IAAI,WAA0C,IAAI;AAGvE,2BAAkB,IAAI,WAA0C,IAAI;AAAA;AAEtE;AAnFE;AAAA,EADC,WAAW,EAAE,MAAM,QAAQ,YAAY,oBAAoB,CAAC;AAAA,GAHlD,sBAIX;AAGA;AAAA,EADC,UAAU,MAAM,gBAAgB,EAAE,WAAW,aAAa,CAAC;AAAA,GANjD,sBAOX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,mBAAmB,MAAM,OAAO,CAAC;AAAA,GATxC,sBAUX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,OAAO,CAAC;AAAA,GAZlC,sBAaX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAf/B,sBAgBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAlB/B,sBAmBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GArB/B,sBAsBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAxB/B,sBAyBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,WAAW,SAAS,MAAM,CAAC;AAAA,GA3BtD,sBA4BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,WAAW,SAAS,KAAK,CAAC;AAAA,GA9BpD,sBA+BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,gBAAgB,MAAM,WAAW,WAAW,IAAI,OAAO,GAAG,UAAU,KAAK,CAAC;AAAA,GAjCjF,sBAkCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,eAAe,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GApCpD,sBAqCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,SAAS,UAAU,KAAK,CAAC;AAAA,GAvCpD,sBAwCX;AAQA;AAAA,EADC,SAAS,EAAE,MAAM,YAAY,MAAM,SAAS,UAAU,KAAK,CAAC;AAAA,GA/ClD,sBAgDX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,eAAe,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAlDpD,sBAmDX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,YAAY,MAAM,WAAW,WAAW,GAAG,OAAO,GAAG,UAAU,KAAK,CAAC;AAAA,GArD5E,sBAsDX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,iBAAiB,MAAM,SAAS,UAAU,KAAK,CAAC;AAAA,GAxDvD,sBAyDX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,oBAAoB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GA3DzD,sBA4DX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,qBAAqB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GA9D1D,sBA+DX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,wBAAwB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAjE7D,sBAkEX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GApE7D,sBAqEX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GAvE7D,sBAwEX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,KAAK,CAAC;AAAA,GA1EjD,sBA2EX;AAGA;AAAA,EADC,UAAU,MAAM,qBAAqB,CAAC,UAAU,MAAM,OAAO;AAAA,GA7EnD,sBA8EX;AAIA;AAAA,EADC,UAAU,MAAM,+BAA+B,CAAC,aAAa,SAAS,aAAa;AAAA,GAjFzE,sBAkFX;AAGA;AAAA,EADC,UAAU,MAAM,+BAA+B,CAAC,aAAa,SAAS,YAAY;AAAA,GApFxE,sBAqFX;AArFW,wBAAN;AAAA,EANN,OAAO,EAAE,WAAW,2BAA2B,CAAC;AAAA,EAChD,MAAM,EAAE,MAAM,sCAAsC,YAAY,CAAC,WAAW,kBAAkB,UAAU,EAAE,CAAC;AAAA,EAC3G,OAAO;AAAA,IACN,MAAM;AAAA,IACN,YAAY,CAAC,kBAAkB,YAAY,KAAK;AAAA,EAClD,CAAC;AAAA,GACY;AAuGV;AADI,IAAM,gCAAN,MAAoC;AAAA,EAApC;AAiCL,wBAA2C;AAG3C,sBAAsB;AAStB,oBAAmB;AAMnB,qBAAkB,oBAAI,KAAK;AAG3B,qBAAkB,oBAAI,KAAK;AAAA;AAC7B;AAnDE;AAAA,EADC,WAAW,EAAE,MAAM,QAAQ,YAAY,oBAAoB,CAAC;AAAA,GAHlD,8BAIX;AAMA;AAAA,EAJC,UAAU,MAAM,uBAAuB;AAAA,IACtC,WAAW;AAAA,IACX,YAAY;AAAA,EACd,CAAC;AAAA,GATU,8BAUX;AAOA;AAAA,EALC,UAAU,MAAM,uBAAuB;AAAA,IACtC,WAAW;AAAA,IACX,YAAY;AAAA,IACZ,UAAU;AAAA,EACZ,CAAC;AAAA,GAhBU,8BAiBX;AAOA;AAAA,EALC,UAAU,MAAM,gBAAgB;AAAA,IAC/B,WAAW;AAAA,IACX,UAAU;AAAA,IACV,YAAY;AAAA,EACd,CAAC;AAAA,GAvBU,8BAwBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,mBAAmB,MAAM,OAAO,CAAC;AAAA,GA1BxC,8BA2BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,OAAO,CAAC;AAAA,GA7BlC,8BA8BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,iBAAiB,MAAM,OAAO,CAAC;AAAA,GAhCtC,8BAiCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,eAAe,MAAM,WAAW,SAAS,MAAM,CAAC;AAAA,GAnCvD,8BAoCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,gBAAgB,MAAM,WAAW,UAAU,KAAK,CAAC;AAAA,GAtCxD,8BAuCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,gBAAgB,MAAM,WAAW,UAAU,KAAK,CAAC;AAAA,GAzCxD,8BA0CX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,WAAW,SAAS,EAAE,CAAC;AAAA,GA5C9B,8BA6CX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,YAAY,MAAM,SAAS,UAAU,KAAK,CAAC;AAAA,GA/ClD,8BAgDX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GAlD7D,8BAmDX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GArD7D,8BAsDX;AAtDW,gCAAN;AAAA,EAbN,OAAO,EAAE,WAAW,oCAAoC,CAAC;AAAA,EACzD,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YAAY,CAAC,iBAAiB,kBAAkB,UAAU;AAAA,EAC5D,CAAC;AAAA,EACA,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YAAY,CAAC,gBAAgB,kBAAkB,UAAU;AAAA,EAC3D,CAAC;AAAA,EACA,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YAAY,CAAC,gBAAgB,kBAAkB,UAAU;AAAA,EAC3D,CAAC;AAAA,GACY;AAmEV;AADI,IAAM,mBAAN,MAAuB;AAAA,EAAvB;AAmBL,uBAAuC;AAMvC,uBAAuB;AAGvB,oBAAoB;AAGpB,qBAAkB,oBAAI,KAAK;AAG3B,qBAAkB,oBAAI,KAAK;AAM3B,kBAAS,IAAI,WAAgC,IAAI;AAAA;AACnD;AArCE;AAAA,EADC,WAAW,EAAE,MAAM,QAAQ,YAAY,oBAAoB,CAAC;AAAA,GAHlD,iBAIX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,mBAAmB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GANxD,iBAOX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,OAAO,CAAC;AAAA,GATlC,iBAUX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GAZf,iBAaX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GAff,iBAgBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,gBAAgB,MAAM,QAAQ,SAAS,gBAAgB,CAAC;AAAA,GAlB/D,iBAmBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,iBAAiB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GArBtD,iBAsBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,gBAAgB,MAAM,WAAW,SAAS,MAAM,CAAC;AAAA,GAxBxD,iBAyBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,WAAW,SAAS,KAAK,CAAC;AAAA,GA3BpD,iBA4BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GA9B7D,iBA+BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GAjC7D,iBAkCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,KAAK,CAAC;AAAA,GApCjD,iBAqCX;AAGA;AAAA,EADC,UAAU,MAAM,qBAAqB,CAAC,UAAU,MAAM,SAAS;AAAA,GAvCrD,iBAwCX;AAxCW,mBAAN;AAAA,EATN,OAAO,EAAE,WAAW,sBAAsB,CAAC;AAAA,EAC3C,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YAAY,CAAC,UAAU;AAAA,EACzB,CAAC;AAAA,EACA,OAAO;AAAA,IACN,MAAM;AAAA,IACN,YAAY,CAAC,YAAY,MAAM;AAAA,EACjC,CAAC;AAAA,GACY;AAqDV;AADI,IAAM,sBAAN,MAA0B;AAAA,EAA1B;AA4BL,gBAAe;AAGf,uBAAsB;AA0CtB,qBAAkB,oBAAI,KAAK;AAG3B,qBAAkB,oBAAI,KAAK;AAAA;AAC7B;AAzEE;AAAA,EADC,WAAW,EAAE,MAAM,QAAQ,YAAY,oBAAoB,CAAC;AAAA,GAHlD,oBAIX;AAGA;AAAA,EADC,UAAU,MAAM,uBAAuB,EAAE,WAAW,cAAc,UAAU,KAAK,CAAC;AAAA,GANxE,oBAOX;AAGA;AAAA,EADC,UAAU,MAAM,gBAAgB,EAAE,WAAW,cAAc,UAAU,KAAK,CAAC;AAAA,GATjE,oBAUX;AAGA;AAAA,EADC,UAAU,MAAM,cAAc,EAAE,WAAW,YAAY,UAAU,KAAK,CAAC;AAAA,GAZ7D,oBAaX;AAGA;AAAA,EADC,UAAU,MAAM,kBAAkB,EAAE,WAAW,iBAAiB,YAAY,WAAW,CAAC;AAAA,GAf9E,oBAgBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,mBAAmB,MAAM,OAAO,CAAC;AAAA,GAlBxC,oBAmBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,OAAO,CAAC;AAAA,GArBlC,oBAsBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,iBAAiB,MAAM,OAAO,CAAC;AAAA,GAxBtC,oBAyBX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,MAAM,QAAQ,SAAS,UAAU,CAAC;AAAA,GA3BjD,oBA4BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,gBAAgB,MAAM,WAAW,SAAS,EAAE,CAAC;AAAA,GA9BpD,oBA+BX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,gBAAgB,MAAM,WAAW,UAAU,KAAK,CAAC;AAAA,GAjCxD,oBAkCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,kBAAkB,MAAM,WAAW,WAAW,IAAI,OAAO,GAAG,UAAU,KAAK,CAAC;AAAA,GApCnF,oBAqCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,oBAAoB,MAAM,WAAW,WAAW,IAAI,OAAO,GAAG,UAAU,KAAK,CAAC;AAAA,GAvCrF,oBAwCX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,YAAY,MAAM,WAAW,WAAW,GAAG,OAAO,GAAG,UAAU,KAAK,CAAC;AAAA,GA1C5E,oBA2CX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,WAAW,WAAW,IAAI,OAAO,GAAG,UAAU,KAAK,CAAC;AAAA,GA7C/E,oBA8CX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAhDnD,oBAiDX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,WAAW,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAnDhD,oBAoDX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,iBAAiB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAtDtD,oBAuDX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,eAAe,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GAzDpD,oBA0DX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,qBAAqB,MAAM,QAAQ,UAAU,KAAK,CAAC;AAAA,GA5D1D,oBA6DX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,YAAY,MAAM,SAAS,UAAU,KAAK,CAAC;AAAA,GA/DlD,oBAgEX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,aAAa,MAAM,MAAM,UAAU,KAAK,CAAC;AAAA,GAlEhD,oBAmEX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,WAAW,MAAM,MAAM,UAAU,KAAK,CAAC;AAAA,GArE9C,oBAsEX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GAxE7D,oBAyEX;AAGA;AAAA,EADC,SAAS,EAAE,MAAM,cAAc,MAAM,MAAM,UAAU,MAAM,oBAAI,KAAK,EAAE,CAAC;AAAA,GA3E7D,oBA4EX;AA5EW,sBAAN;AAAA,EATN,OAAO,EAAE,WAAW,iCAAiC,CAAC;AAAA,EACtD,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YAAY,CAAC,WAAW,kBAAkB,UAAU;AAAA,EACtD,CAAC;AAAA,EACA,MAAM;AAAA,IACL,MAAM;AAAA,IACN,YAAY,CAAC,WAAW,kBAAkB,UAAU;AAAA,EACtD,CAAC;AAAA,GACY;",
4
+ "sourcesContent": ["import { Collection, OptionalProps } from '@mikro-orm/core'\nimport { Entity, Index, ManyToOne, OneToMany, PrimaryKey, Property, Unique } from '@mikro-orm/decorators/legacy'\nimport type {\n CatalogExciseCategory,\n CatalogGtinType,\n CatalogHazmatPackingGroup,\n CatalogPriceDisplayMode,\n CatalogProductOptionSchema,\n CatalogProductRelationType,\n CatalogProductType,\n} from './types'\nimport type { ReferenceUnitCode } from '@open-mercato/shared/lib/units/unitCodes'\n\n@Entity({ tableName: 'catalog_product_option_schemas' })\n@Index({\n name: 'catalog_product_option_schemas_scope_idx',\n properties: ['organizationId', 'tenantId'],\n})\n@Unique({\n name: 'catalog_product_option_schemas_code_unique',\n properties: ['organizationId', 'tenantId', 'code'],\n})\nexport class CatalogOptionSchemaTemplate {\n [OptionalProps]?: 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ name: 'code', type: 'text' })\n code!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'schema', type: 'jsonb' })\n schema!: CatalogProductOptionSchema\n\n @Property({ name: 'metadata', type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'catalog_products' })\n@Index({ name: 'catalog_products_org_tenant_idx', properties: ['organizationId', 'tenantId'] })\n@Unique({ name: 'catalog_products_sku_scope_unique', properties: ['organizationId', 'tenantId', 'sku'] })\n@Unique({ name: 'catalog_products_handle_scope_unique', properties: ['organizationId', 'tenantId', 'handle'] })\nexport class CatalogProduct {\n [OptionalProps]?:\n | 'createdAt'\n | 'updatedAt'\n | 'deletedAt'\n | 'defaultSalesUnitQuantity'\n | 'uomRoundingScale'\n | 'uomRoundingMode'\n | 'unitPriceEnabled'\n | 'isExciseGood'\n | 'requiresPrescription'\n | 'containsLithiumBattery'\n | 'requiresShipping'\n | 'isQuoteOnly'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ type: 'text' })\n title!: string\n\n @Property({ type: 'text', nullable: true })\n subtitle?: string | null\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ type: 'text', nullable: true })\n sku?: string | null\n\n @Property({ type: 'text', nullable: true })\n handle?: string | null\n\n @Property({ name: 'tax_rate_id', type: 'uuid', nullable: true })\n taxRateId?: string | null\n\n @Property({ name: 'tax_rate', type: 'numeric', precision: 7, scale: 4, nullable: true })\n taxRate?: string | null\n\n @Property({ name: 'product_type', type: 'text', default: 'simple' })\n productType: CatalogProductType = 'simple'\n\n @Property({ name: 'status_entry_id', type: 'uuid', nullable: true })\n statusEntryId?: string | null\n\n @Property({ name: 'primary_currency_code', type: 'text', nullable: true })\n primaryCurrencyCode?: string | null\n\n @Property({ name: 'default_unit', type: 'text', nullable: true })\n defaultUnit?: string | null\n\n @Property({ name: 'default_sales_unit', type: 'text', nullable: true })\n defaultSalesUnit?: string | null\n\n @Property({ name: 'default_sales_unit_quantity', type: 'numeric', precision: 18, scale: 6, default: '1' })\n defaultSalesUnitQuantity: string = '1'\n\n @Property({ name: 'uom_rounding_scale', type: 'smallint', default: 4 })\n uomRoundingScale: number = 4\n\n @Property({ name: 'uom_rounding_mode', type: 'text', default: 'half_up' })\n uomRoundingMode: 'half_up' | 'down' | 'up' = 'half_up'\n\n @Property({ name: 'unit_price_enabled', type: 'boolean', default: false })\n unitPriceEnabled: boolean = false\n\n @Property({ name: 'unit_price_reference_unit', type: 'text', nullable: true })\n unitPriceReferenceUnit?: ReferenceUnitCode | null\n\n @Property({ name: 'unit_price_base_quantity', type: 'numeric', precision: 18, scale: 6, nullable: true })\n unitPriceBaseQuantity?: string | null\n\n @Property({ name: 'default_media_id', type: 'uuid', nullable: true })\n defaultMediaId?: string | null\n\n @Property({ name: 'default_media_url', type: 'text', nullable: true })\n defaultMediaUrl?: string | null\n\n @Property({ name: 'weight_value', type: 'numeric', precision: 16, scale: 4, nullable: true })\n weightValue?: string | null\n\n @Property({ name: 'weight_unit', type: 'text', nullable: true })\n weightUnit?: string | null\n\n @Property({ name: 'dimensions', type: 'jsonb', nullable: true })\n dimensions?: {\n width?: number | null\n height?: number | null\n depth?: number | null\n unit?: string | null\n } | null\n\n @Property({ name: 'country_of_origin_code', type: 'text', nullable: true })\n countryOfOriginCode?: string | null\n\n @Property({ name: 'pkwiu_code', type: 'text', nullable: true })\n pkwiuCode?: string | null\n\n @Property({ name: 'cn_code', type: 'text', nullable: true })\n cnCode?: string | null\n\n @Property({ name: 'hs_code', type: 'text', nullable: true })\n hsCode?: string | null\n\n @Property({ name: 'tax_classification_code', type: 'text', nullable: true })\n taxClassificationCode?: string | null\n\n @Property({ name: 'gtu_codes', type: 'text[]', nullable: true })\n gtuCodes?: string[] | null\n\n @Property({ name: 'age_min', type: 'smallint', nullable: true })\n ageMin?: number | null\n\n @Property({ name: 'is_excise_good', type: 'boolean', default: false })\n isExciseGood: boolean = false\n\n @Property({ name: 'excise_category', type: 'text', nullable: true })\n exciseCategory?: CatalogExciseCategory | null\n\n @Property({ name: 'requires_prescription', type: 'boolean', default: false })\n requiresPrescription: boolean = false\n\n @Property({ name: 'hazmat_class', type: 'text', nullable: true })\n hazmatClass?: string | null\n\n @Property({ name: 'un_number', type: 'text', nullable: true })\n unNumber?: string | null\n\n @Property({ name: 'hazmat_packing_group', type: 'text', nullable: true })\n hazmatPackingGroup?: CatalogHazmatPackingGroup | null\n\n @Property({ name: 'contains_lithium_battery', type: 'boolean', default: false })\n containsLithiumBattery: boolean = false\n\n @Property({ name: 'launch_at', type: Date, nullable: true })\n launchAt?: Date | null\n\n @Property({ name: 'end_of_life_at', type: Date, nullable: true })\n endOfLifeAt?: Date | null\n\n @Property({ name: 'available_from', type: Date, nullable: true })\n availableFrom?: Date | null\n\n @Property({ name: 'available_until', type: Date, nullable: true })\n availableUntil?: Date | null\n\n @Property({ name: 'min_order_qty', type: 'integer', nullable: true })\n minOrderQty?: number | null\n\n @Property({ name: 'max_order_qty', type: 'integer', nullable: true })\n maxOrderQty?: number | null\n\n @Property({ name: 'order_qty_increment', type: 'integer', nullable: true })\n orderQtyIncrement?: number | null\n\n @Property({ name: 'requires_shipping', type: 'boolean', default: true })\n requiresShipping: boolean = true\n\n @Property({ name: 'is_quote_only', type: 'boolean', default: false })\n isQuoteOnly: boolean = false\n\n @Property({ name: 'seo_title', type: 'text', nullable: true })\n seoTitle?: string | null\n\n @Property({ name: 'seo_description', type: 'text', nullable: true })\n seoDescription?: string | null\n\n @Property({ name: 'canonical_url', type: 'text', nullable: true })\n canonicalUrl?: string | null\n\n @Property({ name: 'metadata', type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'custom_fieldset_code', type: 'text', nullable: true })\n customFieldsetCode?: string | null\n\n @ManyToOne(() => CatalogOptionSchemaTemplate, {\n fieldName: 'option_schema_id',\n nullable: true,\n deleteRule: 'set null',\n })\n optionSchemaTemplate?: CatalogOptionSchemaTemplate | null\n\n @Property({ name: 'is_configurable', type: 'boolean', default: false })\n isConfigurable: boolean = false\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n\n @OneToMany(() => CatalogProductVariant, (variant) => variant.product)\n variants = new Collection<CatalogProductVariant>(this)\n\n @OneToMany(() => CatalogOffer, (offer) => offer.product)\n offers = new Collection<CatalogOffer>(this)\n\n @OneToMany(() => CatalogProductCategoryAssignment, (assignment) => assignment.product)\n categoryAssignments = new Collection<CatalogProductCategoryAssignment>(this)\n\n @OneToMany(() => CatalogProductTagAssignment, (assignment) => assignment.product)\n tagAssignments = new Collection<CatalogProductTagAssignment>(this)\n\n @OneToMany(() => CatalogProductUnitConversion, (conversion) => conversion.product)\n unitConversions = new Collection<CatalogProductUnitConversion>(this)\n}\n\n@Entity({ tableName: 'catalog_product_unit_conversions' })\n@Index({\n name: 'catalog_product_unit_conversions_scope_idx',\n properties: ['organizationId', 'tenantId', 'product'],\n})\n@Unique({\n name: 'catalog_product_unit_conversions_unique',\n properties: ['product', 'unitCode'],\n})\nexport class CatalogProductUnitConversion {\n [OptionalProps]?: 'createdAt' | 'updatedAt' | 'deletedAt' | 'sortOrder' | 'isActive'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @ManyToOne(() => CatalogProduct, { fieldName: 'product_id', deleteRule: 'cascade' })\n product!: CatalogProduct\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'unit_code', type: 'text' })\n unitCode!: string\n\n @Property({ name: 'to_base_factor', type: 'numeric', precision: 24, scale: 12 })\n toBaseFactor!: string\n\n @Property({ name: 'sort_order', type: 'integer', default: 0 })\n sortOrder: number = 0\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'metadata', type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n}\n\n@Entity({ tableName: 'catalog_product_categories' })\n@Index({ name: 'catalog_product_categories_scope_idx', properties: ['organizationId', 'tenantId'] })\n@Unique({ name: 'catalog_product_categories_slug_unique', properties: ['organizationId', 'tenantId', 'slug'] })\nexport class CatalogProductCategory {\n [OptionalProps]?: 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ type: 'text' })\n name!: string\n\n @Property({ type: 'text', nullable: true })\n slug?: string | null\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'parent_id', type: 'uuid', nullable: true })\n parentId?: string | null\n\n @Property({ name: 'root_id', type: 'uuid', nullable: true })\n rootId?: string | null\n\n @Property({ name: 'tree_path', type: 'text', nullable: true })\n treePath?: string | null\n\n @Property({ type: 'int', default: 0 })\n depth: number = 0\n\n @Property({ name: 'ancestor_ids', type: 'jsonb', default: [], nullable: false })\n ancestorIds: string[] = []\n\n @Property({ name: 'child_ids', type: 'jsonb', default: [], nullable: false })\n childIds: string[] = []\n\n @Property({ name: 'descendant_ids', type: 'jsonb', default: [], nullable: false })\n descendantIds: string[] = []\n\n @Property({ name: 'metadata', type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n\n @OneToMany(() => CatalogProductCategoryAssignment, (assignment) => assignment.category)\n assignments = new Collection<CatalogProductCategoryAssignment>(this)\n}\n\n@Entity({ tableName: 'catalog_product_category_assignments' })\n@Index({\n name: 'catalog_product_category_assignments_scope_idx',\n properties: ['organizationId', 'tenantId'],\n})\n@Unique({\n name: 'catalog_product_category_assignments_unique',\n properties: ['product', 'category'],\n})\nexport class CatalogProductCategoryAssignment {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @ManyToOne(() => CatalogProduct, { fieldName: 'product_id', deleteRule: 'cascade' })\n product!: CatalogProduct\n\n @ManyToOne(() => CatalogProductCategory, { fieldName: 'category_id', deleteRule: 'cascade' })\n category!: CatalogProductCategory\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'position', type: 'int', default: 0 })\n position: number = 0\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n}\n\n@Entity({ tableName: 'catalog_product_tags' })\n@Index({ name: 'catalog_product_tags_scope_idx', properties: ['organizationId', 'tenantId'] })\n@Unique({ name: 'catalog_product_tags_slug_unique', properties: ['organizationId', 'tenantId', 'slug'] })\nexport class CatalogProductTag {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ type: 'text' })\n label!: string\n\n @Property({ type: 'text' })\n slug!: string\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @OneToMany(() => CatalogProductTagAssignment, (assignment) => assignment.tag)\n assignments = new Collection<CatalogProductTagAssignment>(this)\n}\n\n@Entity({ tableName: 'catalog_product_tag_assignments' })\n@Index({ name: 'catalog_product_tag_assignments_scope_idx', properties: ['organizationId', 'tenantId'] })\n@Unique({ name: 'catalog_product_tag_assignments_unique', properties: ['product', 'tag'] })\nexport class CatalogProductTagAssignment {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @ManyToOne(() => CatalogProduct, { fieldName: 'product_id', deleteRule: 'cascade' })\n product!: CatalogProduct\n\n @ManyToOne(() => CatalogProductTag, { fieldName: 'tag_id', deleteRule: 'cascade' })\n tag!: CatalogProductTag\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n}\n\n@Entity({ tableName: 'catalog_product_offers' })\n@Index({ name: 'catalog_product_offers_scope_idx', properties: ['organizationId', 'tenantId'] })\n@Unique({\n name: 'catalog_product_offers_product_channel_unique',\n properties: ['product', 'organizationId', 'tenantId', 'channelId'],\n})\nexport class CatalogOffer {\n [OptionalProps]?: 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @ManyToOne(() => CatalogProduct, { fieldName: 'product_id', deleteRule: 'cascade' })\n product!: CatalogProduct\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'channel_id', type: 'uuid' })\n channelId!: string\n\n @Property({ type: 'text' })\n title!: string\n\n @Property({ type: 'text', nullable: true })\n description?: string | null\n\n @Property({ name: 'default_media_id', type: 'uuid', nullable: true })\n defaultMediaId?: string | null\n\n @Property({ name: 'default_media_url', type: 'text', nullable: true })\n defaultMediaUrl?: string | null\n\n @Property({ name: 'metadata', type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n\n @OneToMany(() => CatalogProductPrice, (price) => price.offer)\n prices = new Collection<CatalogProductPrice>(this)\n}\n\n@Entity({ tableName: 'catalog_product_variants' })\n@Index({ name: 'catalog_product_variants_scope_idx', properties: ['product', 'organizationId', 'tenantId'] })\n@Unique({\n name: 'catalog_product_variants_sku_unique',\n properties: ['organizationId', 'tenantId', 'sku'],\n})\n@Index({\n name: 'catalog_product_variants_gtin_scope_unique',\n expression:\n `create unique index \"catalog_product_variants_gtin_scope_unique\" on \"catalog_product_variants\" (\"tenant_id\", \"organization_id\", \"gtin_type\", \"barcode\") where deleted_at is null and gtin_type is not null and barcode is not null`,\n})\nexport class CatalogProductVariant {\n [OptionalProps]?: 'createdAt' | 'updatedAt' | 'deletedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @ManyToOne(() => CatalogProduct, { fieldName: 'product_id' })\n product!: CatalogProduct\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ type: 'text', nullable: true })\n name?: string | null\n\n @Property({ type: 'text', nullable: true })\n sku?: string | null\n\n @Property({ type: 'text', nullable: true })\n barcode?: string | null\n\n @Property({ name: 'gtin_type', type: 'text', nullable: true })\n gtinType?: CatalogGtinType | null\n\n @Property({ name: 'hs_code', type: 'text', nullable: true })\n hsCode?: string | null\n\n @Property({ type: 'text', nullable: true })\n statusEntryId?: string | null\n\n @Property({ name: 'is_default', type: 'boolean', default: false })\n isDefault: boolean = false\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'weight_value', type: 'numeric', precision: 16, scale: 4, nullable: true })\n weightValue?: string | null\n\n @Property({ name: 'weight_unit', type: 'text', nullable: true })\n weightUnit?: string | null\n\n @Property({ name: 'dimensions', type: 'jsonb', nullable: true })\n dimensions?: {\n width?: number | null\n height?: number | null\n depth?: number | null\n unit?: string | null\n } | null\n\n @Property({ name: 'metadata', type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'tax_rate_id', type: 'uuid', nullable: true })\n taxRateId?: string | null\n\n @Property({ name: 'tax_rate', type: 'numeric', precision: 7, scale: 4, nullable: true })\n taxRate?: string | null\n\n @Property({ name: 'option_values', type: 'jsonb', nullable: true })\n optionValues?: Record<string, string> | null\n\n @Property({ name: 'default_media_id', type: 'uuid', nullable: true })\n defaultMediaId?: string | null\n\n @Property({ name: 'default_media_url', type: 'text', nullable: true })\n defaultMediaUrl?: string | null\n\n @Property({ name: 'custom_fieldset_code', type: 'text', nullable: true })\n customFieldsetCode?: string | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n\n @OneToMany(() => CatalogProductPrice, (price) => price.variant)\n prices = new Collection<CatalogProductPrice>(this)\n\n\n @OneToMany(() => CatalogProductVariantRelation, (relation) => relation.parentVariant)\n componentRelations = new Collection<CatalogProductVariantRelation>(this)\n\n @OneToMany(() => CatalogProductVariantRelation, (relation) => relation.childVariant)\n parentRelations = new Collection<CatalogProductVariantRelation>(this)\n\n}\n\n@Entity({ tableName: 'catalog_product_variant_relations' })\n@Index({\n name: 'catalog_product_variant_relations_parent_idx',\n properties: ['parentVariant', 'organizationId', 'tenantId'],\n})\n@Index({\n name: 'catalog_product_variant_relations_child_idx',\n properties: ['childVariant', 'organizationId', 'tenantId'],\n})\n@Index({\n name: 'catalog_product_variant_relations_child_product_idx',\n properties: ['childProduct', 'organizationId', 'tenantId'],\n})\nexport class CatalogProductVariantRelation {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @ManyToOne(() => CatalogProductVariant, {\n fieldName: 'parent_variant_id',\n deleteRule: 'cascade',\n })\n parentVariant!: CatalogProductVariant\n\n @ManyToOne(() => CatalogProductVariant, {\n fieldName: 'child_variant_id',\n deleteRule: 'cascade',\n nullable: true,\n })\n childVariant?: CatalogProductVariant | null\n\n @ManyToOne(() => CatalogProduct, {\n fieldName: 'child_product_id',\n nullable: true,\n deleteRule: 'cascade',\n })\n childProduct?: CatalogProduct | null\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'relation_type', type: 'text' })\n relationType: CatalogProductRelationType = 'grouped'\n\n @Property({ name: 'is_required', type: 'boolean', default: false })\n isRequired: boolean = false\n\n @Property({ name: 'min_quantity', type: 'integer', nullable: true })\n minQuantity?: number | null\n\n @Property({ name: 'max_quantity', type: 'integer', nullable: true })\n maxQuantity?: number | null\n\n @Property({ type: 'integer', default: 0 })\n position: number = 0\n\n @Property({ name: 'metadata', type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n}\n\n@Entity({ tableName: 'catalog_price_kinds' })\n@Index({\n name: 'catalog_price_kinds_tenant_idx',\n properties: ['tenantId'],\n})\n@Unique({\n name: 'catalog_price_kinds_code_tenant_unique',\n properties: ['tenantId', 'code'],\n})\nexport class CatalogPriceKind {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @Property({ name: 'organization_id', type: 'uuid', nullable: true })\n organizationId?: string | null\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ type: 'text' })\n code!: string\n\n @Property({ type: 'text' })\n title!: string\n\n @Property({ name: 'display_mode', type: 'text', default: 'excluding-tax' })\n displayMode: CatalogPriceDisplayMode = 'excluding-tax'\n\n @Property({ name: 'currency_code', type: 'text', nullable: true })\n currencyCode?: string | null\n\n @Property({ name: 'is_promotion', type: 'boolean', default: false })\n isPromotion: boolean = false\n\n @Property({ name: 'is_active', type: 'boolean', default: true })\n isActive: boolean = true\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n\n @Property({ name: 'deleted_at', type: Date, nullable: true })\n deletedAt?: Date | null\n\n @OneToMany(() => CatalogProductPrice, (price) => price.priceKind)\n prices = new Collection<CatalogProductPrice>(this)\n}\n\n@Entity({ tableName: 'catalog_product_variant_prices' })\n@Index({\n name: 'catalog_product_variant_prices_variant_scope_idx',\n properties: ['variant', 'organizationId', 'tenantId'],\n})\n@Index({\n name: 'catalog_product_variant_prices_product_scope_idx',\n properties: ['product', 'organizationId', 'tenantId'],\n})\nexport class CatalogProductPrice {\n [OptionalProps]?: 'createdAt' | 'updatedAt'\n\n @PrimaryKey({ type: 'uuid', defaultRaw: 'gen_random_uuid()' })\n id!: string\n\n @ManyToOne(() => CatalogProductVariant, { fieldName: 'variant_id', nullable: true })\n variant?: CatalogProductVariant | null\n\n @ManyToOne(() => CatalogProduct, { fieldName: 'product_id', nullable: true })\n product?: CatalogProduct | null\n\n @ManyToOne(() => CatalogOffer, { fieldName: 'offer_id', nullable: true })\n offer?: CatalogOffer | null\n\n @ManyToOne(() => CatalogPriceKind, { fieldName: 'price_kind_id', deleteRule: 'restrict' })\n priceKind!: CatalogPriceKind\n\n @Property({ name: 'organization_id', type: 'uuid' })\n organizationId!: string\n\n @Property({ name: 'tenant_id', type: 'uuid' })\n tenantId!: string\n\n @Property({ name: 'currency_code', type: 'text' })\n currencyCode!: string\n\n @Property({ name: 'kind', type: 'text', default: 'regular' })\n kind: string = 'regular'\n\n @Property({ name: 'min_quantity', type: 'integer', default: 1 })\n minQuantity: number = 1\n\n @Property({ name: 'max_quantity', type: 'integer', nullable: true })\n maxQuantity?: number | null\n\n @Property({ name: 'unit_price_net', type: 'numeric', precision: 16, scale: 4, nullable: true })\n unitPriceNet?: string | null\n\n @Property({ name: 'unit_price_gross', type: 'numeric', precision: 16, scale: 4, nullable: true })\n unitPriceGross?: string | null\n\n @Property({ name: 'tax_rate', type: 'numeric', precision: 7, scale: 4, nullable: true })\n taxRate?: string | null\n\n @Property({ name: 'tax_amount', type: 'numeric', precision: 16, scale: 4, nullable: true })\n taxAmount?: string | null\n\n @Property({ name: 'channel_id', type: 'uuid', nullable: true })\n channelId?: string | null\n\n @Property({ name: 'user_id', type: 'uuid', nullable: true })\n userId?: string | null\n\n @Property({ name: 'user_group_id', type: 'uuid', nullable: true })\n userGroupId?: string | null\n\n @Property({ name: 'customer_id', type: 'uuid', nullable: true })\n customerId?: string | null\n\n @Property({ name: 'customer_group_id', type: 'uuid', nullable: true })\n customerGroupId?: string | null\n\n @Property({ name: 'metadata', type: 'jsonb', nullable: true })\n metadata?: Record<string, unknown> | null\n\n @Property({ name: 'starts_at', type: Date, nullable: true })\n startsAt?: Date | null\n\n @Property({ name: 'ends_at', type: Date, nullable: true })\n endsAt?: Date | null\n\n @Property({ name: 'created_at', type: Date, onCreate: () => new Date() })\n createdAt: Date = new Date()\n\n @Property({ name: 'updated_at', type: Date, onUpdate: () => new Date() })\n updatedAt: Date = new Date()\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -9,9 +9,37 @@ const CATALOG_PRODUCT_TYPES = [
9
9
  const CATALOG_CONFIGURABLE_PRODUCT_TYPES = ["configurable", "virtual", "downloadable"];
10
10
  const CATALOG_SUBPRODUCT_PRODUCT_TYPES = ["bundle", "grouped"];
11
11
  const CATALOG_PRODUCT_RELATION_TYPES = ["bundle", "grouped"];
12
+ const CATALOG_GTU_CODES = [
13
+ "GTU_01",
14
+ "GTU_02",
15
+ "GTU_03",
16
+ "GTU_04",
17
+ "GTU_05",
18
+ "GTU_06",
19
+ "GTU_07",
20
+ "GTU_08",
21
+ "GTU_09",
22
+ "GTU_10",
23
+ "GTU_11",
24
+ "GTU_12",
25
+ "GTU_13"
26
+ ];
27
+ const CATALOG_EXCISE_CATEGORIES = [
28
+ "alcohol",
29
+ "tobacco",
30
+ "energy_drink",
31
+ "fuel",
32
+ "other"
33
+ ];
34
+ const CATALOG_HAZMAT_PACKING_GROUPS = ["I", "II", "III"];
35
+ const CATALOG_GTIN_TYPES = ["ean13", "ean8", "upc", "isbn", "asin", "mpn"];
12
36
  const CATALOG_PRICE_DISPLAY_MODES = ["including-tax", "excluding-tax"];
13
37
  export {
14
38
  CATALOG_CONFIGURABLE_PRODUCT_TYPES,
39
+ CATALOG_EXCISE_CATEGORIES,
40
+ CATALOG_GTIN_TYPES,
41
+ CATALOG_GTU_CODES,
42
+ CATALOG_HAZMAT_PACKING_GROUPS,
15
43
  CATALOG_PRICE_DISPLAY_MODES,
16
44
  CATALOG_PRODUCT_RELATION_TYPES,
17
45
  CATALOG_PRODUCT_TYPES,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/modules/catalog/data/types.ts"],
4
- "sourcesContent": ["export const CATALOG_PRODUCT_TYPES = [\n 'simple',\n 'configurable',\n 'virtual',\n 'downloadable',\n 'bundle',\n 'grouped',\n] as const\n\nexport type CatalogProductType = (typeof CATALOG_PRODUCT_TYPES)[number]\n\nexport const CATALOG_CONFIGURABLE_PRODUCT_TYPES = ['configurable', 'virtual', 'downloadable'] as const\n\nexport const CATALOG_SUBPRODUCT_PRODUCT_TYPES = ['bundle', 'grouped'] as const\n\nexport type CatalogConfigurableProductType = (typeof CATALOG_CONFIGURABLE_PRODUCT_TYPES)[number]\n\nexport const CATALOG_PRODUCT_RELATION_TYPES = ['bundle', 'grouped'] as const\n\nexport type CatalogProductRelationType = (typeof CATALOG_PRODUCT_RELATION_TYPES)[number]\n\nexport type CatalogProductOptionChoice = {\n code: string\n label?: string | null\n}\n\nexport type CatalogProductOptionDefinition = {\n code: string\n label: string\n description?: string | null\n inputType: 'select' | 'text' | 'textarea' | 'number'\n isRequired?: boolean\n isMultiple?: boolean\n choices?: CatalogProductOptionChoice[]\n}\n\nexport type CatalogProductOptionSchema = {\n version?: number\n name?: string | null\n description?: string | null\n options: CatalogProductOptionDefinition[]\n}\n\nexport type CatalogPricingScope = {\n channelId?: string | null\n offerId?: string | null\n userId?: string | null\n userGroupId?: string | null\n customerId?: string | null\n customerGroupId?: string | null\n}\n\nexport const CATALOG_PRICE_DISPLAY_MODES = ['including-tax', 'excluding-tax'] as const\n\nexport type CatalogPriceDisplayMode = (typeof CATALOG_PRICE_DISPLAY_MODES)[number]\n"],
5
- "mappings": "AAAO,MAAM,wBAAwB;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,MAAM,qCAAqC,CAAC,gBAAgB,WAAW,cAAc;AAErF,MAAM,mCAAmC,CAAC,UAAU,SAAS;AAI7D,MAAM,iCAAiC,CAAC,UAAU,SAAS;AAmC3D,MAAM,8BAA8B,CAAC,iBAAiB,eAAe;",
4
+ "sourcesContent": ["export const CATALOG_PRODUCT_TYPES = [\n 'simple',\n 'configurable',\n 'virtual',\n 'downloadable',\n 'bundle',\n 'grouped',\n] as const\n\nexport type CatalogProductType = (typeof CATALOG_PRODUCT_TYPES)[number]\n\nexport const CATALOG_CONFIGURABLE_PRODUCT_TYPES = ['configurable', 'virtual', 'downloadable'] as const\n\nexport const CATALOG_SUBPRODUCT_PRODUCT_TYPES = ['bundle', 'grouped'] as const\n\nexport type CatalogConfigurableProductType = (typeof CATALOG_CONFIGURABLE_PRODUCT_TYPES)[number]\n\nexport const CATALOG_PRODUCT_RELATION_TYPES = ['bundle', 'grouped'] as const\n\nexport type CatalogProductRelationType = (typeof CATALOG_PRODUCT_RELATION_TYPES)[number]\n\nexport const CATALOG_GTU_CODES = [\n 'GTU_01',\n 'GTU_02',\n 'GTU_03',\n 'GTU_04',\n 'GTU_05',\n 'GTU_06',\n 'GTU_07',\n 'GTU_08',\n 'GTU_09',\n 'GTU_10',\n 'GTU_11',\n 'GTU_12',\n 'GTU_13',\n] as const\n\nexport type CatalogGtuCode = (typeof CATALOG_GTU_CODES)[number]\n\nexport const CATALOG_EXCISE_CATEGORIES = [\n 'alcohol',\n 'tobacco',\n 'energy_drink',\n 'fuel',\n 'other',\n] as const\n\nexport type CatalogExciseCategory = (typeof CATALOG_EXCISE_CATEGORIES)[number]\n\nexport const CATALOG_HAZMAT_PACKING_GROUPS = ['I', 'II', 'III'] as const\n\nexport type CatalogHazmatPackingGroup = (typeof CATALOG_HAZMAT_PACKING_GROUPS)[number]\n\nexport const CATALOG_GTIN_TYPES = ['ean13', 'ean8', 'upc', 'isbn', 'asin', 'mpn'] as const\n\nexport type CatalogGtinType = (typeof CATALOG_GTIN_TYPES)[number]\n\nexport type CatalogProductOptionChoice = {\n code: string\n label?: string | null\n}\n\nexport type CatalogProductOptionDefinition = {\n code: string\n label: string\n description?: string | null\n inputType: 'select' | 'text' | 'textarea' | 'number'\n isRequired?: boolean\n isMultiple?: boolean\n choices?: CatalogProductOptionChoice[]\n}\n\nexport type CatalogProductOptionSchema = {\n version?: number\n name?: string | null\n description?: string | null\n options: CatalogProductOptionDefinition[]\n}\n\nexport type CatalogPricingScope = {\n channelId?: string | null\n offerId?: string | null\n userId?: string | null\n userGroupId?: string | null\n customerId?: string | null\n customerGroupId?: string | null\n}\n\nexport const CATALOG_PRICE_DISPLAY_MODES = ['including-tax', 'excluding-tax'] as const\n\nexport type CatalogPriceDisplayMode = (typeof CATALOG_PRICE_DISPLAY_MODES)[number]\n"],
5
+ "mappings": "AAAO,MAAM,wBAAwB;AAAA,EACnC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,MAAM,qCAAqC,CAAC,gBAAgB,WAAW,cAAc;AAErF,MAAM,mCAAmC,CAAC,UAAU,SAAS;AAI7D,MAAM,iCAAiC,CAAC,UAAU,SAAS;AAI3D,MAAM,oBAAoB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,MAAM,4BAA4B;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,MAAM,gCAAgC,CAAC,KAAK,MAAM,KAAK;AAIvD,MAAM,qBAAqB,CAAC,SAAS,QAAQ,OAAO,QAAQ,QAAQ,KAAK;AAmCzE,MAAM,8BAA8B,CAAC,iBAAiB,eAAe;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,13 @@
1
1
  import { z } from "zod";
2
- import { CATALOG_PRICE_DISPLAY_MODES, CATALOG_PRODUCT_TYPES } from "./types.js";
2
+ import {
3
+ CATALOG_EXCISE_CATEGORIES,
4
+ CATALOG_GTIN_TYPES,
5
+ CATALOG_GTU_CODES,
6
+ CATALOG_HAZMAT_PACKING_GROUPS,
7
+ CATALOG_PRICE_DISPLAY_MODES,
8
+ CATALOG_PRODUCT_TYPES
9
+ } from "./types.js";
10
+ import { isValidGtin, normalizeGtinValue } from "../lib/gtin.js";
3
11
  import { REFERENCE_UNIT_CODES } from "../lib/unitCodes.js";
4
12
  import {
5
13
  getCatalogPriceAmountValidationMessage,
@@ -147,22 +155,76 @@ const productBaseSchema = scoped.extend({
147
155
  customFieldsetCode: slugSchema.nullable().optional(),
148
156
  isConfigurable: z.boolean().optional(),
149
157
  isActive: z.boolean().optional(),
158
+ countryOfOriginCode: z.string().trim().toUpperCase().regex(/^[A-Z]{2}$/, "catalog.products.validation.countryCodeInvalid").nullable().optional(),
159
+ pkwiuCode: z.string().trim().min(1).max(32).nullable().optional(),
160
+ cnCode: z.string().trim().min(1).max(32).nullable().optional(),
161
+ hsCode: z.string().trim().min(1).max(32).nullable().optional(),
162
+ taxClassificationCode: z.string().trim().min(1).max(64).nullable().optional(),
163
+ gtuCodes: z.array(z.enum(CATALOG_GTU_CODES)).max(13).transform((codes) => Array.from(new Set(codes)).sort()).nullable().optional(),
164
+ ageMin: z.coerce.number().int().min(0).max(120).nullable().optional(),
165
+ isExciseGood: z.boolean().optional(),
166
+ exciseCategory: z.enum(CATALOG_EXCISE_CATEGORIES).nullable().optional(),
167
+ requiresPrescription: z.boolean().optional(),
168
+ hazmatClass: z.string().trim().min(1).max(32).nullable().optional(),
169
+ unNumber: z.string().trim().regex(/^(?:UN)?[0-9]{4}$/i, "catalog.products.validation.unNumberInvalid").transform((value) => {
170
+ const upper = value.toUpperCase();
171
+ return upper.startsWith("UN") ? upper : `UN${upper}`;
172
+ }).nullable().optional(),
173
+ hazmatPackingGroup: z.enum(CATALOG_HAZMAT_PACKING_GROUPS).nullable().optional(),
174
+ containsLithiumBattery: z.boolean().optional(),
175
+ launchAt: z.coerce.date().nullable().optional(),
176
+ endOfLifeAt: z.coerce.date().nullable().optional(),
177
+ availableFrom: z.coerce.date().nullable().optional(),
178
+ availableUntil: z.coerce.date().nullable().optional(),
179
+ minOrderQty: z.coerce.number().int().min(1).nullable().optional(),
180
+ maxOrderQty: z.coerce.number().int().min(1).nullable().optional(),
181
+ orderQtyIncrement: z.coerce.number().int().min(1).nullable().optional(),
182
+ requiresShipping: z.boolean().optional(),
183
+ isQuoteOnly: z.boolean().optional(),
184
+ seoTitle: z.string().trim().min(1).max(255).nullable().optional(),
185
+ seoDescription: z.string().trim().min(1).max(1e3).nullable().optional(),
186
+ canonicalUrl: z.string().trim().max(500).regex(/^https?:\/\/\S+$/, "catalog.products.validation.canonicalUrlInvalid").nullable().optional(),
150
187
  metadata: metadataSchema,
151
188
  offers: z.array(offerInputSchema.omit({ id: true })).optional(),
152
189
  categoryIds: z.array(uuid()).max(100).optional(),
153
190
  tags: z.array(tagLabelSchema).max(100).optional()
154
191
  });
155
- const productCreateSchema = productBaseSchema.superRefine(productUomCrossFieldRefinement);
192
+ const productComplianceCrossFieldRefinement = (input, ctx) => {
193
+ if (input.minOrderQty != null && input.maxOrderQty != null && input.maxOrderQty < input.minOrderQty) {
194
+ ctx.addIssue({
195
+ code: z.ZodIssueCode.custom,
196
+ path: ["maxOrderQty"],
197
+ message: "catalog.products.validation.orderQtyRange"
198
+ });
199
+ }
200
+ if (input.launchAt && input.endOfLifeAt && input.endOfLifeAt < input.launchAt) {
201
+ ctx.addIssue({
202
+ code: z.ZodIssueCode.custom,
203
+ path: ["endOfLifeAt"],
204
+ message: "catalog.products.validation.lifecycleDateRange"
205
+ });
206
+ }
207
+ if (input.availableFrom && input.availableUntil && input.availableUntil < input.availableFrom) {
208
+ ctx.addIssue({
209
+ code: z.ZodIssueCode.custom,
210
+ path: ["availableUntil"],
211
+ message: "catalog.products.validation.availabilityDateRange"
212
+ });
213
+ }
214
+ };
215
+ const productCreateSchema = productBaseSchema.superRefine(productUomCrossFieldRefinement).superRefine(productComplianceCrossFieldRefinement);
156
216
  const productUpdateSchema = z.object({
157
217
  id: uuid()
158
218
  }).merge(productBaseSchema.partial()).extend({
159
219
  productType: productTypeSchema.optional()
160
- }).superRefine(productUomCrossFieldRefinement);
161
- const variantCreateSchema = scoped.extend({
220
+ }).superRefine(productUomCrossFieldRefinement).superRefine(productComplianceCrossFieldRefinement);
221
+ const variantBaseSchema = scoped.extend({
162
222
  productId: uuid(),
163
223
  name: z.string().trim().max(255).optional(),
164
224
  sku: z.string().trim().regex(/^[A-Za-z0-9\-_\.]+$/).max(191).optional(),
165
225
  barcode: z.string().trim().max(191).optional(),
226
+ gtinType: z.enum(CATALOG_GTIN_TYPES).nullable().optional(),
227
+ hsCode: z.string().trim().min(1).max(32).nullable().optional(),
166
228
  statusEntryId: uuid().optional(),
167
229
  isDefault: z.boolean().optional(),
168
230
  isActive: z.boolean().optional(),
@@ -182,9 +244,42 @@ const variantCreateSchema = scoped.extend({
182
244
  optionValues: variantOptionValuesSchema,
183
245
  customFieldsetCode: slugSchema.nullable().optional()
184
246
  });
247
+ const variantGtinRefinement = (mode) => (input, ctx) => {
248
+ const gtinType = input.gtinType;
249
+ if (!gtinType) return;
250
+ const barcode = input.barcode;
251
+ if (barcode === void 0) {
252
+ if (mode === "create") {
253
+ ctx.addIssue({
254
+ code: z.ZodIssueCode.custom,
255
+ path: ["barcode"],
256
+ message: "catalog.variants.validation.gtinBarcodeRequired"
257
+ });
258
+ }
259
+ return;
260
+ }
261
+ if (!barcode.trim().length) {
262
+ ctx.addIssue({
263
+ code: z.ZodIssueCode.custom,
264
+ path: ["barcode"],
265
+ message: "catalog.variants.validation.gtinBarcodeRequired"
266
+ });
267
+ return;
268
+ }
269
+ if (!isValidGtin(gtinType, normalizeGtinValue(gtinType, barcode))) {
270
+ ctx.addIssue({
271
+ code: z.ZodIssueCode.custom,
272
+ path: ["barcode"],
273
+ message: "catalog.variants.validation.gtinChecksum"
274
+ });
275
+ }
276
+ };
277
+ const variantCreateSchema = variantBaseSchema.superRefine(
278
+ variantGtinRefinement("create")
279
+ );
185
280
  const variantUpdateSchema = z.object({
186
281
  id: uuid()
187
- }).merge(variantCreateSchema.partial());
282
+ }).merge(variantBaseSchema.partial()).superRefine(variantGtinRefinement("update"));
188
283
  const optionSchemaTemplateCreateSchema = scoped.extend({
189
284
  name: z.string().trim().min(1).max(255),
190
285
  code: slugSchema.optional(),