@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
@@ -1,12 +1,12 @@
1
1
  import { a as applyOwnershipSchema } from "./ownership.schema-BqH4v5vH.js";
2
2
  import { m as middlewareFactory } from "./authJwt-J1csaMWA.js";
3
3
  import { g as globalsabac } from "./globals.abac-DNdtSYop.js";
4
- import { C as Cache, L as Logger } from "./globals.logger-Bf6rRU7j.js";
5
- import { O as Observer } from "./globals.observer-CDqUjVU5.js";
6
4
  import { q as queryProcessorGlobals } from "./queryProcessor-CVcLPEnv.js";
5
+ import { C as CacheNamespaced, L as LoggerNamespaced } from "./globals.logger-VRHh-WUW.js";
6
+ import { O as ObserverNamespaced } from "./globals.observer-MZsqaE6F.js";
7
7
  import { a as Validator, V as Verifier } from "./globals.verifier-DFqKQ7hK.js";
8
- import { C as CRUD } from "./crud-sE7GLPbj.js";
9
- import { A as ABAC } from "./abac-Cf_9lCSh.js";
8
+ import { C as CRUD } from "./crud-BIFl1W1i.js";
9
+ import { A as ABAC } from "./abac-CnJsrv8S.js";
10
10
  const StockAdjustmentModel = (db) => {
11
11
  const StockAdjustmentSchema = new db.mongoose.Schema({
12
12
  product: {
@@ -64,40 +64,6 @@ const StockAdjustmentModel = (db) => {
64
64
  const StockAdjustment = db.mongoose.model("StockAdjustment", StockAdjustmentSchema);
65
65
  return StockAdjustment;
66
66
  };
67
- const StockBalanceModel = (db) => {
68
- const StockBalanceSchema = new db.mongoose.Schema({
69
- product: {
70
- type: db.mongoose.Schema.Types.ObjectId,
71
- ref: "Product",
72
- required: true
73
- },
74
- variant: {
75
- type: db.mongoose.Schema.Types.ObjectId,
76
- ref: "Variant"
77
- },
78
- storage: {
79
- type: db.mongoose.Schema.Types.ObjectId,
80
- ref: "Spot",
81
- required: true
82
- },
83
- quantity: {
84
- type: Number,
85
- default: 0
86
- }
87
- }, {
88
- timestamps: {
89
- currentTime: () => Date.now()
90
- }
91
- });
92
- applyOwnershipSchema(StockBalanceSchema, db);
93
- StockBalanceSchema.index({ product: 1, variant: 1, storage: 1 }, { unique: true });
94
- StockBalanceSchema.index({ updatedAt: -1 });
95
- StockBalanceSchema.index({ storage: 1, variant: 1 });
96
- StockBalanceSchema.index({ storage: 1, product: 1 });
97
- StockBalanceSchema.index({ quantity: -1 });
98
- const StockBalance = db.mongoose.model("StockBalance", StockBalanceSchema);
99
- return StockBalance;
100
- };
101
67
  const StockAvailabilityModel = (db) => {
102
68
  const StockAvailabilitySchema = new db.mongoose.Schema({
103
69
  product: {
@@ -107,19 +73,19 @@ const StockAvailabilityModel = (db) => {
107
73
  },
108
74
  variant: {
109
75
  type: db.mongoose.Schema.Types.ObjectId,
110
- ref: "Variant",
111
- required: true
76
+ ref: "Variant"
112
77
  },
113
78
  storage: {
114
79
  type: db.mongoose.Schema.Types.ObjectId,
115
80
  ref: "Spot",
116
81
  required: true
117
82
  },
118
- // Computed availability
83
+ // Physical stock quantity (was in StockBalance)
119
84
  quantity: {
120
85
  type: Number,
121
86
  default: 0
122
87
  },
88
+ // Computed availability for sale
123
89
  available: {
124
90
  type: Number,
125
91
  default: 0
@@ -136,16 +102,22 @@ const StockAvailabilityModel = (db) => {
136
102
  stock: Number,
137
103
  required: Number,
138
104
  available: Number
139
- }]
105
+ }],
106
+ calculatedAt: {
107
+ type: Date,
108
+ default: Date.now
109
+ }
140
110
  }, {
141
111
  timestamps: {
142
112
  currentTime: () => Date.now()
143
113
  }
144
114
  });
145
- StockAvailabilitySchema.index(
146
- { product: 1, variant: 1, storage: 1 },
147
- { unique: true }
148
- );
115
+ applyOwnershipSchema(StockAvailabilitySchema, db);
116
+ StockAvailabilitySchema.index({ product: 1, variant: 1, storage: 1 }, { unique: true });
117
+ StockAvailabilitySchema.index({ updatedAt: -1 });
118
+ StockAvailabilitySchema.index({ storage: 1, variant: 1 });
119
+ StockAvailabilitySchema.index({ storage: 1, product: 1 });
120
+ StockAvailabilitySchema.index({ quantity: -1 });
149
121
  StockAvailabilitySchema.index({ storage: 1 });
150
122
  StockAvailabilitySchema.index({ available: -1 });
151
123
  const StockAvailability = db.mongoose.model("StockAvailability", StockAvailabilitySchema);
@@ -244,49 +216,60 @@ const StockAlertModel = (db) => {
244
216
  const StockAlert = db.mongoose.model("StockAlert", StockAlertSchema);
245
217
  return StockAlert;
246
218
  };
247
- const controllerFactory = (db) => {
248
- const cache = new Cache({ ttlSeconds: 300 });
249
- const logger = new Logger(db);
250
- const observer = new Observer();
251
- async function recalculateAvailability(variantIds, storage, session) {
219
+ const availabilityServiceFactory = (db) => {
220
+ const cache = new CacheNamespaced({ ttlSeconds: 300 });
221
+ const logger = new LoggerNamespaced(db);
222
+ const collectAffectedVariants = async (products, variants, session) => {
223
+ const affectedVariants = /* @__PURE__ */ new Set();
224
+ variants?.forEach((v) => {
225
+ if (v) affectedVariants.add(v.toString());
226
+ });
227
+ if (products?.length) {
228
+ const dependentVariants = await db.variant.find({
229
+ "ingredients._id": { $in: products },
230
+ "ingredients.optional": { $ne: true }
231
+ }).distinct("_id").session(session);
232
+ dependentVariants.forEach((v) => affectedVariants.add(v.toString()));
233
+ }
234
+ return Array.from(affectedVariants);
235
+ };
236
+ const recalculateAvailability = async (variantIds, storage, session) => {
252
237
  const variants = await db.variant.find({
253
238
  _id: { $in: variantIds }
254
239
  }).session(session).lean();
255
240
  if (!variants.length) return;
256
241
  const allIngredientIds = /* @__PURE__ */ new Set();
257
- const variantMap = /* @__PURE__ */ new Map();
258
242
  variants.forEach((v) => {
259
- variantMap.set(v._id.toString(), v);
260
243
  v.ingredients?.forEach((ing) => {
261
244
  allIngredientIds.add(ing._id.toString());
262
245
  });
263
246
  });
264
- const balances = await db.stockBalance.find({
247
+ const availabilities = await db.stockAvailability.find({
265
248
  storage,
266
249
  $or: [
267
250
  { variant: { $in: variantIds } },
268
251
  { product: { $in: Array.from(allIngredientIds) } }
269
252
  ]
270
253
  }).session(session).lean();
271
- const balanceByVariant = /* @__PURE__ */ new Map();
272
- const balanceByProduct = /* @__PURE__ */ new Map();
273
- balances.forEach((b) => {
274
- if (b.variant) {
275
- balanceByVariant.set(b.variant.toString(), b.quantity);
276
- } else if (b.product) {
277
- balanceByProduct.set(b.product.toString(), b.quantity);
254
+ const quantityByVariant = /* @__PURE__ */ new Map();
255
+ const quantityByProduct = /* @__PURE__ */ new Map();
256
+ availabilities.forEach((a) => {
257
+ if (a.variant) {
258
+ quantityByVariant.set(a.variant.toString(), a.quantity);
259
+ } else if (a.product) {
260
+ quantityByProduct.set(a.product.toString(), a.quantity);
278
261
  }
279
262
  });
280
263
  const bulkOps = [];
281
264
  variants.forEach((variant) => {
282
265
  const variantId = variant._id.toString();
283
- const directStock = balanceByVariant.get(variantId) || 0;
266
+ const directStock = quantityByVariant.get(variantId) || 0;
284
267
  let available = directStock > 0 ? directStock : Infinity;
285
268
  const constraints = [];
286
269
  if (variant.ingredients?.length) {
287
270
  for (const ing of variant.ingredients) {
288
271
  if (ing.optional) continue;
289
- const stock = balanceByProduct.get(ing._id.toString()) || 0;
272
+ const stock = quantityByProduct.get(ing._id.toString()) || 0;
290
273
  const canMake = Math.floor(stock / (ing.quantity || 1));
291
274
  if (directStock === 0 || canMake < available) {
292
275
  available = canMake;
@@ -308,12 +291,12 @@ const controllerFactory = (db) => {
308
291
  update: {
309
292
  $set: {
310
293
  product: variant.product,
311
- quantity: directStock,
312
294
  available,
313
295
  constraints,
314
296
  calculatedAt: /* @__PURE__ */ new Date()
315
297
  },
316
298
  $setOnInsert: {
299
+ quantity: directStock,
317
300
  owner: variant.owner,
318
301
  creator: variant.creator
319
302
  }
@@ -326,7 +309,7 @@ const controllerFactory = (db) => {
326
309
  await db.stockAvailability.bulkWrite(bulkOps, { session });
327
310
  for (const variant of variants) {
328
311
  const variantId = variant._id.toString();
329
- const available = balanceByVariant.get(variantId) || 0;
312
+ const available = quantityByVariant.get(variantId) || 0;
330
313
  const alerts = await db.stockAlert.find({
331
314
  product: variant.product,
332
315
  enabled: true,
@@ -348,7 +331,7 @@ const controllerFactory = (db) => {
348
331
  },
349
332
  body: JSON.stringify({
350
333
  title: "Low Stock Alert",
351
- body: `Stock is low: ${available} units (threshold: ${alert.threshold})`,
334
+ body: `Stock for ${variant.name || "Product"} is low: ${available} units remaining (threshold: ${alert.threshold})`,
352
335
  type: "stock_alert",
353
336
  metadata: {
354
337
  alertId: alert._id,
@@ -368,20 +351,20 @@ const controllerFactory = (db) => {
368
351
  }
369
352
  }
370
353
  }
371
- }
372
- function invalidateCache(tags) {
354
+ };
355
+ const invalidateCache = (tags) => {
373
356
  setImmediate(() => {
374
357
  cache.delByTags(tags).catch(
375
358
  (err) => logger.error("Cache invalidation error", err)
376
359
  );
377
360
  });
378
- }
379
- function initChangeStreams() {
361
+ };
362
+ const initChangeStreams = () => {
380
363
  const variantStream = db.variant.watch([], { fullDocument: "updateLookup" });
381
364
  variantStream.on("change", async (change) => {
382
365
  if (change.operationType === "update" && change.updateDescription?.updatedFields?.ingredients) {
383
366
  const variantId = change.documentKey._id;
384
- const storages = await db.stockBalance.distinct("storage", {
367
+ const storages = await db.stockAvailability.distinct("storage", {
385
368
  variant: variantId
386
369
  });
387
370
  for (const storage of storages) {
@@ -393,154 +376,9 @@ const controllerFactory = (db) => {
393
376
  variantStream.on("error", (err) => {
394
377
  logger.error("Variant change stream error", err);
395
378
  });
396
- }
397
- initChangeStreams();
398
- const adjustments = {
399
- async read(req, res) {
400
- try {
401
- const cacheKey = JSON.stringify({ type: "adjustments", ...req.verifiedQuery });
402
- let data = await cache.get(cacheKey);
403
- if (!data) {
404
- const stages = [
405
- ...queryProcessorGlobals.getBasicOptions(req.verifiedQuery),
406
- ...queryProcessorGlobals.getFilterDate(req.verifiedQuery.dateStart, req.verifiedQuery.dateEnd),
407
- {
408
- $lookup: {
409
- from: "products",
410
- let: { productId: "$product" },
411
- pipeline: [
412
- { $match: { $expr: { $eq: ["$_id", "$$productId"] } } },
413
- { $project: { name: 1, sku: 1 } }
414
- ],
415
- as: "productData"
416
- }
417
- },
418
- { $unwind: { path: "$productData", preserveNullAndEmptyArrays: true } },
419
- ...queryProcessorGlobals.getSortingOptions("createdAt", "desc"),
420
- ...queryProcessorGlobals.getPaginationOptions(req.verifiedQuery.skip, req.verifiedQuery.limit)
421
- ];
422
- data = await db.stockAdjustment.aggregate(stages).exec();
423
- await cache.setWithTags(cacheKey, data, ["adjustments"]);
424
- }
425
- res.json(data);
426
- } catch (error) {
427
- logger.error("Error reading adjustments", error);
428
- res.status(500).json({ message: error.message });
429
- }
430
- },
431
- async create(req, res) {
432
- const session = await db.mongoose.startSession();
433
- session.startTransaction();
434
- try {
435
- const adjustmentData = {
436
- ...req.verifiedBody,
437
- creator: req.verifiedBody.creator || { type: "user", target: req.userId },
438
- owner: req.verifiedBody.owner
439
- };
440
- const [adjustment] = await db.stockAdjustment.create([adjustmentData], { session });
441
- const balance2 = await db.stockBalance.findOneAndUpdate(
442
- {
443
- product: adjustmentData.product,
444
- variant: adjustmentData.variant,
445
- storage: adjustmentData.storage
446
- },
447
- {
448
- $inc: { quantity: adjustmentData.quantity },
449
- $setOnInsert: {
450
- owner: adjustmentData.owner,
451
- creator: adjustmentData.creator
452
- }
453
- },
454
- { upsert: true, new: true, session }
455
- );
456
- const affectedVariants = /* @__PURE__ */ new Set();
457
- if (adjustmentData.variant) {
458
- affectedVariants.add(adjustmentData.variant.toString());
459
- }
460
- const dependentVariants = await db.variant.find({
461
- "ingredients._id": adjustmentData.product,
462
- "ingredients.optional": { $ne: true }
463
- }).distinct("_id").session(session);
464
- dependentVariants.forEach((v) => affectedVariants.add(v.toString()));
465
- if (affectedVariants.size) {
466
- await recalculateAvailability(
467
- Array.from(affectedVariants),
468
- adjustmentData.storage,
469
- session
470
- );
471
- }
472
- await session.commitTransaction();
473
- invalidateCache(["adjustments", "balance", "availability"]);
474
- setImmediate(() => {
475
- observer.notify("stock.adjusted", {
476
- adjustment,
477
- balance: balance2,
478
- affectedVariants: Array.from(affectedVariants)
479
- });
480
- });
481
- res.status(201).json(adjustment);
482
- } catch (error) {
483
- console.log(error);
484
- await session.abortTransaction();
485
- logger.error("Error creating adjustment", error);
486
- res.status(500).json({ message: error.message });
487
- } finally {
488
- session.endSession();
489
- }
490
- }
491
379
  };
492
- const balance = {
493
- async read(req, res) {
494
- try {
495
- const cacheKey = JSON.stringify({ type: "balance", ...req.verifiedQuery });
496
- let data = await cache.get(cacheKey);
497
- if (!data) {
498
- const pipeline = [
499
- {
500
- $match: {
501
- ...req.verifiedQuery.storage && { storage: new db.mongoose.Types.ObjectId(req.verifiedQuery.storage) },
502
- ...req.verifiedQuery.product && { product: new db.mongoose.Types.ObjectId(req.verifiedQuery.product) },
503
- quantity: { $gt: 0 }
504
- }
505
- },
506
- {
507
- $lookup: {
508
- from: "products",
509
- let: { pid: "$product" },
510
- pipeline: [
511
- { $match: { $expr: { $eq: ["$_id", "$$pid"] } } },
512
- { $project: { name: 1, sku: 1 } }
513
- ],
514
- as: "product"
515
- }
516
- },
517
- { $unwind: { path: "$product", preserveNullAndEmptyArrays: true } },
518
- {
519
- $lookup: {
520
- from: "spots",
521
- let: { sid: "$storage" },
522
- pipeline: [
523
- { $match: { $expr: { $eq: ["$_id", "$$sid"] } } },
524
- { $project: { name: 1, location: 1 } }
525
- ],
526
- as: "storage"
527
- }
528
- },
529
- { $unwind: { path: "$storage", preserveNullAndEmptyArrays: true } },
530
- { $limit: req.verifiedQuery.limit },
531
- { $skip: req.verifiedQuery.skip }
532
- ];
533
- data = await db.stockBalance.aggregate(pipeline).exec();
534
- await cache.setWithTags(cacheKey, data, ["balance"]);
535
- }
536
- res.json(data);
537
- } catch (error) {
538
- logger.error("Error reading balance", error);
539
- res.status(500).json({ message: error.message });
540
- }
541
- }
542
- };
543
- const availability = {
380
+ return {
381
+ // Public API for reading availability
544
382
  async read(req, res) {
545
383
  try {
546
384
  console.log("=== AVAILABILITY DEBUG ===");
@@ -574,18 +412,22 @@ const controllerFactory = (db) => {
574
412
  {
575
413
  $lookup: {
576
414
  from: "stockavailabilities",
577
- let: { productId: "$_id" },
415
+ let: { pid: "$_id" },
578
416
  pipeline: [
579
417
  {
580
418
  $match: {
581
- $expr: { $eq: ["$product", "$$productId"] },
582
- ...req.verifiedQuery?.storage && { storage: new db.mongoose.Types.ObjectId(req.verifiedQuery.storage) }
419
+ $expr: { $eq: ["$product", "$$pid"] },
420
+ ...req.verifiedQuery?.storage && {
421
+ storage: new db.mongoose.Types.ObjectId(req.verifiedQuery.storage)
422
+ }
583
423
  }
584
424
  }
585
425
  ],
586
426
  as: "availability"
587
427
  }
588
428
  },
429
+ { $skip: req.verifiedQuery?.skip || 0 },
430
+ { $limit: req.verifiedQuery?.limit || 20 },
589
431
  {
590
432
  $addFields: {
591
433
  available: { $sum: "$availability.available" },
@@ -602,32 +444,26 @@ const controllerFactory = (db) => {
602
444
  let: { pid: "$product" },
603
445
  pipeline: [
604
446
  { $match: { $expr: { $eq: ["$_id", "$$pid"] } } },
605
- { $project: { name: 1, sku: 1, price: 1, images: { $slice: ["$images", 1] } } }
447
+ {
448
+ $project: {
449
+ name: 1,
450
+ sku: 1,
451
+ unit: 1
452
+ }
453
+ }
606
454
  ],
607
- as: "product"
455
+ as: "productInfo"
608
456
  }
609
457
  },
610
- { $unwind: { path: "$product", preserveNullAndEmptyArrays: true } },
611
458
  {
612
- $lookup: {
613
- from: "variants",
614
- let: { vid: "$variant" },
615
- pipeline: [
616
- { $match: { $expr: { $eq: ["$_id", "$$vid"] } } },
617
- { $project: { name: 1, attributes: 1, price: 1 } }
618
- ],
619
- as: "variant"
459
+ $unwind: {
460
+ path: "$productInfo",
461
+ preserveNullAndEmptyArrays: true
620
462
  }
621
- },
622
- { $unwind: { path: "$variant", preserveNullAndEmptyArrays: true } }
463
+ }
623
464
  );
624
465
  }
625
- pipeline.push(
626
- { $sort: { available: -1 } },
627
- { $limit: req.verifiedQuery?.limit || 20 },
628
- { $skip: req.verifiedQuery?.skip || 0 }
629
- );
630
- data = await db.stockAvailability.aggregate(pipeline).allowDiskUse(true).exec();
466
+ data = await db.product.aggregate(pipeline).exec();
631
467
  await cache.setWithTags(cacheKey, data, ["availability"]);
632
468
  }
633
469
  res.json(data);
@@ -635,9 +471,178 @@ const controllerFactory = (db) => {
635
471
  logger.error("Error reading availability", error);
636
472
  res.status(500).json({ message: error.message });
637
473
  }
474
+ },
475
+ // Internal methods for other services
476
+ recalculateAvailability,
477
+ collectAffectedVariants,
478
+ invalidateCache,
479
+ initChangeStreams,
480
+ cache,
481
+ logger
482
+ };
483
+ };
484
+ const adjustmentServiceFactory = (db) => {
485
+ const cache = new CacheNamespaced({ ttlSeconds: 300 });
486
+ const logger = new LoggerNamespaced(db);
487
+ const observer = new ObserverNamespaced();
488
+ const availabilityService = availabilityServiceFactory(db);
489
+ const updateStockQuantity = async (product, variant, storage, quantity, owner, creator, session) => {
490
+ return await db.stockAvailability.findOneAndUpdate(
491
+ { product, variant, storage },
492
+ {
493
+ $inc: { quantity },
494
+ $setOnInsert: {
495
+ owner,
496
+ creator,
497
+ available: 0,
498
+ constraints: []
499
+ }
500
+ },
501
+ { upsert: true, new: true, session }
502
+ );
503
+ };
504
+ return {
505
+ async read(req, res) {
506
+ try {
507
+ const cacheKey = JSON.stringify({ type: "adjustments", ...req.verifiedQuery });
508
+ let data = await cache.get(cacheKey);
509
+ if (!data) {
510
+ const stages = [
511
+ ...queryProcessorGlobals.getBasicOptions(req.verifiedQuery),
512
+ {
513
+ $lookup: {
514
+ from: "products",
515
+ let: { pid: "$product" },
516
+ pipeline: [
517
+ { $match: { $expr: { $eq: ["$_id", "$$pid"] } } },
518
+ {
519
+ $project: {
520
+ name: 1,
521
+ sku: 1,
522
+ unit: 1
523
+ }
524
+ }
525
+ ],
526
+ as: "productData"
527
+ }
528
+ },
529
+ {
530
+ $unwind: {
531
+ path: "$productData",
532
+ preserveNullAndEmptyArrays: true
533
+ }
534
+ },
535
+ queryProcessorGlobals.getCreatorUserLookupStage(),
536
+ queryProcessorGlobals.getAddFieldsCreatorOwnerStage(),
537
+ ...queryProcessorGlobals.getSortingOptions("createdAt", "desc"),
538
+ ...queryProcessorGlobals.getPaginationOptions(req.verifiedQuery.skip, req.verifiedQuery.limit)
539
+ ];
540
+ data = await db.stockAdjustment.aggregate(stages).exec();
541
+ await cache.setWithTags(cacheKey, data, ["adjustments"]);
542
+ }
543
+ res.json(data);
544
+ } catch (error) {
545
+ logger.error("Error reading adjustments", error);
546
+ res.status(500).json({ message: error.message });
547
+ }
548
+ },
549
+ async create(req, res) {
550
+ const session = await db.mongoose.startSession();
551
+ session.startTransaction();
552
+ try {
553
+ const adjustmentData = {
554
+ ...req.verifiedBody,
555
+ creator: req.verifiedBody.creator || { type: "user", target: req.userId },
556
+ owner: req.verifiedBody.owner
557
+ };
558
+ const [adjustment] = await db.stockAdjustment.create([adjustmentData], { session });
559
+ const availability = await updateStockQuantity(
560
+ adjustmentData.product,
561
+ adjustmentData.variant,
562
+ adjustmentData.storage,
563
+ adjustmentData.quantity,
564
+ adjustmentData.owner,
565
+ adjustmentData.creator,
566
+ session
567
+ );
568
+ const affectedVariants = await availabilityService.collectAffectedVariants(
569
+ [adjustmentData.product],
570
+ adjustmentData.variant ? [adjustmentData.variant] : [],
571
+ session
572
+ );
573
+ if (affectedVariants.length) {
574
+ await availabilityService.recalculateAvailability(affectedVariants, adjustmentData.storage, session);
575
+ }
576
+ await session.commitTransaction();
577
+ availabilityService.invalidateCache(["adjustments", "availability"]);
578
+ setImmediate(() => {
579
+ observer.notify("stock.adjusted", {
580
+ adjustment,
581
+ availability,
582
+ affectedVariants
583
+ });
584
+ });
585
+ res.status(201).json(adjustment);
586
+ } catch (error) {
587
+ console.log(error);
588
+ await session.abortTransaction();
589
+ logger.error("Error creating adjustment", error);
590
+ res.status(500).json({ message: error.message });
591
+ } finally {
592
+ session.endSession();
593
+ }
638
594
  }
639
595
  };
640
- const inventory = {
596
+ };
597
+ const auditServiceFactory = (db) => {
598
+ new CacheNamespaced({ ttlSeconds: 300 });
599
+ const logger = new LoggerNamespaced(db);
600
+ const observer = new ObserverNamespaced();
601
+ const availabilityService = availabilityServiceFactory(db);
602
+ async function processInventoryPositions(audit, session) {
603
+ await Promise.all(
604
+ audit.positions.map(
605
+ (position) => db.stockAdjustment.create([{
606
+ product: position.product,
607
+ variant: position.variant,
608
+ storage: audit.storage,
609
+ source: { type: "Inventory", target: audit._id },
610
+ reason: position.reason || "custom",
611
+ comment: position.comment,
612
+ quantity: position.quantity,
613
+ cost: position.cost,
614
+ creator: audit.creator,
615
+ owner: audit.owner
616
+ }], { session })
617
+ )
618
+ );
619
+ await db.stockAvailability.bulkWrite(
620
+ audit.positions.map((p) => ({
621
+ updateOne: {
622
+ filter: {
623
+ product: p.product,
624
+ variant: p.variant || null,
625
+ storage: audit.storage
626
+ },
627
+ update: {
628
+ $inc: { quantity: p.quantity },
629
+ $setOnInsert: {
630
+ owner: audit.owner,
631
+ creator: audit.creator,
632
+ available: 0,
633
+ constraints: []
634
+ }
635
+ },
636
+ upsert: true
637
+ }
638
+ })),
639
+ { session }
640
+ );
641
+ const products = audit.positions.map((p) => p.product);
642
+ const variants = audit.positions.filter((p) => p.variant).map((p) => p.variant);
643
+ return await availabilityService.collectAffectedVariants(products, variants, session);
644
+ }
645
+ return {
641
646
  async read(req, res) {
642
647
  try {
643
648
  const stages = [
@@ -665,57 +670,13 @@ const controllerFactory = (db) => {
665
670
  };
666
671
  const audit = await db.stockAudit.create([inventoryData], { session });
667
672
  if (req.verifiedBody.status === "published") {
668
- const auditDoc = audit[0];
669
- const adjustmentPromises = auditDoc.positions.map((position) => {
670
- return db.stockAdjustment.create([{
671
- product: position.product,
672
- variant: position.variant,
673
- storage: auditDoc.storage,
674
- source: { type: "Inventory", target: auditDoc._id },
675
- reason: position.reason || "custom",
676
- comment: position.comment,
677
- quantity: position.quantity,
678
- cost: position.cost,
679
- creator: auditDoc.creator,
680
- owner: auditDoc.owner
681
- }], { session });
682
- });
683
- await Promise.all(adjustmentPromises);
684
- const balanceOps = auditDoc.positions.map((p) => ({
685
- updateOne: {
686
- filter: {
687
- product: p.product,
688
- variant: p.variant || null,
689
- storage: auditDoc.storage
690
- },
691
- update: {
692
- $inc: { quantity: p.quantity },
693
- $setOnInsert: {
694
- owner: auditDoc.owner,
695
- creator: auditDoc.creator
696
- }
697
- },
698
- upsert: true
699
- }
700
- }));
701
- await db.stockBalance.bulkWrite(balanceOps, { session });
702
- const affectedVariants = /* @__PURE__ */ new Set();
703
- const affectedProducts = /* @__PURE__ */ new Set();
704
- auditDoc.positions.forEach((p) => {
705
- if (p.variant) affectedVariants.add(p.variant.toString());
706
- affectedProducts.add(p.product.toString());
707
- });
708
- const dependentVariants = await db.variant.find({
709
- "ingredients._id": { $in: Array.from(affectedProducts) },
710
- "ingredients.optional": { $ne: true }
711
- }).distinct("_id").session(session);
712
- dependentVariants.forEach((v) => affectedVariants.add(v.toString()));
713
- if (affectedVariants.size) {
714
- await recalculateAvailability(Array.from(affectedVariants), auditDoc.storage, session);
673
+ const affectedVariants = await processInventoryPositions(audit[0], session);
674
+ if (affectedVariants.length) {
675
+ await availabilityService.recalculateAvailability(affectedVariants, audit[0].storage, session);
715
676
  }
716
677
  }
717
678
  await session.commitTransaction();
718
- invalidateCache(["inventories", "balances", "availability"]);
679
+ availabilityService.invalidateCache(["inventories", "availability"]);
719
680
  res.status(201).json(audit[0]);
720
681
  } catch (error) {
721
682
  await session.abortTransaction();
@@ -729,72 +690,25 @@ const controllerFactory = (db) => {
729
690
  const session = await db.mongoose.startSession();
730
691
  session.startTransaction();
731
692
  try {
732
- const inventory2 = await db.stockAudit.findById(req.verifiedBody._id).session(session);
733
- if (!inventory2 || inventory2.status !== "draft") {
693
+ const inventory = await db.stockAudit.findById(req.verifiedBody._id).session(session);
694
+ if (!inventory || inventory.status !== "draft") {
734
695
  throw new Error("Invalid inventory status");
735
696
  }
736
- const adjustmentPromises = inventory2.positions.map((position) => {
737
- return db.stockAdjustment.create([{
738
- product: position.product,
739
- variant: position.variant,
740
- storage: inventory2.storage,
741
- source: { type: "Inventory", target: inventory2._id },
742
- reason: position.reason || "custom",
743
- comment: position.comment,
744
- quantity: position.quantity,
745
- cost: position.cost,
746
- creator: inventory2.creator,
747
- owner: inventory2.owner
748
- }], { session });
749
- });
750
- await Promise.all(adjustmentPromises);
751
- const bulkOps = inventory2.positions.map((p) => ({
752
- updateOne: {
753
- filter: {
754
- product: p.product,
755
- variant: p.variant || null,
756
- storage: inventory2.storage
757
- },
758
- update: {
759
- $inc: { quantity: p.quantity },
760
- $setOnInsert: {
761
- owner: inventory2.owner,
762
- creator: inventory2.creator
763
- }
764
- },
765
- upsert: true
766
- }
767
- }));
768
- await db.stockBalance.bulkWrite(bulkOps, { session });
769
- const affectedVariants = /* @__PURE__ */ new Set();
770
- const affectedProducts = /* @__PURE__ */ new Set();
771
- inventory2.positions.forEach((p) => {
772
- if (p.variant) affectedVariants.add(p.variant.toString());
773
- affectedProducts.add(p.product.toString());
774
- });
775
- const dependentVariants = await db.variant.find({
776
- "ingredients._id": { $in: Array.from(affectedProducts) },
777
- "ingredients.optional": { $ne: true }
778
- }).distinct("_id").session(session);
779
- dependentVariants.forEach((v) => affectedVariants.add(v.toString()));
780
- if (affectedVariants.size) {
781
- await recalculateAvailability(
782
- Array.from(affectedVariants),
783
- inventory2.storage,
784
- session
785
- );
697
+ const affectedVariants = await processInventoryPositions(inventory, session);
698
+ if (affectedVariants.length) {
699
+ await availabilityService.recalculateAvailability(affectedVariants, inventory.storage, session);
786
700
  }
787
- inventory2.status = "published";
788
- await inventory2.save({ session });
701
+ inventory.status = "published";
702
+ await inventory.save({ session });
789
703
  await session.commitTransaction();
790
- invalidateCache(["adjustments", "balance", "availability", "inventories"]);
704
+ availabilityService.invalidateCache(["adjustments", "availability", "inventories"]);
791
705
  setImmediate(() => {
792
706
  observer.notify("inventory.completed", {
793
- inventory: inventory2,
794
- affectedVariants: Array.from(affectedVariants)
707
+ inventory,
708
+ affectedVariants
795
709
  });
796
710
  });
797
- res.json(inventory2);
711
+ res.json(inventory);
798
712
  } catch (error) {
799
713
  await session.abortTransaction();
800
714
  logger.error("Error completing inventory", error);
@@ -804,7 +718,6 @@ const controllerFactory = (db) => {
804
718
  }
805
719
  }
806
720
  };
807
- return { adjustments, balance, availability, inventory };
808
721
  };
809
722
  function verifierFactory(db) {
810
723
  const adjustmentQueryConfig = {
@@ -836,7 +749,7 @@ function verifierFactory(db) {
836
749
  cost: { rule: "optional", validator: Validator.schema().number().min(0) },
837
750
  comment: { rule: "optional", validator: Validator.schema().string() }
838
751
  };
839
- const balanceQueryConfig = {
752
+ const queryConfig = {
840
753
  product: { rule: "optional", validator: Validator.schema().string() },
841
754
  storage: { rule: "optional", validator: Validator.schema().string() },
842
755
  skip: { rule: "optional", validator: Validator.schema().integer().min(0), default: 0 },
@@ -863,7 +776,7 @@ function verifierFactory(db) {
863
776
  };
864
777
  const adjustmentQueryVerifier = new Verifier(adjustmentQueryConfig);
865
778
  const adjustmentBodyVerifier = new Verifier(adjustmentBodyConfig);
866
- const balanceQueryVerifier = new Verifier(balanceQueryConfig);
779
+ const queryVerifier = new Verifier(queryConfig);
867
780
  const inventoryBodyVerifier = new Verifier(inventoryBodyConfig);
868
781
  return {
869
782
  verifyAdjustmentQuery: (req, res, next) => {
@@ -882,18 +795,8 @@ function verifierFactory(db) {
882
795
  req.verifiedBody = verification.verifiedData;
883
796
  next();
884
797
  },
885
- verifyBalanceQuery: (req, res, next) => {
886
- const verification = balanceQueryVerifier.verify(req.query);
887
- if (!verification.isValid) {
888
- return res.status(400).json({ errors: verification.verificationErrors });
889
- }
890
- verification.verifiedData.skip = parseInt(verification.verifiedData.skip) || 0;
891
- verification.verifiedData.limit = parseInt(verification.verifiedData.limit) || 50;
892
- req.verifiedQuery = verification.verifiedData;
893
- next();
894
- },
895
798
  verifyAvailabilityQuery: (req, res, next) => {
896
- const verification = balanceQueryVerifier.verify(req.query);
799
+ const verification = queryVerifier.verify(req.query);
897
800
  if (!verification.isValid) {
898
801
  return res.status(400).json({ errors: verification.verificationErrors });
899
802
  }
@@ -903,7 +806,7 @@ function verifierFactory(db) {
903
806
  next();
904
807
  },
905
808
  verifyInventoryQuery: (req, res, next) => {
906
- const verification = balanceQueryVerifier.verify(req.query);
809
+ const verification = queryVerifier.verify(req.query);
907
810
  if (!verification.isValid) {
908
811
  return res.status(400).json({ errors: verification.verificationErrors });
909
812
  }
@@ -1100,50 +1003,46 @@ function inventoryRoutes(app, db) {
1100
1003
  const jwt = middlewareFactory(db);
1101
1004
  const verifier = verifierFactory();
1102
1005
  const abac = getInstance$1(db);
1103
- const controller = controllerFactory(db);
1006
+ const adjustmentService = adjustmentServiceFactory(db);
1007
+ const availabilityService = availabilityServiceFactory(db);
1008
+ const auditService = auditServiceFactory(db);
1104
1009
  app.get(
1105
1010
  "/api/inventory/adjustments",
1106
1011
  jwt.verifyToken(true),
1107
1012
  verifier.verifyAdjustmentQuery,
1108
- controller.adjustments.read
1013
+ adjustmentService.read
1109
1014
  );
1110
1015
  app.post(
1111
1016
  "/api/inventory/adjustments/create",
1112
1017
  jwt.verifyToken(),
1113
1018
  verifier.verifyAdjustmentBody,
1114
1019
  abac.middleware("stockAdjustment", "create"),
1115
- controller.adjustments.create
1116
- );
1117
- app.get(
1118
- "/api/inventory/balance",
1119
- jwt.verifyToken(true),
1120
- verifier.verifyBalanceQuery,
1121
- controller.balance.read
1020
+ adjustmentService.create
1122
1021
  );
1123
1022
  app.get(
1124
1023
  "/api/inventory/availability",
1125
1024
  verifier.verifyAvailabilityQuery,
1126
- controller.availability.read
1025
+ availabilityService.read
1127
1026
  );
1128
1027
  app.get(
1129
1028
  "/api/inventory/audits",
1130
1029
  jwt.verifyToken(),
1131
1030
  verifier.verifyInventoryQuery,
1132
- controller.inventory.read
1031
+ auditService.read
1133
1032
  );
1134
1033
  app.post(
1135
1034
  "/api/inventory/audits/create",
1136
1035
  jwt.verifyToken(),
1137
1036
  verifier.verifyInventoryBody,
1138
1037
  abac.middleware("stockAudit", "create"),
1139
- controller.inventory.create
1038
+ auditService.create
1140
1039
  );
1141
1040
  app.post(
1142
1041
  "/api/inventory/audits/complete",
1143
1042
  jwt.verifyToken(),
1144
1043
  verifier.verifyInventoryComplete,
1145
1044
  abac.middleware("stockAudit", "edit"),
1146
- controller.inventory.complete
1045
+ auditService.complete
1147
1046
  );
1148
1047
  setupStockAlertsRoutes(app, db);
1149
1048
  }
@@ -1154,13 +1053,14 @@ function inventoryPolicies(db) {
1154
1053
  }
1155
1054
  function initializeInventory(app, db, origins, publicPath) {
1156
1055
  db.stockAdjustment = StockAdjustmentModel(db);
1157
- db.stockBalance = StockBalanceModel(db);
1158
1056
  db.stockAvailability = StockAvailabilityModel(db);
1159
1057
  db.stockAudit = StockAuditModel(db);
1160
1058
  db.stockAlert = StockAlertModel(db);
1161
1059
  if (app) {
1162
1060
  inventoryRoutes(app, db);
1163
1061
  inventoryPolicies(db);
1062
+ const availabilityService = availabilityServiceFactory(db);
1063
+ availabilityService.initChangeStreams();
1164
1064
  }
1165
1065
  }
1166
1066
  const inventory_server = { initialize: initializeInventory };