@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.
- package/dist/_virtual/index.cjs +4 -4
- package/dist/_virtual/index.js +4 -4
- package/dist/_virtual/index2.cjs +4 -4
- package/dist/_virtual/index2.js +4 -4
- package/dist/{abac-Cf_9lCSh.js → abac-CnJsrv8S.js} +3 -3
- package/dist/{abac-6LjoG9u-.cjs → abac-DOyUjhee.cjs} +3 -3
- package/dist/builder.cjs +27 -25
- package/dist/builder.js +27 -25
- package/dist/chats.server.cjs +198 -1
- package/dist/chats.server.js +198 -1
- package/dist/{crud-sE7GLPbj.js → crud-BIFl1W1i.js} +6 -6
- package/dist/{crud-JN_LFj01.cjs → crud-CC6k6yY5.cjs} +6 -6
- package/dist/{globals.logger-CZMgIMlM.cjs → globals.logger-BuW7JHMY.cjs} +63 -53
- package/dist/{globals.logger-Bf6rRU7j.js → globals.logger-VRHh-WUW.js} +63 -53
- package/dist/{globals.observer-CV2wCzzh.cjs → globals.observer-C_FYclgV.cjs} +36 -1
- package/dist/{globals.observer-CDqUjVU5.js → globals.observer-MZsqaE6F.js} +36 -1
- package/dist/globals.server.cjs +1 -1
- package/dist/globals.server.js +1 -1
- package/dist/inventory.server.cjs +276 -376
- package/dist/inventory.server.js +276 -376
- package/dist/main-BM3GslOO.cjs +11 -0
- package/dist/{main-wmEhGVvD.js → main-Qcn7YlTx.js} +1834 -1830
- package/dist/martyrs/src/components/Address/{Address.vue2.cjs → Address.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Address/{Address.vue2.js.map → Address.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Address/{Address.vue2.js → Address.vue.js} +2 -2
- package/dist/martyrs/src/components/Address/Address.vue.js.map +1 -0
- package/dist/martyrs/src/components/Button/Button.vue.cjs +1 -1
- package/dist/martyrs/src/components/Button/Button.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Button/Button.vue.js +1 -1
- package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -1
- package/dist/martyrs/src/components/Chips/{Chips.vue.cjs → Chips.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Chips/{Chips.vue.js → Chips.vue2.js} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs → Dropdown.vue2.cjs} +2 -2
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue2.cjs.map +1 -0
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.js → Dropdown.vue2.js} +2 -2
- package/dist/martyrs/src/components/Dropdown/{Dropdown.vue.cjs.map → Dropdown.vue2.js.map} +1 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue.cjs +0 -93
- package/dist/martyrs/src/components/EditImages/EditImages.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue.js +1 -94
- package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +1 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.cjs +93 -0
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.cjs.map +1 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.js +94 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +2 -3
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs.map +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -3
- package/dist/martyrs/src/components/Feed/Feed.vue.js.map +1 -1
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.cjs +1 -1
- package/dist/martyrs/src/components/FieldTags/FieldTags.vue.js +1 -1
- package/dist/martyrs/src/components/Loader/Loader.vue2.cjs +1 -1
- package/dist/martyrs/src/components/Loader/Loader.vue2.cjs.map +1 -1
- package/dist/martyrs/src/components/Loader/Loader.vue2.js +1 -1
- package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +1 -1
- package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue2.cjs → LocationMarker.vue.cjs} +2 -2
- package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue2.js.map → LocationMarker.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/LocationMarker/{LocationMarker.vue2.js → LocationMarker.vue.js} +2 -2
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js.map +1 -0
- package/dist/martyrs/src/components/Select/{Select.vue2.cjs → Select.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Select/{Select.vue2.js.map → Select.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Select/{Select.vue2.js → Select.vue.js} +2 -2
- package/dist/martyrs/src/components/Select/Select.vue.js.map +1 -0
- package/dist/martyrs/src/modules/auth/views/components/blocks/CardUser.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/blocks/CardUser.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/layouts/Auth.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +4 -4
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +41 -51
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +59 -69
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs +11 -13
- package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js +11 -13
- package/dist/martyrs/src/modules/auth/views/components/sections/SliderFeatures.vue.js.map +1 -1
- package/dist/martyrs/src/modules/auth/views/store/auth.cjs +10 -1
- package/dist/martyrs/src/modules/auth/views/store/auth.cjs.map +1 -1
- package/dist/martyrs/src/modules/auth/views/store/auth.js +10 -1
- package/dist/martyrs/src/modules/auth/views/store/auth.js.map +1 -1
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs +6 -0
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js +6 -0
- package/dist/martyrs/src/modules/backoffice/components/partials/Sidebar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.cjs +27 -11
- package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js +28 -12
- package/dist/martyrs/src/modules/chats/components/blocks/ChatMessage.vue.js.map +1 -1
- package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs +62 -0
- package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js +63 -1
- package/dist/martyrs/src/modules/chats/components/sections/ChatWindow.vue.js.map +1 -1
- package/dist/martyrs/src/modules/chats/store/chat.store.cjs +60 -1
- package/dist/martyrs/src/modules/chats/store/chat.store.cjs.map +1 -1
- package/dist/martyrs/src/modules/chats/store/chat.store.js +60 -1
- package/dist/martyrs/src/modules/chats/store/chat.store.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/blocks/CardBlogpost.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs +3 -3
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +3 -3
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.cjs +2 -2
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.cjs +1 -1
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs +50 -368
- package/dist/martyrs/src/modules/community/components/pages/Posts.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js +53 -371
- package/dist/martyrs/src/modules/community/components/pages/Posts.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/blocks/CardEvent.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs +2 -3
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +2 -3
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs +2 -2
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/Events.vue.js.map +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +3 -3
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +3 -3
- package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/classes/globals.i18n.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/partials/Header.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.cjs +2 -2
- package/dist/martyrs/src/modules/globals/views/components/partials/LocationSelection.vue.js +2 -2
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Navigation.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.cjs +16 -3
- package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.js +17 -4
- package/dist/martyrs/src/modules/globals/views/components/partials/Sidebar.vue.js.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/sections/Walkthrough.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/mixins/mixins.cjs +7 -0
- package/dist/martyrs/src/modules/globals/views/mixins/mixins.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/mixins/mixins.js +7 -0
- package/dist/martyrs/src/modules/globals/views/mixins/mixins.js.map +1 -1
- package/dist/martyrs/src/modules/icons/pages/IconsPage.vue.cjs +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs +67 -43
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +68 -44
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.cjs +22 -7
- package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +23 -8
- package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.cjs +47 -32
- package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +48 -33
- package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs +47 -26
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +48 -27
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs +42 -52
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js +43 -53
- package/dist/martyrs/src/modules/inventory/components/pages/Inventory.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs +18 -18
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/inventory/store/{ inventory.store.cjs → inventory.store.cjs} +46 -2
- package/dist/martyrs/src/modules/inventory/store/inventory.store.cjs.map +1 -0
- package/dist/martyrs/src/modules/inventory/store/{ inventory.store.js → inventory.store.js} +46 -2
- package/dist/martyrs/src/modules/inventory/store/inventory.store.js.map +1 -0
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs +180 -19
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js +181 -20
- package/dist/martyrs/src/modules/marketplace/views/components/layouts/Marketplace.vue.js.map +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +1 -1
- package/dist/martyrs/src/modules/music/router/music.cjs +1 -2
- package/dist/martyrs/src/modules/music/router/music.cjs.map +1 -1
- package/dist/martyrs/src/modules/music/router/music.js +1 -2
- package/dist/martyrs/src/modules/music/router/music.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderBackoffice.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +3 -4
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +3 -4
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/orders.client.cjs +2 -2
- package/dist/martyrs/src/modules/orders/orders.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/orders.client.js +2 -2
- package/dist/martyrs/src/modules/orders/orders.client.js.map +1 -1
- package/dist/martyrs/src/modules/orders/router/customers.router.cjs +1 -1
- package/dist/martyrs/src/modules/orders/router/customers.router.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/router/customers.router.js +1 -1
- package/dist/martyrs/src/modules/orders/router/customers.router.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs +2 -24
- package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js +5 -27
- package/dist/martyrs/src/modules/organizations/components/blocks/CardDepartment.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/CardOrganization.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.cjs +4 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js +4 -1
- package/dist/martyrs/src/modules/organizations/components/blocks/Socials.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs +3 -3
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs +195 -0
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +195 -0
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs +402 -0
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +402 -0
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs +86 -0
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.cjs.map +1 -0
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +86 -0
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js.map +1 -0
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs +10 -10
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js +11 -11
- package/dist/martyrs/src/modules/organizations/components/pages/Department.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +279 -191
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +285 -197
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs +7 -7
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +7 -7
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Organizations.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +3 -3
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.cjs +4 -4
- package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.js +4 -4
- package/dist/martyrs/src/modules/organizations/components/sections/Publics.vue.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs +42 -41
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js +53 -52
- package/dist/martyrs/src/modules/organizations/configs/navigation.organization.config.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/organizations.client.cjs +23 -16
- package/dist/martyrs/src/modules/organizations/organizations.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/organizations.client.js +35 -28
- package/dist/martyrs/src/modules/organizations/organizations.client.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/router/departments.router.cjs +0 -18
- package/dist/martyrs/src/modules/organizations/router/departments.router.cjs.map +1 -1
- package/dist/martyrs/src/modules/organizations/router/departments.router.js +0 -18
- package/dist/martyrs/src/modules/organizations/router/departments.router.js.map +1 -1
- package/dist/martyrs/src/modules/organizations/store/departments.store.cjs +6 -0
- package/dist/martyrs/src/modules/organizations/store/departments.store.cjs.map +1 -0
- package/dist/martyrs/src/modules/organizations/store/departments.store.js +6 -0
- package/dist/martyrs/src/modules/organizations/store/departments.store.js.map +1 -0
- package/dist/martyrs/src/modules/organizations/store/invites.store.cjs +6 -0
- package/dist/martyrs/src/modules/organizations/store/invites.store.cjs.map +1 -0
- package/dist/martyrs/src/modules/organizations/store/invites.store.js +6 -0
- package/dist/martyrs/src/modules/organizations/store/invites.store.js.map +1 -0
- package/dist/martyrs/src/modules/organizations/store/memberships.store.cjs +20 -0
- package/dist/martyrs/src/modules/organizations/store/memberships.store.cjs.map +1 -0
- package/dist/martyrs/src/modules/organizations/store/memberships.store.js +20 -0
- package/dist/martyrs/src/modules/organizations/store/memberships.store.js.map +1 -0
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +3 -4
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +3 -4
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +2 -2
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.cjs +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.cjs +1 -1
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +3 -3
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js +3 -3
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.cjs +3 -3
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs +60 -272
- package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js +62 -274
- package/dist/martyrs/src/modules/spots/components/pages/Spots.vue.js.map +1 -1
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.cjs +4 -4
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +4 -4
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/music.server.cjs +9 -9
- package/dist/music.server.js +9 -9
- package/dist/notifications.server.cjs +0 -24
- package/dist/notifications.server.js +0 -24
- package/dist/orders.server.cjs +3 -6
- package/dist/orders.server.js +3 -6
- package/dist/organizations.server.cjs +119 -43
- package/dist/organizations.server.js +119 -43
- package/dist/products.server.cjs +5 -5
- package/dist/products.server.js +5 -5
- package/dist/rents.server.cjs +3 -3
- package/dist/rents.server.js +3 -3
- package/dist/style.css +16 -17
- package/dist/wallet.server.cjs +2 -2
- package/dist/wallet.server.js +2 -2
- package/dist/{web-B5wZTKbK.cjs → web-B0cfxzgu.cjs} +1 -1
- package/dist/{web-520xCgXy.js → web-DVR8m2fm.js} +1 -1
- package/package.json +1 -1
- package/src/builder/modes/ssr.rspack.dev.js +20 -12
- package/src/builder/rspack/rspack.config.base.js +16 -15
- package/src/components/Button/Button.vue +1 -1
- package/src/components/Feed/Feed.old.vue +0 -1
- package/src/components/Feed/Feed.vue +1 -31
- package/src/components/Loader/Loader.vue +1 -1
- package/src/modules/auth/FIXES.md +61 -0
- package/src/modules/auth/PROMT.md +33 -0
- package/src/modules/auth/auth.server.js +1 -0
- package/src/modules/auth/views/components/blocks/CardUser.vue +2 -2
- package/src/modules/auth/views/components/layouts/Auth.vue +1 -1
- package/src/modules/auth/views/components/pages/Invite.vue +2 -2
- package/src/modules/auth/views/components/pages/Profile.vue +33 -48
- package/src/modules/auth/views/components/sections/SliderFeatures.vue +5 -7
- package/src/modules/auth/views/store/auth.js +16 -1
- 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
- package/src/modules/backoffice/components/partials/Sidebar.vue +6 -0
- package/src/modules/chats/CLAUDE.md +137 -0
- package/src/modules/chats/components/blocks/ChatMessage.vue +12 -0
- package/src/modules/chats/components/sections/ChatWindow.vue +84 -2
- package/src/modules/chats/controllers/chats.controller.js +187 -0
- package/src/modules/chats/models/chat.model.js +21 -0
- package/src/modules/chats/routes/chats.routes.js +46 -0
- package/src/modules/chats/store/chat.store.js +67 -0
- package/src/modules/community/components/layouts/Community.vue +2 -2
- package/src/modules/community/components/pages/Posts.vue +3 -328
- package/src/modules/events/components/pages/EditEventTickets.vue +1 -1
- package/src/modules/events/components/pages/Events.vue +2 -2
- package/src/modules/globals/controllers/classes/globals.cache.js +64 -55
- package/src/modules/globals/controllers/classes/globals.logger.js +40 -4
- package/src/modules/globals/controllers/classes/globals.observer.js +54 -4
- package/src/modules/globals/views/components/partials/Header.vue +1 -1
- package/src/modules/globals/views/components/partials/Sidebar.vue +17 -13
- package/src/modules/globals/views/mixins/mixins.js +7 -0
- package/src/modules/inventory/CLAUDE.md +330 -0
- package/src/modules/inventory/PROMT.md +25 -0
- package/src/modules/inventory/components/forms/AdjustmentForm.vue +53 -36
- package/src/modules/inventory/components/forms/ColumnSettingsMenu.vue +11 -6
- package/src/modules/inventory/components/forms/HistoryView.vue +21 -9
- package/src/modules/inventory/components/forms/StockAlertsForm.vue +33 -22
- package/src/modules/inventory/components/pages/Inventory.vue +40 -40
- package/src/modules/inventory/components/pages/InventoryEdit.vue +1 -1
- package/src/modules/inventory/docs/01-intro.md +126 -0
- package/src/modules/inventory/docs/02-architecture.md +266 -0
- package/src/modules/inventory/docs/03-components-and-relationships.md +338 -0
- package/src/modules/inventory/docs/04-business-logic-and-algorithms.md +376 -0
- package/src/modules/inventory/docs/05-api-specification.md +356 -0
- package/src/modules/inventory/docs/06-access-control.md +320 -0
- package/src/modules/inventory/inventory.server.js +6 -2
- package/src/modules/inventory/{services → middlewares}/inventory.verifier.js +5 -16
- package/src/modules/inventory/models/stock.availability.model.js +20 -7
- package/src/modules/inventory/routes/inventory.routes.js +14 -17
- package/src/modules/inventory/services/adjustment.service.js +137 -0
- package/src/modules/inventory/services/audit.service.js +160 -0
- package/src/modules/inventory/services/availability.service.js +323 -0
- package/src/modules/inventory/services/inventory.helpers.old.js +217 -0
- package/src/modules/inventory/store/{ inventory.store.js → inventory.store.js} +0 -14
- package/src/modules/inventory/workers/inventory.availability.worker.js +29 -30
- package/src/modules/marketplace/views/components/layouts/Marketplace.vue +160 -8
- package/src/modules/notifications/controllers/notifications.controller.js +0 -6
- package/src/modules/notifications/services/notification.service.js +1 -17
- package/src/modules/notifications/services/web-push.service.js +0 -2
- package/src/modules/orders/components/blocks/CardOrderBackoffice.vue +2 -2
- package/src/modules/orders/components/blocks/CardOrderVar1.vue +1 -1
- package/src/modules/orders/controllers/orders.controller.js +2 -4
- package/src/modules/orders/orders.client.js +2 -2
- package/src/modules/orders/router/customers.router.js +1 -1
- package/src/modules/organizations/CLAUDE.md +259 -0
- package/src/modules/organizations/components/blocks/CardDepartment.vue +1 -22
- package/src/modules/organizations/components/blocks/Socials.vue +1 -1
- package/src/modules/organizations/components/elements/ButtonToggleMembership.vue +3 -3
- package/src/modules/organizations/components/forms/AddExistingMembersForm.vue +191 -0
- package/src/modules/organizations/components/forms/DepartmentForm.vue +390 -0
- package/src/modules/organizations/components/forms/InviteForm.vue +81 -0
- package/src/modules/organizations/components/pages/Department.vue +10 -10
- package/src/modules/organizations/components/pages/DepartmentEdit.vue +8 -8
- package/src/modules/organizations/components/pages/Members.vue +265 -171
- package/src/modules/organizations/components/pages/Organization.new.vue +172 -183
- package/src/modules/organizations/components/pages/Organization.vue +6 -6
- package/src/modules/organizations/components/pages/OrganizationEdit.vue +1 -1
- package/src/modules/organizations/components/pages/Organizations.vue +1 -1
- package/src/modules/organizations/components/sections/Organizations.vue +2 -2
- package/src/modules/organizations/components/sections/Publics.vue +4 -4
- package/src/modules/organizations/configs/navigation.organization.config.js +40 -39
- package/src/modules/organizations/controllers/departments.controller.js +53 -34
- package/src/modules/organizations/controllers/invites.controller.js +44 -5
- package/src/modules/organizations/controllers/memberships.controller.js +43 -4
- package/src/modules/organizations/organizations.client.js +24 -15
- package/src/modules/organizations/router/departments.router.js +0 -18
- package/src/modules/organizations/routes/departments.routes.js +6 -8
- package/src/modules/organizations/routes/invites.routes.js +6 -4
- package/src/modules/organizations/routes/memberships.routes.js +6 -5
- package/src/modules/organizations/routes/organizations.routes.js +1 -1
- package/src/modules/organizations/store/departments.store.js +5 -0
- package/src/modules/organizations/store/invites.store.js +5 -0
- package/src/modules/organizations/store/memberships.store.js +23 -0
- package/src/modules/products/components/pages/Products.vue +0 -1
- package/src/modules/spots/components/blocks/CardSpot.vue +1 -1
- package/src/modules/spots/components/pages/Spots.vue +3 -203
- package/src/styles/base/all.scss +0 -15
- package/src/styles/responsive.scss +1 -31
- package/src/styles/typography.scss +20 -5
- package/dist/main-CSzPfQYR.cjs +0 -11
- package/dist/martyrs/src/components/Address/Address.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +0 -1
- package/dist/martyrs/src/components/Chips/Chips.vue.js.map +0 -1
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +0 -1
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Select/Select.vue2.cjs.map +0 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.cjs +0 -76
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.js +0 -76
- package/dist/martyrs/src/modules/globals/views/components/blocks/BlockFilter.vue.js.map +0 -1
- package/dist/martyrs/src/modules/inventory/store/ inventory.store.cjs.map +0 -1
- package/dist/martyrs/src/modules/inventory/store/ inventory.store.js.map +0 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs +0 -280
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +0 -280
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js.map +0 -1
- package/dist/martyrs/src/modules/organizations/store/departments.cjs +0 -121
- package/dist/martyrs/src/modules/organizations/store/departments.cjs.map +0 -1
- package/dist/martyrs/src/modules/organizations/store/departments.js +0 -121
- package/dist/martyrs/src/modules/organizations/store/departments.js.map +0 -1
- package/dist/martyrs/src/modules/organizations/store/invites.cjs +0 -64
- package/dist/martyrs/src/modules/organizations/store/invites.cjs.map +0 -1
- package/dist/martyrs/src/modules/organizations/store/invites.js +0 -64
- package/dist/martyrs/src/modules/organizations/store/invites.js.map +0 -1
- package/dist/martyrs/src/modules/organizations/store/memberships.cjs +0 -87
- package/dist/martyrs/src/modules/organizations/store/memberships.cjs.map +0 -1
- package/dist/martyrs/src/modules/organizations/store/memberships.js +0 -87
- package/dist/martyrs/src/modules/organizations/store/memberships.js.map +0 -1
- package/src/modules/globals/controllers/classes/globals.websocket.ws.js +0 -102
- package/src/modules/globals/views/components/blocks/BlockFilter.vue +0 -60
- package/src/modules/inventory/docs/README.md +0 -291
- package/src/modules/inventory/models/stock.balance.model.js +0 -43
- package/src/modules/inventory/services/inventory.crud.js +0 -710
- package/src/modules/inventory/tests/inventory.test.js +0 -281
- package/src/modules/organizations/store/departments.js +0 -137
- package/src/modules/organizations/store/invites.js +0 -76
- package/src/modules/organizations/store/memberships.js +0 -110
|
@@ -14,13 +14,13 @@ class AvailabilityWorker {
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
/**
|
|
17
|
-
* Initialize change stream to watch for stock
|
|
17
|
+
* Initialize change stream to watch for stock availability changes
|
|
18
18
|
*/
|
|
19
19
|
initChangeStream() {
|
|
20
20
|
try {
|
|
21
|
-
const
|
|
21
|
+
const stockAvailability = this.db.stockAvailability;
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
stockAvailability.collection.watch(
|
|
24
24
|
[{ $match: { operationType: { $in: ['insert', 'update', 'replace'] } } }],
|
|
25
25
|
{ fullDocument: 'updateLookup' } // Critical to get the complete document after updates
|
|
26
26
|
).on('change', async (event) => {
|
|
@@ -43,7 +43,7 @@ class AvailabilityWorker {
|
|
|
43
43
|
}
|
|
44
44
|
});
|
|
45
45
|
|
|
46
|
-
this.logger.info('Stock
|
|
46
|
+
this.logger.info('Stock availability change stream initialized');
|
|
47
47
|
} catch (error) {
|
|
48
48
|
this.logger.error('Error initializing change stream:', error);
|
|
49
49
|
// If change streams aren't supported, fall back to timer-based updates
|
|
@@ -59,11 +59,11 @@ class AvailabilityWorker {
|
|
|
59
59
|
|
|
60
60
|
setInterval(async () => {
|
|
61
61
|
try {
|
|
62
|
-
const
|
|
62
|
+
const stockAvailability = this.db.stockAvailability;
|
|
63
63
|
|
|
64
|
-
// Find recently updated
|
|
64
|
+
// Find recently updated availability records (in the last interval)
|
|
65
65
|
// Use index on updatedAt for efficient querying
|
|
66
|
-
const recentUpdates = await
|
|
66
|
+
const recentUpdates = await stockAvailability.find({
|
|
67
67
|
updatedAt: { $gte: new Date(Date.now() - REFRESH_INTERVAL * 2) }
|
|
68
68
|
})
|
|
69
69
|
.sort({ updatedAt: -1 })
|
|
@@ -71,9 +71,9 @@ class AvailabilityWorker {
|
|
|
71
71
|
|
|
72
72
|
// Group by product+storage to avoid duplicate recalcs
|
|
73
73
|
const updates = new Map();
|
|
74
|
-
recentUpdates.forEach(
|
|
75
|
-
const key = `${
|
|
76
|
-
updates.set(key, { product:
|
|
74
|
+
recentUpdates.forEach(item => {
|
|
75
|
+
const key = `${item.product.toString()}_${item.storage.toString()}`;
|
|
76
|
+
updates.set(key, { product: item.product, storage: item.storage });
|
|
77
77
|
});
|
|
78
78
|
|
|
79
79
|
// Process each unique product+storage asynchronously
|
|
@@ -101,7 +101,6 @@ class AvailabilityWorker {
|
|
|
101
101
|
async recalcByProduct(product, storage, session = null) {
|
|
102
102
|
try {
|
|
103
103
|
const Product = this.db.product;
|
|
104
|
-
const StockBalance = this.db.stockBalance;
|
|
105
104
|
const StockAvailability = this.db.stockAvailability;
|
|
106
105
|
|
|
107
106
|
// Get the product with its variants - using $lookup instead of populate for better performance
|
|
@@ -140,8 +139,8 @@ class AvailabilityWorker {
|
|
|
140
139
|
// Add explicit base product (no variant) - better than null for indexing
|
|
141
140
|
const explicitBaseVariantId = '000000000000000000000000'; // ObjectId for base variant
|
|
142
141
|
|
|
143
|
-
// Get all
|
|
144
|
-
const
|
|
142
|
+
// Get all availability records for this product's variants at this storage
|
|
143
|
+
const availabilityItems = await StockAvailability.find({
|
|
145
144
|
product,
|
|
146
145
|
$or: [
|
|
147
146
|
{ variant: { $in: variantIds } },
|
|
@@ -151,10 +150,10 @@ class AvailabilityWorker {
|
|
|
151
150
|
}).session(session).lean();
|
|
152
151
|
|
|
153
152
|
// Create a map for quick lookup
|
|
154
|
-
const
|
|
155
|
-
|
|
156
|
-
const key =
|
|
157
|
-
|
|
153
|
+
const availabilityMap = new Map();
|
|
154
|
+
availabilityItems.forEach(item => {
|
|
155
|
+
const key = item.variant ? item.variant.toString() : explicitBaseVariantId;
|
|
156
|
+
availabilityMap.set(key, item);
|
|
158
157
|
});
|
|
159
158
|
|
|
160
159
|
// Get all ingredient IDs from product and variants
|
|
@@ -174,19 +173,19 @@ class AvailabilityWorker {
|
|
|
174
173
|
});
|
|
175
174
|
}
|
|
176
175
|
|
|
177
|
-
// Get ingredient
|
|
178
|
-
let
|
|
176
|
+
// Get ingredient availability if needed
|
|
177
|
+
let ingredientItems = [];
|
|
179
178
|
if (ingredientIds.size > 0) {
|
|
180
|
-
|
|
179
|
+
ingredientItems = await StockAvailability.find({
|
|
181
180
|
product: { $in: Array.from(ingredientIds).map(id => this.db.mongoose.Types.ObjectId(id)) },
|
|
182
181
|
storage
|
|
183
182
|
}).session(session).lean();
|
|
184
183
|
}
|
|
185
184
|
|
|
186
|
-
// Create ingredient
|
|
185
|
+
// Create ingredient availability map
|
|
187
186
|
const ingredientMap = new Map();
|
|
188
|
-
|
|
189
|
-
ingredientMap.set(
|
|
187
|
+
ingredientItems.forEach(item => {
|
|
188
|
+
ingredientMap.set(item.product.toString(), item);
|
|
190
189
|
});
|
|
191
190
|
|
|
192
191
|
// Prepare bulk operations for StockAvailability updates
|
|
@@ -199,7 +198,7 @@ class AvailabilityWorker {
|
|
|
199
198
|
null, // null variant for base product
|
|
200
199
|
storage,
|
|
201
200
|
productData,
|
|
202
|
-
|
|
201
|
+
availabilityMap.get(explicitBaseVariantId),
|
|
203
202
|
ingredientMap
|
|
204
203
|
);
|
|
205
204
|
|
|
@@ -211,7 +210,7 @@ class AvailabilityWorker {
|
|
|
211
210
|
variant._id,
|
|
212
211
|
storage,
|
|
213
212
|
variant,
|
|
214
|
-
|
|
213
|
+
availabilityMap.get(variant._id.toString()),
|
|
215
214
|
ingredientMap
|
|
216
215
|
);
|
|
217
216
|
}
|
|
@@ -232,9 +231,9 @@ class AvailabilityWorker {
|
|
|
232
231
|
/**
|
|
233
232
|
* Helper to process a single variant's availability
|
|
234
233
|
*/
|
|
235
|
-
_processVariantAvailability(bulkOps, productId, variantId, storageId, variant,
|
|
236
|
-
// Default values if no
|
|
237
|
-
const stockQuantity =
|
|
234
|
+
_processVariantAvailability(bulkOps, productId, variantId, storageId, variant, availabilityItem, ingredientMap) {
|
|
235
|
+
// Default values if no availability item found
|
|
236
|
+
const stockQuantity = availabilityItem ? availabilityItem.quantity : 0;
|
|
238
237
|
|
|
239
238
|
// Start with direct stock
|
|
240
239
|
let availableQuantity = stockQuantity;
|
|
@@ -251,8 +250,8 @@ class AvailabilityWorker {
|
|
|
251
250
|
// Skip optional ingredients
|
|
252
251
|
if (ingredient.optional) continue;
|
|
253
252
|
|
|
254
|
-
const
|
|
255
|
-
const stockIng =
|
|
253
|
+
const ingAvailability = ingredientMap.get(ingId);
|
|
254
|
+
const stockIng = ingAvailability ? ingAvailability.quantity : 0;
|
|
256
255
|
|
|
257
256
|
// Calculate how many products can be made with this ingredient
|
|
258
257
|
if (requiredQty > 0) {
|
|
@@ -1,13 +1,127 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="cols-2-1_3 z-index-3 pos-relative radius-big">
|
|
3
3
|
|
|
4
|
-
<div class="o-y-scroll br-r br-solid br-light
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
<div class="o-y-scroll br-r br-solid br-light pd-medium z-index-2 desktop-only h-100 pos-relative">
|
|
5
|
+
<div class="w-100 o-y-scroll h-100">
|
|
6
|
+
<!-- Categories -->
|
|
7
|
+
<div class="mn-b-medium" v-if="currentCategories.length > 0">
|
|
8
|
+
<h4 class="mn-b-small">
|
|
9
|
+
{{ route.params.categoryPath ? 'Subcategories' : 'Categories' }}
|
|
10
|
+
</h4>
|
|
11
|
+
<div class="gap-micro">
|
|
12
|
+
<div
|
|
13
|
+
v-for="category in currentCategories"
|
|
14
|
+
:key="category._id"
|
|
15
|
+
@click="selectCategory(category)"
|
|
16
|
+
class="pd-small radius-small cursor-pointer hover-bg-light transition-all"
|
|
17
|
+
>
|
|
18
|
+
{{ category.name }}
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
<!-- Location Filter -->
|
|
24
|
+
<Spoiler
|
|
25
|
+
class="o-hidden mn-b-medium"
|
|
26
|
+
:status="true"
|
|
27
|
+
>
|
|
28
|
+
<template #header="{ isOpen }">
|
|
29
|
+
<div class="cursor-pointer w-100 flex-v-center flex-nowrap flex">
|
|
30
|
+
<h4 class="w-100">Location</h4>
|
|
31
|
+
<div class="h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra">
|
|
32
|
+
<IconChevronBottom :class="{ 'rotate-180 mn-t-micro-negative': isOpen }" fill="rgb(var(--black))" class="i-regular"/>
|
|
33
|
+
</div>
|
|
34
|
+
</div>
|
|
35
|
+
</template>
|
|
36
|
+
|
|
37
|
+
<template #content>
|
|
38
|
+
<div class="mn-t-small">
|
|
39
|
+
<Field
|
|
40
|
+
v-model="searchLocation"
|
|
41
|
+
placeholder="Search location..."
|
|
42
|
+
type="text"
|
|
43
|
+
class="w-100 bg-light pd-small radius-small mn-b-small"
|
|
44
|
+
/>
|
|
45
|
+
<Checkbox
|
|
46
|
+
v-for="location in locationOptions"
|
|
47
|
+
:key="location"
|
|
48
|
+
v-model:radio="selectedLocation"
|
|
49
|
+
:label="location"
|
|
50
|
+
:value="location"
|
|
51
|
+
mode="radio"
|
|
52
|
+
class="mn-b-micro"
|
|
53
|
+
/>
|
|
54
|
+
</div>
|
|
55
|
+
</template>
|
|
56
|
+
</Spoiler>
|
|
57
|
+
|
|
58
|
+
<!-- Delivery Options -->
|
|
59
|
+
<Spoiler
|
|
60
|
+
class="o-hidden mn-b-medium"
|
|
61
|
+
:status="true"
|
|
62
|
+
>
|
|
63
|
+
<template #header="{ isOpen }">
|
|
64
|
+
<div class="cursor-pointer w-100 flex-v-center flex-nowrap flex">
|
|
65
|
+
<h4 class="w-100">Delivery Options</h4>
|
|
66
|
+
<div class="h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra">
|
|
67
|
+
<IconChevronBottom :class="{ 'rotate-180 mn-t-micro-negative': isOpen }" fill="rgb(var(--black))" class="i-regular"/>
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
</template>
|
|
71
|
+
|
|
72
|
+
<template #content>
|
|
73
|
+
<div class="mn-t-small">
|
|
74
|
+
<Checkbox
|
|
75
|
+
v-for="option in deliveryOptions"
|
|
76
|
+
:key="option.value"
|
|
77
|
+
v-model:checkbox="selectedDeliveryOptions"
|
|
78
|
+
:label="option.label"
|
|
79
|
+
:value="option.value"
|
|
80
|
+
mode="checkbox"
|
|
81
|
+
class="mn-b-micro"
|
|
82
|
+
/>
|
|
83
|
+
</div>
|
|
84
|
+
</template>
|
|
85
|
+
</Spoiler>
|
|
86
|
+
|
|
87
|
+
<!-- Payment Options -->
|
|
88
|
+
<Spoiler
|
|
89
|
+
class="o-hidden mn-b-medium"
|
|
90
|
+
:status="true"
|
|
91
|
+
>
|
|
92
|
+
<template #header="{ isOpen }">
|
|
93
|
+
<div class="cursor-pointer w-100 flex-v-center flex-nowrap flex">
|
|
94
|
+
<h4 class="w-100">Payment Options</h4>
|
|
95
|
+
<div class="h-2r w-2r flex-child-auto aspect-1x1 flex-center flex bg-light radius-extra">
|
|
96
|
+
<IconChevronBottom :class="{ 'rotate-180 mn-t-micro-negative': isOpen }" fill="rgb(var(--black))" class="i-regular"/>
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
</template>
|
|
100
|
+
|
|
101
|
+
<template #content>
|
|
102
|
+
<div class="mn-t-small">
|
|
103
|
+
<Checkbox
|
|
104
|
+
v-for="option in paymentOptions"
|
|
105
|
+
:key="option.value"
|
|
106
|
+
v-model:checkbox="selectedPaymentOptions"
|
|
107
|
+
:label="option.label"
|
|
108
|
+
:value="option.value"
|
|
109
|
+
mode="checkbox"
|
|
110
|
+
class="mn-b-micro"
|
|
111
|
+
/>
|
|
112
|
+
</div>
|
|
113
|
+
</template>
|
|
114
|
+
</Spoiler>
|
|
115
|
+
|
|
116
|
+
<!-- Clear Filters Button -->
|
|
117
|
+
<button
|
|
118
|
+
@click="clearFilters"
|
|
119
|
+
class="bg-main w-100 button mn-t-medium"
|
|
120
|
+
>
|
|
121
|
+
Clear Filters
|
|
122
|
+
</button>
|
|
123
|
+
</div>
|
|
124
|
+
</div>
|
|
11
125
|
|
|
12
126
|
<!-- Catalog wrapper -->
|
|
13
127
|
<div class="pd-thin">
|
|
@@ -45,7 +159,10 @@
|
|
|
45
159
|
import { useRoute, useRouter,onBeforeRouteLeave } from 'vue-router'
|
|
46
160
|
import { useI18n } from 'vue-i18n'
|
|
47
161
|
|
|
48
|
-
import
|
|
162
|
+
import Spoiler from "@martyrs/src/components/Spoiler/Spoiler.vue"
|
|
163
|
+
import Field from "@martyrs/src/components/Field/Field.vue"
|
|
164
|
+
import Checkbox from "@martyrs/src/components/Checkbox/Checkbox.vue"
|
|
165
|
+
import IconChevronBottom from '@martyrs/src/modules/icons/navigation/IconChevronBottom.vue'
|
|
49
166
|
|
|
50
167
|
import * as globals from '@martyrs/src/modules/globals/views/store/globals.js'
|
|
51
168
|
import * as categories from '@martyrs/src/modules/products/store/categories.js';
|
|
@@ -65,6 +182,41 @@
|
|
|
65
182
|
|
|
66
183
|
const desktopFilters = ref(null)
|
|
67
184
|
|
|
185
|
+
// Categories
|
|
186
|
+
const currentCategories = ref([]);
|
|
187
|
+
const searchLocation = ref('');
|
|
188
|
+
const selectedLocation = ref('All');
|
|
189
|
+
const locationOptions = ref(['All', 'Phuket', 'Bangkok', 'Chiang Mai', 'Pattaya']);
|
|
190
|
+
|
|
191
|
+
// Delivery options
|
|
192
|
+
const deliveryOptions = ref([
|
|
193
|
+
{ label: 'Pickup', value: 'pickup' },
|
|
194
|
+
{ label: 'Delivery', value: 'delivery' },
|
|
195
|
+
{ label: 'Dine-in', value: 'dinein' }
|
|
196
|
+
]);
|
|
197
|
+
const selectedDeliveryOptions = ref([]);
|
|
198
|
+
|
|
199
|
+
// Payment options
|
|
200
|
+
const paymentOptions = ref([
|
|
201
|
+
{ label: 'Cash', value: 'cash' },
|
|
202
|
+
{ label: 'Card', value: 'card' },
|
|
203
|
+
{ label: 'Crypto', value: 'crypto' },
|
|
204
|
+
{ label: 'Bank Transfer', value: 'transfer' }
|
|
205
|
+
]);
|
|
206
|
+
const selectedPaymentOptions = ref([]);
|
|
207
|
+
|
|
208
|
+
const selectCategory = (category) => {
|
|
209
|
+
// Implementation for category selection
|
|
210
|
+
console.log('Category selected:', category);
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
const clearFilters = () => {
|
|
214
|
+
selectedLocation.value = 'All';
|
|
215
|
+
selectedDeliveryOptions.value = [];
|
|
216
|
+
selectedPaymentOptions.value = [];
|
|
217
|
+
searchLocation.value = '';
|
|
218
|
+
};
|
|
219
|
+
|
|
68
220
|
function denormalizeUrlParam(param) {
|
|
69
221
|
return param
|
|
70
222
|
.replace(/-/g, ' ') // Замена дефисов на пробелы
|
|
@@ -14,22 +14,16 @@ const NotificationsController = (db, wss, notificationService) => {
|
|
|
14
14
|
|
|
15
15
|
// Create multiple notifications at once
|
|
16
16
|
const createBatch = async (req, res) => {
|
|
17
|
-
console.log('=== Batch notifications endpoint ===');
|
|
18
|
-
console.log('Request body:', JSON.stringify(req.body, null, 2));
|
|
19
17
|
|
|
20
18
|
try {
|
|
21
19
|
const { notifications } = req.body;
|
|
22
20
|
|
|
23
21
|
if (!notifications || !Array.isArray(notifications)) {
|
|
24
|
-
console.error('Invalid request: notifications array is required');
|
|
25
22
|
return res.status(400).json({ message: 'notifications array is required' });
|
|
26
23
|
}
|
|
27
24
|
|
|
28
|
-
console.log('Creating notifications count:', notifications.length);
|
|
29
|
-
|
|
30
25
|
// Create all notifications
|
|
31
26
|
const createdNotifications = await db.notification.insertMany(notifications);
|
|
32
|
-
console.log('Created notifications:', createdNotifications.map(n => n._id));
|
|
33
27
|
|
|
34
28
|
// Fire and forget with error tracking
|
|
35
29
|
setImmediate(() => {
|
|
@@ -43,12 +43,6 @@ export default (function (db, wss) {
|
|
|
43
43
|
userId: new ObjectId(userId),
|
|
44
44
|
isActive: true,
|
|
45
45
|
});
|
|
46
|
-
console.log('=== CHANNEL SELECTION DEBUG ===');
|
|
47
|
-
console.log('userDevices found:', userDevices.length);
|
|
48
|
-
console.log('userDevices:', userDevices);
|
|
49
|
-
console.log('user.email:', user.email);
|
|
50
|
-
console.log('user.phoneNumber:', user.phoneNumber);
|
|
51
|
-
console.log('preferences.length:', preferences.length);
|
|
52
46
|
|
|
53
47
|
// Default channels if no preferences set
|
|
54
48
|
let channels = ['web']; // Web is always on by default
|
|
@@ -56,7 +50,6 @@ export default (function (db, wss) {
|
|
|
56
50
|
// If user has devices, add push to default channels
|
|
57
51
|
if (userDevices.length > 0) {
|
|
58
52
|
channels.push('push');
|
|
59
|
-
console.log('Added push channel - devices found');
|
|
60
53
|
} else {
|
|
61
54
|
console.log('No push channel - no devices found');
|
|
62
55
|
}
|
|
@@ -64,24 +57,20 @@ export default (function (db, wss) {
|
|
|
64
57
|
// If user has email, add it to default channels
|
|
65
58
|
if (user.email) {
|
|
66
59
|
channels.push('email');
|
|
67
|
-
console.log('Added email channel');
|
|
68
60
|
}
|
|
69
61
|
// If user has phone, add SMS to default channels
|
|
70
62
|
if (user.phoneNumber) {
|
|
71
63
|
channels.push('sms');
|
|
72
|
-
console.log('Added SMS channel');
|
|
73
64
|
}
|
|
74
65
|
// Override with user preferences if they exist
|
|
75
66
|
if (preferences.length > 0) {
|
|
76
67
|
channels = preferences.filter(pref => pref.isEnabled).map(pref => pref.channelType);
|
|
77
|
-
console.log('Overridden with user preferences:', channels);
|
|
78
68
|
}
|
|
79
|
-
|
|
69
|
+
|
|
80
70
|
// Send to each enabled channel - parallel processing
|
|
81
71
|
const channelPromises = [];
|
|
82
72
|
|
|
83
73
|
for (const channel of channels) {
|
|
84
|
-
console.log(`=== PREPARING CHANNEL: ${channel} ===`);
|
|
85
74
|
const sendFunc = channelRouters[channel];
|
|
86
75
|
if (!sendFunc) {
|
|
87
76
|
channelPromises.push(Promise.resolve({
|
|
@@ -93,17 +82,14 @@ export default (function (db, wss) {
|
|
|
93
82
|
}
|
|
94
83
|
|
|
95
84
|
if (channel === 'push') {
|
|
96
|
-
console.log(`Preparing push to ${userDevices.length} devices`);
|
|
97
85
|
// Each device as separate promise for true parallelism
|
|
98
86
|
for (const device of userDevices) {
|
|
99
87
|
channelPromises.push(
|
|
100
88
|
sendFunc(notification, user, device)
|
|
101
89
|
.then(() => {
|
|
102
|
-
console.log(`Push sent successfully to device ${device.deviceId}`);
|
|
103
90
|
return { channel: 'push', deviceId: device.deviceId, success: true };
|
|
104
91
|
})
|
|
105
92
|
.catch(err => {
|
|
106
|
-
console.error(`Push failed for device ${device.deviceId}:`, err);
|
|
107
93
|
return { channel: 'push', deviceId: device.deviceId, success: false, error: err.message };
|
|
108
94
|
})
|
|
109
95
|
);
|
|
@@ -123,7 +109,6 @@ export default (function (db, wss) {
|
|
|
123
109
|
}
|
|
124
110
|
}
|
|
125
111
|
|
|
126
|
-
console.log(`=== PROCESSING ${channelPromises.length} PARALLEL OPERATIONS ===`);
|
|
127
112
|
const results = await Promise.allSettled(channelPromises);
|
|
128
113
|
|
|
129
114
|
// Process results and create batch logs
|
|
@@ -180,7 +165,6 @@ export default (function (db, wss) {
|
|
|
180
165
|
};
|
|
181
166
|
// Send websocket notifications
|
|
182
167
|
const sendWebNotification = async (notification, user) => {
|
|
183
|
-
console.log(`[WebSocket][notification] sending to user ${user._id}`);
|
|
184
168
|
const result = await wss.sendToUserInModule('notification', user._id, {
|
|
185
169
|
type: 'notification',
|
|
186
170
|
data: notification,
|
|
@@ -17,10 +17,8 @@ const WebPushService = {
|
|
|
17
17
|
badge: process.env.NOTIFICATION_BADGE_URL || '/favicon.ico',
|
|
18
18
|
data: data,
|
|
19
19
|
});
|
|
20
|
-
console.log('payload is', payload);
|
|
21
20
|
// Send the notification
|
|
22
21
|
const result = await webpush.sendNotification(subscription, payload);
|
|
23
|
-
console.log('web push is', result);
|
|
24
22
|
return { success: true, statusCode: result.statusCode };
|
|
25
23
|
} catch (error) {
|
|
26
24
|
console.error('Web Push service error:', error);
|
|
@@ -55,13 +55,13 @@
|
|
|
55
55
|
<p class="t-medium mn-r-auto">{{formatDate(order.deadline)}}</p>
|
|
56
56
|
|
|
57
57
|
<span
|
|
58
|
-
class="flex-child flex-child-shrink-0 capitalize w-max t-medium radius-big pd-
|
|
58
|
+
class="flex-child flex-child-shrink-0 capitalize w-max t-medium radius-big pd-thin bg-main"
|
|
59
59
|
>
|
|
60
60
|
{{order.status}}
|
|
61
61
|
</span>
|
|
62
62
|
|
|
63
63
|
<span
|
|
64
|
-
class="flex-child flex-child-shrink-0 capitalize w-max t-medium radius-big pd-
|
|
64
|
+
class="flex-child flex-child-shrink-0 capitalize w-max t-medium radius-big pd-thin t-white bg-red"
|
|
65
65
|
>
|
|
66
66
|
{{order.payment.status || 'Not defined'}}
|
|
67
67
|
</span>
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
Order: #{{order._id}}
|
|
27
27
|
|
|
28
28
|
<span
|
|
29
|
-
class="flex-child flex-child-shrink-0 capitalize w-max mn-r-thin t-medium radius-big pd-
|
|
29
|
+
class="flex-child flex-child-shrink-0 capitalize w-max mn-r-thin t-medium radius-big pd-thin bg-main"
|
|
30
30
|
>
|
|
31
31
|
{{order.status}}
|
|
32
32
|
</span>
|
|
@@ -505,11 +505,9 @@ const controllerFactory = db => {
|
|
|
505
505
|
console.log('Sending notification for status change...');
|
|
506
506
|
try {
|
|
507
507
|
const usersWithAccess = await getUsersWithOrdersConfirmAccess(order.owner.target);
|
|
508
|
-
const filteredUsers = usersWithAccess.filter(userId =>
|
|
509
|
-
userId.toString() !== order.creator.target.toString()
|
|
510
|
-
);
|
|
511
508
|
|
|
512
|
-
|
|
509
|
+
// Отправляем уведомления всем пользователям с доступом, включая создателя
|
|
510
|
+
await sendOrderNotifications(order, 'order_status', usersWithAccess, {
|
|
513
511
|
oldStatus: oldStatus,
|
|
514
512
|
newStatus: order.status,
|
|
515
513
|
organization: order.owner.target
|
|
@@ -115,7 +115,7 @@ function initializeOrders(app, store, router, options = {}) {
|
|
|
115
115
|
routes: routerCustomers,
|
|
116
116
|
routeNamePrefix: 'Backoffice',
|
|
117
117
|
filterConfig: {
|
|
118
|
-
include: ['
|
|
118
|
+
include: ['Customers'],
|
|
119
119
|
},
|
|
120
120
|
meta: {
|
|
121
121
|
context: 'backoffice',
|
|
@@ -131,7 +131,7 @@ function initializeOrders(app, store, router, options = {}) {
|
|
|
131
131
|
routes: routerCustomers,
|
|
132
132
|
routeNamePrefix: 'Organization',
|
|
133
133
|
filterConfig: {
|
|
134
|
-
include: ['
|
|
134
|
+
include: ['Customers'],
|
|
135
135
|
},
|
|
136
136
|
meta: {
|
|
137
137
|
context: 'organization',
|