@ozdao/martyrs 0.2.518 → 0.2.520

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 (509) hide show
  1. package/dist/_virtual/index.cjs +4 -4
  2. package/dist/_virtual/index.js +4 -4
  3. package/dist/_virtual/index2.cjs +4 -4
  4. package/dist/_virtual/index2.js +4 -4
  5. package/dist/{abac-Cf_9lCSh.js → abac-CnJsrv8S.js} +3 -3
  6. package/dist/{abac-6LjoG9u-.cjs → abac-DOyUjhee.cjs} +3 -3
  7. package/dist/builder.cjs +27 -25
  8. package/dist/builder.js +27 -25
  9. package/dist/chats.server.cjs +198 -1
  10. package/dist/chats.server.js +198 -1
  11. package/dist/{crud-sE7GLPbj.js → crud-BIFl1W1i.js} +6 -6
  12. package/dist/{crud-JN_LFj01.cjs → crud-CC6k6yY5.cjs} +6 -6
  13. package/dist/{globals.logger-CZMgIMlM.cjs → globals.logger-BuW7JHMY.cjs} +63 -53
  14. package/dist/{globals.logger-Bf6rRU7j.js → globals.logger-VRHh-WUW.js} +63 -53
  15. package/dist/{globals.observer-CV2wCzzh.cjs → globals.observer-C_FYclgV.cjs} +36 -1
  16. package/dist/{globals.observer-CDqUjVU5.js → globals.observer-MZsqaE6F.js} +36 -1
  17. package/dist/globals.server.cjs +1 -1
  18. package/dist/globals.server.js +1 -1
  19. package/dist/inventory.server.cjs +276 -376
  20. package/dist/inventory.server.js +276 -376
  21. package/dist/main-BM3GslOO.cjs +11 -0
  22. package/dist/{main-wmEhGVvD.js → main-Qcn7YlTx.js} +1834 -1830
  23. package/dist/martyrs/src/components/Address/{Address.vue2.cjs → Address.vue.cjs} +2 -2
  24. package/dist/martyrs/src/components/Address/{Address.vue2.js.map → Address.vue.cjs.map} +1 -1
  25. package/dist/martyrs/src/components/Address/{Address.vue2.js → Address.vue.js} +2 -2
  26. package/dist/martyrs/src/components/Address/Address.vue.js.map +1 -0
  27. package/dist/martyrs/src/components/Button/Button.vue.cjs +1 -1
  28. package/dist/martyrs/src/components/Button/Button.vue.cjs.map +1 -1
  29. package/dist/martyrs/src/components/Button/Button.vue.js +1 -1
  30. package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -1
  31. package/dist/martyrs/src/components/Chips/{Chips.vue.cjs → Chips.vue2.cjs} +2 -2
  32. package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +1 -0
  33. package/dist/martyrs/src/components/Chips/{Chips.vue.js → Chips.vue2.js} +2 -2
  34. package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +1 -0
  35. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs → Dropdown.vue2.cjs} +2 -2
  36. package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +1 -0
  37. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.js → Dropdown.vue2.js} +2 -2
  38. package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs.map → Dropdown.vue2.js.map} +1 -1
  39. package/dist/martyrs/src/components/EditImages/EditImages.vue.cjs +0 -93
  40. package/dist/martyrs/src/components/EditImages/EditImages.vue.cjs.map +1 -1
  41. package/dist/martyrs/src/components/EditImages/EditImages.vue.js +1 -94
  42. package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +1 -1
  43. package/dist/martyrs/src/components/EditImages/EditImages.vue2.cjs +93 -0
  44. package/dist/martyrs/src/components/EditImages/EditImages.vue2.cjs.map +1 -1
  45. package/dist/martyrs/src/components/EditImages/EditImages.vue2.js +94 -1
  46. package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +1 -1
  47. package/dist/martyrs/src/components/Feed/Feed.vue.cjs +2 -3
  48. package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
  49. package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -3
  50. package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
  51. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +1 -1
  52. package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +1 -1
  53. package/dist/martyrs/src/components/Loader/Loader.vue2.cjs +1 -1
  54. package/dist/martyrs/src/components/Loader/Loader.vue2.cjs.map +1 -1
  55. package/dist/martyrs/src/components/Loader/Loader.vue2.js +1 -1
  56. package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +1 -1
  57. package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue2.cjs → LocationMarker.vue.cjs} +2 -2
  58. package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue2.js.map → LocationMarker.vue.cjs.map} +1 -1
  59. package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue2.js → LocationMarker.vue.js} +2 -2
  60. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js.map +1 -0
  61. package/dist/martyrs/src/components/Select/{Select.vue2.cjs → Select.vue.cjs} +2 -2
  62. package/dist/martyrs/src/components/Select/{Select.vue2.js.map → Select.vue.cjs.map} +1 -1
  63. package/dist/martyrs/src/components/Select/{Select.vue2.js → Select.vue.js} +2 -2
  64. package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -0
  65. package/dist/martyrs/src/modules/auth/views/components/blocks/CardUser.vue.cjs +2 -2
  66. package/dist/martyrs/src/modules/auth/views/components/blocks/CardUser.vue.js +2 -2
  67. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +1 -1
  68. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs.map +1 -1
  69. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +1 -1
  70. package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js.map +1 -1
  71. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +2 -2
  72. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs.map +1 -1
  73. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +4 -4
  74. package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js.map +1 -1
  75. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +41 -51
  76. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -1
  77. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +59 -69
  78. package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
  79. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs +11 -13
  80. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs.map +1 -1
  81. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js +11 -13
  82. package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js.map +1 -1
  83. package/dist/martyrs/src/modules/auth/views/store/auth.cjs +10 -1
  84. package/dist/martyrs/src/modules/auth/views/store/auth.cjs.map +1 -1
  85. package/dist/martyrs/src/modules/auth/views/store/auth.js +10 -1
  86. package/dist/martyrs/src/modules/auth/views/store/auth.js.map +1 -1
  87. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs +6 -0
  88. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs.map +1 -1
  89. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +6 -0
  90. package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js.map +1 -1
  91. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.cjs +27 -11
  92. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.cjs.map +1 -1
  93. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js +28 -12
  94. package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js.map +1 -1
  95. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs +62 -0
  96. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs.map +1 -1
  97. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js +63 -1
  98. package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js.map +1 -1
  99. package/dist/martyrs/src/modules/chats/store/chat.store.cjs +60 -1
  100. package/dist/martyrs/src/modules/chats/store/chat.store.cjs.map +1 -1
  101. package/dist/martyrs/src/modules/chats/store/chat.store.js +60 -1
  102. package/dist/martyrs/src/modules/chats/store/chat.store.js.map +1 -1
  103. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
  104. package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
  105. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs +3 -3
  106. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs.map +1 -1
  107. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +3 -3
  108. package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
  109. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +2 -2
  110. package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
  111. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
  112. package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
  113. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs +50 -368
  114. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs.map +1 -1
  115. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js +53 -371
  116. package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js.map +1 -1
  117. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
  118. package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
  119. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
  120. package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
  121. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
  122. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs.map +1 -1
  123. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
  124. package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js.map +1 -1
  125. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +2 -3
  126. package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
  127. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +2 -3
  128. package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
  129. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +2 -2
  130. package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs.map +1 -1
  131. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +2 -2
  132. package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
  133. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +3 -3
  134. package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
  135. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +1 -1
  136. package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +1 -1
  137. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +2 -2
  138. package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
  139. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +2 -2
  140. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs.map +1 -1
  141. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +2 -2
  142. package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js.map +1 -1
  143. package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.cjs +2 -2
  144. package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.js +2 -2
  145. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
  146. package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
  147. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.cjs +16 -3
  148. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.cjs.map +1 -1
  149. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.js +17 -4
  150. package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.js.map +1 -1
  151. package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.cjs +1 -1
  152. package/dist/martyrs/src/modules/globals/views/mixins/mixins.cjs +7 -0
  153. package/dist/martyrs/src/modules/globals/views/mixins/mixins.cjs.map +1 -1
  154. package/dist/martyrs/src/modules/globals/views/mixins/mixins.js +7 -0
  155. package/dist/martyrs/src/modules/globals/views/mixins/mixins.js.map +1 -1
  156. package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +1 -1
  157. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +67 -43
  158. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs.map +1 -1
  159. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +68 -44
  160. package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js.map +1 -1
  161. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.cjs +22 -7
  162. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.cjs.map +1 -1
  163. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +23 -8
  164. package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js.map +1 -1
  165. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.cjs +47 -32
  166. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.cjs.map +1 -1
  167. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +48 -33
  168. package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js.map +1 -1
  169. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +47 -26
  170. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs.map +1 -1
  171. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +48 -27
  172. package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js.map +1 -1
  173. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +42 -52
  174. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs.map +1 -1
  175. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +43 -53
  176. package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js.map +1 -1
  177. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +18 -18
  178. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs.map +1 -1
  179. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +3 -3
  180. package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js.map +1 -1
  181. package/dist/martyrs/src/modules/inventory/store/{ inventory.store.cjs → inventory.store.cjs} +46 -2
  182. package/dist/martyrs/src/modules/inventory/store/inventory.store.cjs.map +1 -0
  183. package/dist/martyrs/src/modules/inventory/store/{ inventory.store.js → inventory.store.js} +46 -2
  184. package/dist/martyrs/src/modules/inventory/store/inventory.store.js.map +1 -0
  185. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +180 -19
  186. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs.map +1 -1
  187. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +181 -20
  188. package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js.map +1 -1
  189. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
  190. package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
  191. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +1 -1
  192. package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
  193. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +1 -1
  194. package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +1 -1
  195. package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +1 -1
  196. package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +1 -1
  197. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +1 -1
  198. package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +1 -1
  199. package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +1 -1
  200. package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +1 -1
  201. package/dist/martyrs/src/modules/music/router/music.cjs +1 -2
  202. package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -1
  203. package/dist/martyrs/src/modules/music/router/music.js +1 -2
  204. package/dist/martyrs/src/modules/music/router/music.js.map +1 -1
  205. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.cjs +2 -2
  206. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.cjs.map +1 -1
  207. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js +2 -2
  208. package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js.map +1 -1
  209. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +1 -1
  210. package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +1 -1
  211. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +1 -1
  212. package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +1 -1
  213. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
  214. package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
  215. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +3 -4
  216. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
  217. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +3 -4
  218. package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
  219. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.cjs +1 -1
  220. package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
  221. package/dist/martyrs/src/modules/orders/orders.client.cjs +2 -2
  222. package/dist/martyrs/src/modules/orders/orders.client.cjs.map +1 -1
  223. package/dist/martyrs/src/modules/orders/orders.client.js +2 -2
  224. package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
  225. package/dist/martyrs/src/modules/orders/router/customers.router.cjs +1 -1
  226. package/dist/martyrs/src/modules/orders/router/customers.router.cjs.map +1 -1
  227. package/dist/martyrs/src/modules/orders/router/customers.router.js +1 -1
  228. package/dist/martyrs/src/modules/orders/router/customers.router.js.map +1 -1
  229. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +2 -24
  230. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs.map +1 -1
  231. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +5 -27
  232. package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js.map +1 -1
  233. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
  234. package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
  235. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.cjs +4 -1
  236. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.cjs.map +1 -1
  237. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js +4 -1
  238. package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js.map +1 -1
  239. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +3 -3
  240. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs.map +1 -1
  241. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +3 -3
  242. package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js.map +1 -1
  243. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs +195 -0
  244. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs.map +1 -0
  245. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +195 -0
  246. package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js.map +1 -0
  247. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs +402 -0
  248. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs.map +1 -0
  249. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +402 -0
  250. package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js.map +1 -0
  251. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs +86 -0
  252. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs.map +1 -0
  253. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +86 -0
  254. package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js.map +1 -0
  255. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs +10 -10
  256. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs.map +1 -1
  257. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +11 -11
  258. package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js.map +1 -1
  259. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +279 -191
  260. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs.map +1 -1
  261. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +285 -197
  262. package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js.map +1 -1
  263. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +7 -7
  264. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
  265. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +7 -7
  266. package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
  267. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
  268. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs.map +1 -1
  269. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
  270. package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js.map +1 -1
  271. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
  272. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs.map +1 -1
  273. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
  274. package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
  275. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
  276. package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
  277. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +3 -3
  278. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs.map +1 -1
  279. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +3 -3
  280. package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js.map +1 -1
  281. package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.cjs +4 -4
  282. package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.cjs.map +1 -1
  283. package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.js +4 -4
  284. package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.js.map +1 -1
  285. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs +42 -41
  286. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs.map +1 -1
  287. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js +53 -52
  288. package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js.map +1 -1
  289. package/dist/martyrs/src/modules/organizations/organizations.client.cjs +23 -16
  290. package/dist/martyrs/src/modules/organizations/organizations.client.cjs.map +1 -1
  291. package/dist/martyrs/src/modules/organizations/organizations.client.js +35 -28
  292. package/dist/martyrs/src/modules/organizations/organizations.client.js.map +1 -1
  293. package/dist/martyrs/src/modules/organizations/router/departments.router.cjs +0 -18
  294. package/dist/martyrs/src/modules/organizations/router/departments.router.cjs.map +1 -1
  295. package/dist/martyrs/src/modules/organizations/router/departments.router.js +0 -18
  296. package/dist/martyrs/src/modules/organizations/router/departments.router.js.map +1 -1
  297. package/dist/martyrs/src/modules/organizations/store/departments.store.cjs +6 -0
  298. package/dist/martyrs/src/modules/organizations/store/departments.store.cjs.map +1 -0
  299. package/dist/martyrs/src/modules/organizations/store/departments.store.js +6 -0
  300. package/dist/martyrs/src/modules/organizations/store/departments.store.js.map +1 -0
  301. package/dist/martyrs/src/modules/organizations/store/invites.store.cjs +6 -0
  302. package/dist/martyrs/src/modules/organizations/store/invites.store.cjs.map +1 -0
  303. package/dist/martyrs/src/modules/organizations/store/invites.store.js +6 -0
  304. package/dist/martyrs/src/modules/organizations/store/invites.store.js.map +1 -0
  305. package/dist/martyrs/src/modules/organizations/store/memberships.store.cjs +20 -0
  306. package/dist/martyrs/src/modules/organizations/store/memberships.store.cjs.map +1 -0
  307. package/dist/martyrs/src/modules/organizations/store/memberships.store.js +20 -0
  308. package/dist/martyrs/src/modules/organizations/store/memberships.store.js.map +1 -0
  309. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +1 -1
  310. package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +1 -1
  311. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +3 -4
  312. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
  313. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +3 -4
  314. package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
  315. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -2
  316. package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
  317. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +1 -1
  318. package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
  319. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
  320. package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
  321. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +1 -1
  322. package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
  323. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +2 -2
  324. package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
  325. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +1 -1
  326. package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
  327. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
  328. package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
  329. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +3 -3
  330. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs.map +1 -1
  331. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +3 -3
  332. package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js.map +1 -1
  333. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
  334. package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
  335. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
  336. package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
  337. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +3 -3
  338. package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +3 -3
  339. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs +60 -272
  340. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs.map +1 -1
  341. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js +62 -274
  342. package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js.map +1 -1
  343. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
  344. package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
  345. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
  346. package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
  347. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +4 -4
  348. package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +4 -4
  349. package/dist/martyrs.cjs.js +1 -1
  350. package/dist/martyrs.css +1 -1
  351. package/dist/martyrs.es.js +1 -1
  352. package/dist/music.server.cjs +9 -9
  353. package/dist/music.server.js +9 -9
  354. package/dist/notifications.server.cjs +0 -24
  355. package/dist/notifications.server.js +0 -24
  356. package/dist/orders.server.cjs +3 -6
  357. package/dist/orders.server.js +3 -6
  358. package/dist/organizations.server.cjs +119 -43
  359. package/dist/organizations.server.js +119 -43
  360. package/dist/products.server.cjs +5 -5
  361. package/dist/products.server.js +5 -5
  362. package/dist/rents.server.cjs +3 -3
  363. package/dist/rents.server.js +3 -3
  364. package/dist/style.css +16 -17
  365. package/dist/wallet.server.cjs +2 -2
  366. package/dist/wallet.server.js +2 -2
  367. package/dist/{web-B5wZTKbK.cjs → web-B0cfxzgu.cjs} +1 -1
  368. package/dist/{web-520xCgXy.js → web-DVR8m2fm.js} +1 -1
  369. package/package.json +1 -1
  370. package/src/builder/modes/ssr.rspack.dev.js +20 -12
  371. package/src/builder/rspack/rspack.config.base.js +16 -15
  372. package/src/components/Button/Button.vue +1 -1
  373. package/src/components/Feed/Feed.old.vue +0 -1
  374. package/src/components/Feed/Feed.vue +1 -31
  375. package/src/components/Loader/Loader.vue +1 -1
  376. package/src/modules/auth/FIXES.md +61 -0
  377. package/src/modules/auth/PROMT.md +33 -0
  378. package/src/modules/auth/auth.server.js +1 -0
  379. package/src/modules/auth/views/components/blocks/CardUser.vue +2 -2
  380. package/src/modules/auth/views/components/layouts/Auth.vue +1 -1
  381. package/src/modules/auth/views/components/pages/Invite.vue +2 -2
  382. package/src/modules/auth/views/components/pages/Profile.vue +33 -48
  383. package/src/modules/auth/views/components/sections/SliderFeatures.vue +5 -7
  384. package/src/modules/auth/views/store/auth.js +16 -1
  385. package/src/modules/auth//320/220/320/240/320/245/320/230/320/242/320/225/320/232/320/242/320/243/320/240/320/220.md +445 -0
  386. package/src/modules/backoffice/components/partials/Sidebar.vue +6 -0
  387. package/src/modules/chats/CLAUDE.md +137 -0
  388. package/src/modules/chats/components/blocks/ChatMessage.vue +12 -0
  389. package/src/modules/chats/components/sections/ChatWindow.vue +84 -2
  390. package/src/modules/chats/controllers/chats.controller.js +187 -0
  391. package/src/modules/chats/models/chat.model.js +21 -0
  392. package/src/modules/chats/routes/chats.routes.js +46 -0
  393. package/src/modules/chats/store/chat.store.js +67 -0
  394. package/src/modules/community/components/layouts/Community.vue +2 -2
  395. package/src/modules/community/components/pages/Posts.vue +3 -328
  396. package/src/modules/events/components/pages/EditEventTickets.vue +1 -1
  397. package/src/modules/events/components/pages/Events.vue +2 -2
  398. package/src/modules/globals/controllers/classes/globals.cache.js +64 -55
  399. package/src/modules/globals/controllers/classes/globals.logger.js +40 -4
  400. package/src/modules/globals/controllers/classes/globals.observer.js +54 -4
  401. package/src/modules/globals/views/components/partials/Header.vue +1 -1
  402. package/src/modules/globals/views/components/partials/Sidebar.vue +17 -13
  403. package/src/modules/globals/views/mixins/mixins.js +7 -0
  404. package/src/modules/inventory/CLAUDE.md +330 -0
  405. package/src/modules/inventory/PROMT.md +25 -0
  406. package/src/modules/inventory/components/forms/AdjustmentForm.vue +53 -36
  407. package/src/modules/inventory/components/forms/ColumnSettingsMenu.vue +11 -6
  408. package/src/modules/inventory/components/forms/HistoryView.vue +21 -9
  409. package/src/modules/inventory/components/forms/StockAlertsForm.vue +33 -22
  410. package/src/modules/inventory/components/pages/Inventory.vue +40 -40
  411. package/src/modules/inventory/components/pages/InventoryEdit.vue +1 -1
  412. package/src/modules/inventory/docs/01-intro.md +126 -0
  413. package/src/modules/inventory/docs/02-architecture.md +266 -0
  414. package/src/modules/inventory/docs/03-components-and-relationships.md +338 -0
  415. package/src/modules/inventory/docs/04-business-logic-and-algorithms.md +376 -0
  416. package/src/modules/inventory/docs/05-api-specification.md +356 -0
  417. package/src/modules/inventory/docs/06-access-control.md +320 -0
  418. package/src/modules/inventory/inventory.server.js +6 -2
  419. package/src/modules/inventory/{services → middlewares}/inventory.verifier.js +5 -16
  420. package/src/modules/inventory/models/stock.availability.model.js +20 -7
  421. package/src/modules/inventory/routes/inventory.routes.js +14 -17
  422. package/src/modules/inventory/services/adjustment.service.js +137 -0
  423. package/src/modules/inventory/services/audit.service.js +160 -0
  424. package/src/modules/inventory/services/availability.service.js +323 -0
  425. package/src/modules/inventory/services/inventory.helpers.old.js +217 -0
  426. package/src/modules/inventory/store/{ inventory.store.js → inventory.store.js} +0 -14
  427. package/src/modules/inventory/workers/inventory.availability.worker.js +29 -30
  428. package/src/modules/marketplace/views/components/layouts/Marketplace.vue +160 -8
  429. package/src/modules/notifications/controllers/notifications.controller.js +0 -6
  430. package/src/modules/notifications/services/notification.service.js +1 -17
  431. package/src/modules/notifications/services/web-push.service.js +0 -2
  432. package/src/modules/orders/components/blocks/CardOrderBackoffice.vue +2 -2
  433. package/src/modules/orders/components/blocks/CardOrderVar1.vue +1 -1
  434. package/src/modules/orders/controllers/orders.controller.js +2 -4
  435. package/src/modules/orders/orders.client.js +2 -2
  436. package/src/modules/orders/router/customers.router.js +1 -1
  437. package/src/modules/organizations/CLAUDE.md +259 -0
  438. package/src/modules/organizations/components/blocks/CardDepartment.vue +1 -22
  439. package/src/modules/organizations/components/blocks/Socials.vue +1 -1
  440. package/src/modules/organizations/components/elements/ButtonToggleMembership.vue +3 -3
  441. package/src/modules/organizations/components/forms/AddExistingMembersForm.vue +191 -0
  442. package/src/modules/organizations/components/forms/DepartmentForm.vue +390 -0
  443. package/src/modules/organizations/components/forms/InviteForm.vue +81 -0
  444. package/src/modules/organizations/components/pages/Department.vue +10 -10
  445. package/src/modules/organizations/components/pages/DepartmentEdit.vue +8 -8
  446. package/src/modules/organizations/components/pages/Members.vue +265 -171
  447. package/src/modules/organizations/components/pages/Organization.new.vue +172 -183
  448. package/src/modules/organizations/components/pages/Organization.vue +6 -6
  449. package/src/modules/organizations/components/pages/OrganizationEdit.vue +1 -1
  450. package/src/modules/organizations/components/pages/Organizations.vue +1 -1
  451. package/src/modules/organizations/components/sections/Organizations.vue +2 -2
  452. package/src/modules/organizations/components/sections/Publics.vue +4 -4
  453. package/src/modules/organizations/configs/navigation.organization.config.js +40 -39
  454. package/src/modules/organizations/controllers/departments.controller.js +53 -34
  455. package/src/modules/organizations/controllers/invites.controller.js +44 -5
  456. package/src/modules/organizations/controllers/memberships.controller.js +43 -4
  457. package/src/modules/organizations/organizations.client.js +24 -15
  458. package/src/modules/organizations/router/departments.router.js +0 -18
  459. package/src/modules/organizations/routes/departments.routes.js +6 -8
  460. package/src/modules/organizations/routes/invites.routes.js +6 -4
  461. package/src/modules/organizations/routes/memberships.routes.js +6 -5
  462. package/src/modules/organizations/routes/organizations.routes.js +1 -1
  463. package/src/modules/organizations/store/departments.store.js +5 -0
  464. package/src/modules/organizations/store/invites.store.js +5 -0
  465. package/src/modules/organizations/store/memberships.store.js +23 -0
  466. package/src/modules/products/components/pages/Products.vue +0 -1
  467. package/src/modules/spots/components/blocks/CardSpot.vue +1 -1
  468. package/src/modules/spots/components/pages/Spots.vue +3 -203
  469. package/src/styles/base/all.scss +0 -15
  470. package/src/styles/responsive.scss +1 -31
  471. package/src/styles/typography.scss +20 -5
  472. package/dist/main-CSzPfQYR.cjs +0 -11
  473. package/dist/martyrs/src/components/Address/Address.vue2.cjs.map +0 -1
  474. package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +0 -1
  475. package/dist/martyrs/src/components/Chips/Chips.vue.js.map +0 -1
  476. package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +0 -1
  477. package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.cjs.map +0 -1
  478. package/dist/martyrs/src/components/Select/Select.vue2.cjs.map +0 -1
  479. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.cjs +0 -76
  480. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.cjs.map +0 -1
  481. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.js +0 -76
  482. package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.js.map +0 -1
  483. package/dist/martyrs/src/modules/inventory/store/ inventory.store.cjs.map +0 -1
  484. package/dist/martyrs/src/modules/inventory/store/ inventory.store.js.map +0 -1
  485. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +0 -280
  486. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs.map +0 -1
  487. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +0 -280
  488. package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js.map +0 -1
  489. package/dist/martyrs/src/modules/organizations/store/departments.cjs +0 -121
  490. package/dist/martyrs/src/modules/organizations/store/departments.cjs.map +0 -1
  491. package/dist/martyrs/src/modules/organizations/store/departments.js +0 -121
  492. package/dist/martyrs/src/modules/organizations/store/departments.js.map +0 -1
  493. package/dist/martyrs/src/modules/organizations/store/invites.cjs +0 -64
  494. package/dist/martyrs/src/modules/organizations/store/invites.cjs.map +0 -1
  495. package/dist/martyrs/src/modules/organizations/store/invites.js +0 -64
  496. package/dist/martyrs/src/modules/organizations/store/invites.js.map +0 -1
  497. package/dist/martyrs/src/modules/organizations/store/memberships.cjs +0 -87
  498. package/dist/martyrs/src/modules/organizations/store/memberships.cjs.map +0 -1
  499. package/dist/martyrs/src/modules/organizations/store/memberships.js +0 -87
  500. package/dist/martyrs/src/modules/organizations/store/memberships.js.map +0 -1
  501. package/src/modules/globals/controllers/classes/globals.websocket.ws.js +0 -102
  502. package/src/modules/globals/views/components/blocks/BlockFilter.vue +0 -60
  503. package/src/modules/inventory/docs/README.md +0 -291
  504. package/src/modules/inventory/models/stock.balance.model.js +0 -43
  505. package/src/modules/inventory/services/inventory.crud.js +0 -710
  506. package/src/modules/inventory/tests/inventory.test.js +0 -281
  507. package/src/modules/organizations/store/departments.js +0 -137
  508. package/src/modules/organizations/store/invites.js +0 -76
  509. package/src/modules/organizations/store/memberships.js +0 -110
@@ -3,12 +3,12 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const ownership_schema = require("./ownership.schema-D1p5XSpt.cjs");
4
4
  const authJwt = require("./authJwt-BIZ2GIfT.cjs");
5
5
  const globals_abac = require("./globals.abac-CPXLas7N.cjs");
6
- const globals_logger = require("./globals.logger-CZMgIMlM.cjs");
7
- const globals_observer = require("./globals.observer-CV2wCzzh.cjs");
8
6
  const queryProcessor = require("./queryProcessor-B_X680wC.cjs");
7
+ const globals_logger = require("./globals.logger-BuW7JHMY.cjs");
8
+ const globals_observer = require("./globals.observer-C_FYclgV.cjs");
9
9
  const globals_verifier = require("./globals.verifier-C0zj_LLo.cjs");
10
- const crud = require("./crud-JN_LFj01.cjs");
11
- const abac = require("./abac-6LjoG9u-.cjs");
10
+ const crud = require("./crud-CC6k6yY5.cjs");
11
+ const abac = require("./abac-DOyUjhee.cjs");
12
12
  const StockAdjustmentModel = (db) => {
13
13
  const StockAdjustmentSchema = new db.mongoose.Schema({
14
14
  product: {
@@ -66,40 +66,6 @@ const StockAdjustmentModel = (db) => {
66
66
  const StockAdjustment = db.mongoose.model("StockAdjustment", StockAdjustmentSchema);
67
67
  return StockAdjustment;
68
68
  };
69
- const StockBalanceModel = (db) => {
70
- const StockBalanceSchema = new db.mongoose.Schema({
71
- product: {
72
- type: db.mongoose.Schema.Types.ObjectId,
73
- ref: "Product",
74
- required: true
75
- },
76
- variant: {
77
- type: db.mongoose.Schema.Types.ObjectId,
78
- ref: "Variant"
79
- },
80
- storage: {
81
- type: db.mongoose.Schema.Types.ObjectId,
82
- ref: "Spot",
83
- required: true
84
- },
85
- quantity: {
86
- type: Number,
87
- default: 0
88
- }
89
- }, {
90
- timestamps: {
91
- currentTime: () => Date.now()
92
- }
93
- });
94
- ownership_schema.applyOwnershipSchema(StockBalanceSchema, db);
95
- StockBalanceSchema.index({ product: 1, variant: 1, storage: 1 }, { unique: true });
96
- StockBalanceSchema.index({ updatedAt: -1 });
97
- StockBalanceSchema.index({ storage: 1, variant: 1 });
98
- StockBalanceSchema.index({ storage: 1, product: 1 });
99
- StockBalanceSchema.index({ quantity: -1 });
100
- const StockBalance = db.mongoose.model("StockBalance", StockBalanceSchema);
101
- return StockBalance;
102
- };
103
69
  const StockAvailabilityModel = (db) => {
104
70
  const StockAvailabilitySchema = new db.mongoose.Schema({
105
71
  product: {
@@ -109,19 +75,19 @@ const StockAvailabilityModel = (db) => {
109
75
  },
110
76
  variant: {
111
77
  type: db.mongoose.Schema.Types.ObjectId,
112
- ref: "Variant",
113
- required: true
78
+ ref: "Variant"
114
79
  },
115
80
  storage: {
116
81
  type: db.mongoose.Schema.Types.ObjectId,
117
82
  ref: "Spot",
118
83
  required: true
119
84
  },
120
- // Computed availability
85
+ // Physical stock quantity (was in StockBalance)
121
86
  quantity: {
122
87
  type: Number,
123
88
  default: 0
124
89
  },
90
+ // Computed availability for sale
125
91
  available: {
126
92
  type: Number,
127
93
  default: 0
@@ -138,16 +104,22 @@ const StockAvailabilityModel = (db) => {
138
104
  stock: Number,
139
105
  required: Number,
140
106
  available: Number
141
- }]
107
+ }],
108
+ calculatedAt: {
109
+ type: Date,
110
+ default: Date.now
111
+ }
142
112
  }, {
143
113
  timestamps: {
144
114
  currentTime: () => Date.now()
145
115
  }
146
116
  });
147
- StockAvailabilitySchema.index(
148
- { product: 1, variant: 1, storage: 1 },
149
- { unique: true }
150
- );
117
+ ownership_schema.applyOwnershipSchema(StockAvailabilitySchema, db);
118
+ StockAvailabilitySchema.index({ product: 1, variant: 1, storage: 1 }, { unique: true });
119
+ StockAvailabilitySchema.index({ updatedAt: -1 });
120
+ StockAvailabilitySchema.index({ storage: 1, variant: 1 });
121
+ StockAvailabilitySchema.index({ storage: 1, product: 1 });
122
+ StockAvailabilitySchema.index({ quantity: -1 });
151
123
  StockAvailabilitySchema.index({ storage: 1 });
152
124
  StockAvailabilitySchema.index({ available: -1 });
153
125
  const StockAvailability = db.mongoose.model("StockAvailability", StockAvailabilitySchema);
@@ -246,49 +218,60 @@ const StockAlertModel = (db) => {
246
218
  const StockAlert = db.mongoose.model("StockAlert", StockAlertSchema);
247
219
  return StockAlert;
248
220
  };
249
- const controllerFactory = (db) => {
250
- const cache = new globals_logger.Cache({ ttlSeconds: 300 });
251
- const logger = new globals_logger.Logger(db);
252
- const observer = new globals_observer.Observer();
253
- async function recalculateAvailability(variantIds, storage, session) {
221
+ const availabilityServiceFactory = (db) => {
222
+ const cache = new globals_logger.CacheNamespaced({ ttlSeconds: 300 });
223
+ const logger = new globals_logger.LoggerNamespaced(db);
224
+ const collectAffectedVariants = async (products, variants, session) => {
225
+ const affectedVariants = /* @__PURE__ */ new Set();
226
+ variants?.forEach((v) => {
227
+ if (v) affectedVariants.add(v.toString());
228
+ });
229
+ if (products?.length) {
230
+ const dependentVariants = await db.variant.find({
231
+ "ingredients._id": { $in: products },
232
+ "ingredients.optional": { $ne: true }
233
+ }).distinct("_id").session(session);
234
+ dependentVariants.forEach((v) => affectedVariants.add(v.toString()));
235
+ }
236
+ return Array.from(affectedVariants);
237
+ };
238
+ const recalculateAvailability = async (variantIds, storage, session) => {
254
239
  const variants = await db.variant.find({
255
240
  _id: { $in: variantIds }
256
241
  }).session(session).lean();
257
242
  if (!variants.length) return;
258
243
  const allIngredientIds = /* @__PURE__ */ new Set();
259
- const variantMap = /* @__PURE__ */ new Map();
260
244
  variants.forEach((v) => {
261
- variantMap.set(v._id.toString(), v);
262
245
  v.ingredients?.forEach((ing) => {
263
246
  allIngredientIds.add(ing._id.toString());
264
247
  });
265
248
  });
266
- const balances = await db.stockBalance.find({
249
+ const availabilities = await db.stockAvailability.find({
267
250
  storage,
268
251
  $or: [
269
252
  { variant: { $in: variantIds } },
270
253
  { product: { $in: Array.from(allIngredientIds) } }
271
254
  ]
272
255
  }).session(session).lean();
273
- const balanceByVariant = /* @__PURE__ */ new Map();
274
- const balanceByProduct = /* @__PURE__ */ new Map();
275
- balances.forEach((b) => {
276
- if (b.variant) {
277
- balanceByVariant.set(b.variant.toString(), b.quantity);
278
- } else if (b.product) {
279
- balanceByProduct.set(b.product.toString(), b.quantity);
256
+ const quantityByVariant = /* @__PURE__ */ new Map();
257
+ const quantityByProduct = /* @__PURE__ */ new Map();
258
+ availabilities.forEach((a) => {
259
+ if (a.variant) {
260
+ quantityByVariant.set(a.variant.toString(), a.quantity);
261
+ } else if (a.product) {
262
+ quantityByProduct.set(a.product.toString(), a.quantity);
280
263
  }
281
264
  });
282
265
  const bulkOps = [];
283
266
  variants.forEach((variant) => {
284
267
  const variantId = variant._id.toString();
285
- const directStock = balanceByVariant.get(variantId) || 0;
268
+ const directStock = quantityByVariant.get(variantId) || 0;
286
269
  let available = directStock > 0 ? directStock : Infinity;
287
270
  const constraints = [];
288
271
  if (variant.ingredients?.length) {
289
272
  for (const ing of variant.ingredients) {
290
273
  if (ing.optional) continue;
291
- const stock = balanceByProduct.get(ing._id.toString()) || 0;
274
+ const stock = quantityByProduct.get(ing._id.toString()) || 0;
292
275
  const canMake = Math.floor(stock / (ing.quantity || 1));
293
276
  if (directStock === 0 || canMake < available) {
294
277
  available = canMake;
@@ -310,12 +293,12 @@ const controllerFactory = (db) => {
310
293
  update: {
311
294
  $set: {
312
295
  product: variant.product,
313
- quantity: directStock,
314
296
  available,
315
297
  constraints,
316
298
  calculatedAt: /* @__PURE__ */ new Date()
317
299
  },
318
300
  $setOnInsert: {
301
+ quantity: directStock,
319
302
  owner: variant.owner,
320
303
  creator: variant.creator
321
304
  }
@@ -328,7 +311,7 @@ const controllerFactory = (db) => {
328
311
  await db.stockAvailability.bulkWrite(bulkOps, { session });
329
312
  for (const variant of variants) {
330
313
  const variantId = variant._id.toString();
331
- const available = balanceByVariant.get(variantId) || 0;
314
+ const available = quantityByVariant.get(variantId) || 0;
332
315
  const alerts = await db.stockAlert.find({
333
316
  product: variant.product,
334
317
  enabled: true,
@@ -350,7 +333,7 @@ const controllerFactory = (db) => {
350
333
  },
351
334
  body: JSON.stringify({
352
335
  title: "Low Stock Alert",
353
- body: `Stock is low: ${available} units (threshold: ${alert.threshold})`,
336
+ body: `Stock for ${variant.name || "Product"} is low: ${available} units remaining (threshold: ${alert.threshold})`,
354
337
  type: "stock_alert",
355
338
  metadata: {
356
339
  alertId: alert._id,
@@ -370,20 +353,20 @@ const controllerFactory = (db) => {
370
353
  }
371
354
  }
372
355
  }
373
- }
374
- function invalidateCache(tags) {
356
+ };
357
+ const invalidateCache = (tags) => {
375
358
  setImmediate(() => {
376
359
  cache.delByTags(tags).catch(
377
360
  (err) => logger.error("Cache invalidation error", err)
378
361
  );
379
362
  });
380
- }
381
- function initChangeStreams() {
363
+ };
364
+ const initChangeStreams = () => {
382
365
  const variantStream = db.variant.watch([], { fullDocument: "updateLookup" });
383
366
  variantStream.on("change", async (change) => {
384
367
  if (change.operationType === "update" && change.updateDescription?.updatedFields?.ingredients) {
385
368
  const variantId = change.documentKey._id;
386
- const storages = await db.stockBalance.distinct("storage", {
369
+ const storages = await db.stockAvailability.distinct("storage", {
387
370
  variant: variantId
388
371
  });
389
372
  for (const storage of storages) {
@@ -395,154 +378,9 @@ const controllerFactory = (db) => {
395
378
  variantStream.on("error", (err) => {
396
379
  logger.error("Variant change stream error", err);
397
380
  });
398
- }
399
- initChangeStreams();
400
- const adjustments = {
401
- async read(req, res) {
402
- try {
403
- const cacheKey = JSON.stringify({ type: "adjustments", ...req.verifiedQuery });
404
- let data = await cache.get(cacheKey);
405
- if (!data) {
406
- const stages = [
407
- ...queryProcessor.queryProcessorGlobals.getBasicOptions(req.verifiedQuery),
408
- ...queryProcessor.queryProcessorGlobals.getFilterDate(req.verifiedQuery.dateStart, req.verifiedQuery.dateEnd),
409
- {
410
- $lookup: {
411
- from: "products",
412
- let: { productId: "$product" },
413
- pipeline: [
414
- { $match: { $expr: { $eq: ["$_id", "$$productId"] } } },
415
- { $project: { name: 1, sku: 1 } }
416
- ],
417
- as: "productData"
418
- }
419
- },
420
- { $unwind: { path: "$productData", preserveNullAndEmptyArrays: true } },
421
- ...queryProcessor.queryProcessorGlobals.getSortingOptions("createdAt", "desc"),
422
- ...queryProcessor.queryProcessorGlobals.getPaginationOptions(req.verifiedQuery.skip, req.verifiedQuery.limit)
423
- ];
424
- data = await db.stockAdjustment.aggregate(stages).exec();
425
- await cache.setWithTags(cacheKey, data, ["adjustments"]);
426
- }
427
- res.json(data);
428
- } catch (error) {
429
- logger.error("Error reading adjustments", error);
430
- res.status(500).json({ message: error.message });
431
- }
432
- },
433
- async create(req, res) {
434
- const session = await db.mongoose.startSession();
435
- session.startTransaction();
436
- try {
437
- const adjustmentData = {
438
- ...req.verifiedBody,
439
- creator: req.verifiedBody.creator || { type: "user", target: req.userId },
440
- owner: req.verifiedBody.owner
441
- };
442
- const [adjustment] = await db.stockAdjustment.create([adjustmentData], { session });
443
- const balance2 = await db.stockBalance.findOneAndUpdate(
444
- {
445
- product: adjustmentData.product,
446
- variant: adjustmentData.variant,
447
- storage: adjustmentData.storage
448
- },
449
- {
450
- $inc: { quantity: adjustmentData.quantity },
451
- $setOnInsert: {
452
- owner: adjustmentData.owner,
453
- creator: adjustmentData.creator
454
- }
455
- },
456
- { upsert: true, new: true, session }
457
- );
458
- const affectedVariants = /* @__PURE__ */ new Set();
459
- if (adjustmentData.variant) {
460
- affectedVariants.add(adjustmentData.variant.toString());
461
- }
462
- const dependentVariants = await db.variant.find({
463
- "ingredients._id": adjustmentData.product,
464
- "ingredients.optional": { $ne: true }
465
- }).distinct("_id").session(session);
466
- dependentVariants.forEach((v) => affectedVariants.add(v.toString()));
467
- if (affectedVariants.size) {
468
- await recalculateAvailability(
469
- Array.from(affectedVariants),
470
- adjustmentData.storage,
471
- session
472
- );
473
- }
474
- await session.commitTransaction();
475
- invalidateCache(["adjustments", "balance", "availability"]);
476
- setImmediate(() => {
477
- observer.notify("stock.adjusted", {
478
- adjustment,
479
- balance: balance2,
480
- affectedVariants: Array.from(affectedVariants)
481
- });
482
- });
483
- res.status(201).json(adjustment);
484
- } catch (error) {
485
- console.log(error);
486
- await session.abortTransaction();
487
- logger.error("Error creating adjustment", error);
488
- res.status(500).json({ message: error.message });
489
- } finally {
490
- session.endSession();
491
- }
492
- }
493
381
  };
494
- const balance = {
495
- async read(req, res) {
496
- try {
497
- const cacheKey = JSON.stringify({ type: "balance", ...req.verifiedQuery });
498
- let data = await cache.get(cacheKey);
499
- if (!data) {
500
- const pipeline = [
501
- {
502
- $match: {
503
- ...req.verifiedQuery.storage && { storage: new db.mongoose.Types.ObjectId(req.verifiedQuery.storage) },
504
- ...req.verifiedQuery.product && { product: new db.mongoose.Types.ObjectId(req.verifiedQuery.product) },
505
- quantity: { $gt: 0 }
506
- }
507
- },
508
- {
509
- $lookup: {
510
- from: "products",
511
- let: { pid: "$product" },
512
- pipeline: [
513
- { $match: { $expr: { $eq: ["$_id", "$$pid"] } } },
514
- { $project: { name: 1, sku: 1 } }
515
- ],
516
- as: "product"
517
- }
518
- },
519
- { $unwind: { path: "$product", preserveNullAndEmptyArrays: true } },
520
- {
521
- $lookup: {
522
- from: "spots",
523
- let: { sid: "$storage" },
524
- pipeline: [
525
- { $match: { $expr: { $eq: ["$_id", "$$sid"] } } },
526
- { $project: { name: 1, location: 1 } }
527
- ],
528
- as: "storage"
529
- }
530
- },
531
- { $unwind: { path: "$storage", preserveNullAndEmptyArrays: true } },
532
- { $limit: req.verifiedQuery.limit },
533
- { $skip: req.verifiedQuery.skip }
534
- ];
535
- data = await db.stockBalance.aggregate(pipeline).exec();
536
- await cache.setWithTags(cacheKey, data, ["balance"]);
537
- }
538
- res.json(data);
539
- } catch (error) {
540
- logger.error("Error reading balance", error);
541
- res.status(500).json({ message: error.message });
542
- }
543
- }
544
- };
545
- const availability = {
382
+ return {
383
+ // Public API for reading availability
546
384
  async read(req, res) {
547
385
  try {
548
386
  console.log("=== AVAILABILITY DEBUG ===");
@@ -576,18 +414,22 @@ const controllerFactory = (db) => {
576
414
  {
577
415
  $lookup: {
578
416
  from: "stockavailabilities",
579
- let: { productId: "$_id" },
417
+ let: { pid: "$_id" },
580
418
  pipeline: [
581
419
  {
582
420
  $match: {
583
- $expr: { $eq: ["$product", "$$productId"] },
584
- ...req.verifiedQuery?.storage && { storage: new db.mongoose.Types.ObjectId(req.verifiedQuery.storage) }
421
+ $expr: { $eq: ["$product", "$$pid"] },
422
+ ...req.verifiedQuery?.storage && {
423
+ storage: new db.mongoose.Types.ObjectId(req.verifiedQuery.storage)
424
+ }
585
425
  }
586
426
  }
587
427
  ],
588
428
  as: "availability"
589
429
  }
590
430
  },
431
+ { $skip: req.verifiedQuery?.skip || 0 },
432
+ { $limit: req.verifiedQuery?.limit || 20 },
591
433
  {
592
434
  $addFields: {
593
435
  available: { $sum: "$availability.available" },
@@ -604,32 +446,26 @@ const controllerFactory = (db) => {
604
446
  let: { pid: "$product" },
605
447
  pipeline: [
606
448
  { $match: { $expr: { $eq: ["$_id", "$$pid"] } } },
607
- { $project: { name: 1, sku: 1, price: 1, images: { $slice: ["$images", 1] } } }
449
+ {
450
+ $project: {
451
+ name: 1,
452
+ sku: 1,
453
+ unit: 1
454
+ }
455
+ }
608
456
  ],
609
- as: "product"
457
+ as: "productInfo"
610
458
  }
611
459
  },
612
- { $unwind: { path: "$product", preserveNullAndEmptyArrays: true } },
613
460
  {
614
- $lookup: {
615
- from: "variants",
616
- let: { vid: "$variant" },
617
- pipeline: [
618
- { $match: { $expr: { $eq: ["$_id", "$$vid"] } } },
619
- { $project: { name: 1, attributes: 1, price: 1 } }
620
- ],
621
- as: "variant"
461
+ $unwind: {
462
+ path: "$productInfo",
463
+ preserveNullAndEmptyArrays: true
622
464
  }
623
- },
624
- { $unwind: { path: "$variant", preserveNullAndEmptyArrays: true } }
465
+ }
625
466
  );
626
467
  }
627
- pipeline.push(
628
- { $sort: { available: -1 } },
629
- { $limit: req.verifiedQuery?.limit || 20 },
630
- { $skip: req.verifiedQuery?.skip || 0 }
631
- );
632
- data = await db.stockAvailability.aggregate(pipeline).allowDiskUse(true).exec();
468
+ data = await db.product.aggregate(pipeline).exec();
633
469
  await cache.setWithTags(cacheKey, data, ["availability"]);
634
470
  }
635
471
  res.json(data);
@@ -637,9 +473,178 @@ const controllerFactory = (db) => {
637
473
  logger.error("Error reading availability", error);
638
474
  res.status(500).json({ message: error.message });
639
475
  }
476
+ },
477
+ // Internal methods for other services
478
+ recalculateAvailability,
479
+ collectAffectedVariants,
480
+ invalidateCache,
481
+ initChangeStreams,
482
+ cache,
483
+ logger
484
+ };
485
+ };
486
+ const adjustmentServiceFactory = (db) => {
487
+ const cache = new globals_logger.CacheNamespaced({ ttlSeconds: 300 });
488
+ const logger = new globals_logger.LoggerNamespaced(db);
489
+ const observer = new globals_observer.ObserverNamespaced();
490
+ const availabilityService = availabilityServiceFactory(db);
491
+ const updateStockQuantity = async (product, variant, storage, quantity, owner, creator, session) => {
492
+ return await db.stockAvailability.findOneAndUpdate(
493
+ { product, variant, storage },
494
+ {
495
+ $inc: { quantity },
496
+ $setOnInsert: {
497
+ owner,
498
+ creator,
499
+ available: 0,
500
+ constraints: []
501
+ }
502
+ },
503
+ { upsert: true, new: true, session }
504
+ );
505
+ };
506
+ return {
507
+ async read(req, res) {
508
+ try {
509
+ const cacheKey = JSON.stringify({ type: "adjustments", ...req.verifiedQuery });
510
+ let data = await cache.get(cacheKey);
511
+ if (!data) {
512
+ const stages = [
513
+ ...queryProcessor.queryProcessorGlobals.getBasicOptions(req.verifiedQuery),
514
+ {
515
+ $lookup: {
516
+ from: "products",
517
+ let: { pid: "$product" },
518
+ pipeline: [
519
+ { $match: { $expr: { $eq: ["$_id", "$$pid"] } } },
520
+ {
521
+ $project: {
522
+ name: 1,
523
+ sku: 1,
524
+ unit: 1
525
+ }
526
+ }
527
+ ],
528
+ as: "productData"
529
+ }
530
+ },
531
+ {
532
+ $unwind: {
533
+ path: "$productData",
534
+ preserveNullAndEmptyArrays: true
535
+ }
536
+ },
537
+ queryProcessor.queryProcessorGlobals.getCreatorUserLookupStage(),
538
+ queryProcessor.queryProcessorGlobals.getAddFieldsCreatorOwnerStage(),
539
+ ...queryProcessor.queryProcessorGlobals.getSortingOptions("createdAt", "desc"),
540
+ ...queryProcessor.queryProcessorGlobals.getPaginationOptions(req.verifiedQuery.skip, req.verifiedQuery.limit)
541
+ ];
542
+ data = await db.stockAdjustment.aggregate(stages).exec();
543
+ await cache.setWithTags(cacheKey, data, ["adjustments"]);
544
+ }
545
+ res.json(data);
546
+ } catch (error) {
547
+ logger.error("Error reading adjustments", error);
548
+ res.status(500).json({ message: error.message });
549
+ }
550
+ },
551
+ async create(req, res) {
552
+ const session = await db.mongoose.startSession();
553
+ session.startTransaction();
554
+ try {
555
+ const adjustmentData = {
556
+ ...req.verifiedBody,
557
+ creator: req.verifiedBody.creator || { type: "user", target: req.userId },
558
+ owner: req.verifiedBody.owner
559
+ };
560
+ const [adjustment] = await db.stockAdjustment.create([adjustmentData], { session });
561
+ const availability = await updateStockQuantity(
562
+ adjustmentData.product,
563
+ adjustmentData.variant,
564
+ adjustmentData.storage,
565
+ adjustmentData.quantity,
566
+ adjustmentData.owner,
567
+ adjustmentData.creator,
568
+ session
569
+ );
570
+ const affectedVariants = await availabilityService.collectAffectedVariants(
571
+ [adjustmentData.product],
572
+ adjustmentData.variant ? [adjustmentData.variant] : [],
573
+ session
574
+ );
575
+ if (affectedVariants.length) {
576
+ await availabilityService.recalculateAvailability(affectedVariants, adjustmentData.storage, session);
577
+ }
578
+ await session.commitTransaction();
579
+ availabilityService.invalidateCache(["adjustments", "availability"]);
580
+ setImmediate(() => {
581
+ observer.notify("stock.adjusted", {
582
+ adjustment,
583
+ availability,
584
+ affectedVariants
585
+ });
586
+ });
587
+ res.status(201).json(adjustment);
588
+ } catch (error) {
589
+ console.log(error);
590
+ await session.abortTransaction();
591
+ logger.error("Error creating adjustment", error);
592
+ res.status(500).json({ message: error.message });
593
+ } finally {
594
+ session.endSession();
595
+ }
640
596
  }
641
597
  };
642
- const inventory = {
598
+ };
599
+ const auditServiceFactory = (db) => {
600
+ new globals_logger.CacheNamespaced({ ttlSeconds: 300 });
601
+ const logger = new globals_logger.LoggerNamespaced(db);
602
+ const observer = new globals_observer.ObserverNamespaced();
603
+ const availabilityService = availabilityServiceFactory(db);
604
+ async function processInventoryPositions(audit, session) {
605
+ await Promise.all(
606
+ audit.positions.map(
607
+ (position) => db.stockAdjustment.create([{
608
+ product: position.product,
609
+ variant: position.variant,
610
+ storage: audit.storage,
611
+ source: { type: "Inventory", target: audit._id },
612
+ reason: position.reason || "custom",
613
+ comment: position.comment,
614
+ quantity: position.quantity,
615
+ cost: position.cost,
616
+ creator: audit.creator,
617
+ owner: audit.owner
618
+ }], { session })
619
+ )
620
+ );
621
+ await db.stockAvailability.bulkWrite(
622
+ audit.positions.map((p) => ({
623
+ updateOne: {
624
+ filter: {
625
+ product: p.product,
626
+ variant: p.variant || null,
627
+ storage: audit.storage
628
+ },
629
+ update: {
630
+ $inc: { quantity: p.quantity },
631
+ $setOnInsert: {
632
+ owner: audit.owner,
633
+ creator: audit.creator,
634
+ available: 0,
635
+ constraints: []
636
+ }
637
+ },
638
+ upsert: true
639
+ }
640
+ })),
641
+ { session }
642
+ );
643
+ const products = audit.positions.map((p) => p.product);
644
+ const variants = audit.positions.filter((p) => p.variant).map((p) => p.variant);
645
+ return await availabilityService.collectAffectedVariants(products, variants, session);
646
+ }
647
+ return {
643
648
  async read(req, res) {
644
649
  try {
645
650
  const stages = [
@@ -667,57 +672,13 @@ const controllerFactory = (db) => {
667
672
  };
668
673
  const audit = await db.stockAudit.create([inventoryData], { session });
669
674
  if (req.verifiedBody.status === "published") {
670
- const auditDoc = audit[0];
671
- const adjustmentPromises = auditDoc.positions.map((position) => {
672
- return db.stockAdjustment.create([{
673
- product: position.product,
674
- variant: position.variant,
675
- storage: auditDoc.storage,
676
- source: { type: "Inventory", target: auditDoc._id },
677
- reason: position.reason || "custom",
678
- comment: position.comment,
679
- quantity: position.quantity,
680
- cost: position.cost,
681
- creator: auditDoc.creator,
682
- owner: auditDoc.owner
683
- }], { session });
684
- });
685
- await Promise.all(adjustmentPromises);
686
- const balanceOps = auditDoc.positions.map((p) => ({
687
- updateOne: {
688
- filter: {
689
- product: p.product,
690
- variant: p.variant || null,
691
- storage: auditDoc.storage
692
- },
693
- update: {
694
- $inc: { quantity: p.quantity },
695
- $setOnInsert: {
696
- owner: auditDoc.owner,
697
- creator: auditDoc.creator
698
- }
699
- },
700
- upsert: true
701
- }
702
- }));
703
- await db.stockBalance.bulkWrite(balanceOps, { session });
704
- const affectedVariants = /* @__PURE__ */ new Set();
705
- const affectedProducts = /* @__PURE__ */ new Set();
706
- auditDoc.positions.forEach((p) => {
707
- if (p.variant) affectedVariants.add(p.variant.toString());
708
- affectedProducts.add(p.product.toString());
709
- });
710
- const dependentVariants = await db.variant.find({
711
- "ingredients._id": { $in: Array.from(affectedProducts) },
712
- "ingredients.optional": { $ne: true }
713
- }).distinct("_id").session(session);
714
- dependentVariants.forEach((v) => affectedVariants.add(v.toString()));
715
- if (affectedVariants.size) {
716
- await recalculateAvailability(Array.from(affectedVariants), auditDoc.storage, session);
675
+ const affectedVariants = await processInventoryPositions(audit[0], session);
676
+ if (affectedVariants.length) {
677
+ await availabilityService.recalculateAvailability(affectedVariants, audit[0].storage, session);
717
678
  }
718
679
  }
719
680
  await session.commitTransaction();
720
- invalidateCache(["inventories", "balances", "availability"]);
681
+ availabilityService.invalidateCache(["inventories", "availability"]);
721
682
  res.status(201).json(audit[0]);
722
683
  } catch (error) {
723
684
  await session.abortTransaction();
@@ -731,72 +692,25 @@ const controllerFactory = (db) => {
731
692
  const session = await db.mongoose.startSession();
732
693
  session.startTransaction();
733
694
  try {
734
- const inventory2 = await db.stockAudit.findById(req.verifiedBody._id).session(session);
735
- if (!inventory2 || inventory2.status !== "draft") {
695
+ const inventory = await db.stockAudit.findById(req.verifiedBody._id).session(session);
696
+ if (!inventory || inventory.status !== "draft") {
736
697
  throw new Error("Invalid inventory status");
737
698
  }
738
- const adjustmentPromises = inventory2.positions.map((position) => {
739
- return db.stockAdjustment.create([{
740
- product: position.product,
741
- variant: position.variant,
742
- storage: inventory2.storage,
743
- source: { type: "Inventory", target: inventory2._id },
744
- reason: position.reason || "custom",
745
- comment: position.comment,
746
- quantity: position.quantity,
747
- cost: position.cost,
748
- creator: inventory2.creator,
749
- owner: inventory2.owner
750
- }], { session });
751
- });
752
- await Promise.all(adjustmentPromises);
753
- const bulkOps = inventory2.positions.map((p) => ({
754
- updateOne: {
755
- filter: {
756
- product: p.product,
757
- variant: p.variant || null,
758
- storage: inventory2.storage
759
- },
760
- update: {
761
- $inc: { quantity: p.quantity },
762
- $setOnInsert: {
763
- owner: inventory2.owner,
764
- creator: inventory2.creator
765
- }
766
- },
767
- upsert: true
768
- }
769
- }));
770
- await db.stockBalance.bulkWrite(bulkOps, { session });
771
- const affectedVariants = /* @__PURE__ */ new Set();
772
- const affectedProducts = /* @__PURE__ */ new Set();
773
- inventory2.positions.forEach((p) => {
774
- if (p.variant) affectedVariants.add(p.variant.toString());
775
- affectedProducts.add(p.product.toString());
776
- });
777
- const dependentVariants = await db.variant.find({
778
- "ingredients._id": { $in: Array.from(affectedProducts) },
779
- "ingredients.optional": { $ne: true }
780
- }).distinct("_id").session(session);
781
- dependentVariants.forEach((v) => affectedVariants.add(v.toString()));
782
- if (affectedVariants.size) {
783
- await recalculateAvailability(
784
- Array.from(affectedVariants),
785
- inventory2.storage,
786
- session
787
- );
699
+ const affectedVariants = await processInventoryPositions(inventory, session);
700
+ if (affectedVariants.length) {
701
+ await availabilityService.recalculateAvailability(affectedVariants, inventory.storage, session);
788
702
  }
789
- inventory2.status = "published";
790
- await inventory2.save({ session });
703
+ inventory.status = "published";
704
+ await inventory.save({ session });
791
705
  await session.commitTransaction();
792
- invalidateCache(["adjustments", "balance", "availability", "inventories"]);
706
+ availabilityService.invalidateCache(["adjustments", "availability", "inventories"]);
793
707
  setImmediate(() => {
794
708
  observer.notify("inventory.completed", {
795
- inventory: inventory2,
796
- affectedVariants: Array.from(affectedVariants)
709
+ inventory,
710
+ affectedVariants
797
711
  });
798
712
  });
799
- res.json(inventory2);
713
+ res.json(inventory);
800
714
  } catch (error) {
801
715
  await session.abortTransaction();
802
716
  logger.error("Error completing inventory", error);
@@ -806,7 +720,6 @@ const controllerFactory = (db) => {
806
720
  }
807
721
  }
808
722
  };
809
- return { adjustments, balance, availability, inventory };
810
723
  };
811
724
  function verifierFactory(db) {
812
725
  const adjustmentQueryConfig = {
@@ -838,7 +751,7 @@ function verifierFactory(db) {
838
751
  cost: { rule: "optional", validator: globals_verifier.Validator.schema().number().min(0) },
839
752
  comment: { rule: "optional", validator: globals_verifier.Validator.schema().string() }
840
753
  };
841
- const balanceQueryConfig = {
754
+ const queryConfig = {
842
755
  product: { rule: "optional", validator: globals_verifier.Validator.schema().string() },
843
756
  storage: { rule: "optional", validator: globals_verifier.Validator.schema().string() },
844
757
  skip: { rule: "optional", validator: globals_verifier.Validator.schema().integer().min(0), default: 0 },
@@ -865,7 +778,7 @@ function verifierFactory(db) {
865
778
  };
866
779
  const adjustmentQueryVerifier = new globals_verifier.Verifier(adjustmentQueryConfig);
867
780
  const adjustmentBodyVerifier = new globals_verifier.Verifier(adjustmentBodyConfig);
868
- const balanceQueryVerifier = new globals_verifier.Verifier(balanceQueryConfig);
781
+ const queryVerifier = new globals_verifier.Verifier(queryConfig);
869
782
  const inventoryBodyVerifier = new globals_verifier.Verifier(inventoryBodyConfig);
870
783
  return {
871
784
  verifyAdjustmentQuery: (req, res, next) => {
@@ -884,18 +797,8 @@ function verifierFactory(db) {
884
797
  req.verifiedBody = verification.verifiedData;
885
798
  next();
886
799
  },
887
- verifyBalanceQuery: (req, res, next) => {
888
- const verification = balanceQueryVerifier.verify(req.query);
889
- if (!verification.isValid) {
890
- return res.status(400).json({ errors: verification.verificationErrors });
891
- }
892
- verification.verifiedData.skip = parseInt(verification.verifiedData.skip) || 0;
893
- verification.verifiedData.limit = parseInt(verification.verifiedData.limit) || 50;
894
- req.verifiedQuery = verification.verifiedData;
895
- next();
896
- },
897
800
  verifyAvailabilityQuery: (req, res, next) => {
898
- const verification = balanceQueryVerifier.verify(req.query);
801
+ const verification = queryVerifier.verify(req.query);
899
802
  if (!verification.isValid) {
900
803
  return res.status(400).json({ errors: verification.verificationErrors });
901
804
  }
@@ -905,7 +808,7 @@ function verifierFactory(db) {
905
808
  next();
906
809
  },
907
810
  verifyInventoryQuery: (req, res, next) => {
908
- const verification = balanceQueryVerifier.verify(req.query);
811
+ const verification = queryVerifier.verify(req.query);
909
812
  if (!verification.isValid) {
910
813
  return res.status(400).json({ errors: verification.verificationErrors });
911
814
  }
@@ -1102,50 +1005,46 @@ function inventoryRoutes(app, db) {
1102
1005
  const jwt = authJwt.middlewareFactory(db);
1103
1006
  const verifier = verifierFactory();
1104
1007
  const abac2 = getInstance$1(db);
1105
- const controller = controllerFactory(db);
1008
+ const adjustmentService = adjustmentServiceFactory(db);
1009
+ const availabilityService = availabilityServiceFactory(db);
1010
+ const auditService = auditServiceFactory(db);
1106
1011
  app.get(
1107
1012
  "/api/inventory/adjustments",
1108
1013
  jwt.verifyToken(true),
1109
1014
  verifier.verifyAdjustmentQuery,
1110
- controller.adjustments.read
1015
+ adjustmentService.read
1111
1016
  );
1112
1017
  app.post(
1113
1018
  "/api/inventory/adjustments/create",
1114
1019
  jwt.verifyToken(),
1115
1020
  verifier.verifyAdjustmentBody,
1116
1021
  abac2.middleware("stockAdjustment", "create"),
1117
- controller.adjustments.create
1118
- );
1119
- app.get(
1120
- "/api/inventory/balance",
1121
- jwt.verifyToken(true),
1122
- verifier.verifyBalanceQuery,
1123
- controller.balance.read
1022
+ adjustmentService.create
1124
1023
  );
1125
1024
  app.get(
1126
1025
  "/api/inventory/availability",
1127
1026
  verifier.verifyAvailabilityQuery,
1128
- controller.availability.read
1027
+ availabilityService.read
1129
1028
  );
1130
1029
  app.get(
1131
1030
  "/api/inventory/audits",
1132
1031
  jwt.verifyToken(),
1133
1032
  verifier.verifyInventoryQuery,
1134
- controller.inventory.read
1033
+ auditService.read
1135
1034
  );
1136
1035
  app.post(
1137
1036
  "/api/inventory/audits/create",
1138
1037
  jwt.verifyToken(),
1139
1038
  verifier.verifyInventoryBody,
1140
1039
  abac2.middleware("stockAudit", "create"),
1141
- controller.inventory.create
1040
+ auditService.create
1142
1041
  );
1143
1042
  app.post(
1144
1043
  "/api/inventory/audits/complete",
1145
1044
  jwt.verifyToken(),
1146
1045
  verifier.verifyInventoryComplete,
1147
1046
  abac2.middleware("stockAudit", "edit"),
1148
- controller.inventory.complete
1047
+ auditService.complete
1149
1048
  );
1150
1049
  setupStockAlertsRoutes(app, db);
1151
1050
  }
@@ -1156,13 +1055,14 @@ function inventoryPolicies(db) {
1156
1055
  }
1157
1056
  function initializeInventory(app, db, origins, publicPath) {
1158
1057
  db.stockAdjustment = StockAdjustmentModel(db);
1159
- db.stockBalance = StockBalanceModel(db);
1160
1058
  db.stockAvailability = StockAvailabilityModel(db);
1161
1059
  db.stockAudit = StockAuditModel(db);
1162
1060
  db.stockAlert = StockAlertModel(db);
1163
1061
  if (app) {
1164
1062
  inventoryRoutes(app, db);
1165
1063
  inventoryPolicies(db);
1064
+ const availabilityService = availabilityServiceFactory(db);
1065
+ availabilityService.initChangeStreams();
1166
1066
  }
1167
1067
  }
1168
1068
  const inventory_server = { initialize: initializeInventory };