@ozdao/martyrs 0.2.489 → 0.2.491
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/auth.server.cjs +2 -51
- package/dist/auth.server.js +1 -50
- package/dist/builder.cjs +90 -4
- package/dist/builder.js +90 -4
- package/dist/main-BhCqlPMQ.cjs +11 -0
- package/dist/{main-IVRL6IjM.js → main-YBlKbx0g.js} +1308 -1285
- package/dist/martyrs/src/components/Block/Block.vue.cjs +1 -1
- package/dist/martyrs/src/components/Block/Block.vue.js +1 -1
- package/dist/martyrs/src/components/Button/Button.vue2.cjs +48 -21
- package/dist/martyrs/src/components/Button/Button.vue2.cjs.map +1 -1
- package/dist/martyrs/src/components/Button/Button.vue2.js +49 -22
- package/dist/martyrs/src/components/Button/Button.vue2.js.map +1 -1
- package/dist/martyrs/src/components/Chips/{Chips.vue2.cjs → Chips.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/Chips/{Chips.vue2.js → Chips.vue.js} +2 -2
- package/dist/martyrs/src/components/Chips/Chips.vue.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/Feed/Carousel.vue.cjs +1 -1
- package/dist/martyrs/src/components/Feed/Carousel.vue.js +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.cjs +2 -2
- package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -2
- 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 → Loader.vue.cjs} +3 -3
- package/dist/martyrs/src/components/Loader/Loader.vue.cjs.map +1 -0
- package/dist/martyrs/src/components/Loader/{Loader.vue2.js → Loader.vue.js} +3 -3
- package/dist/martyrs/src/components/Loader/Loader.vue.js.map +1 -0
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.cjs +1 -1
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue2.js +1 -1
- package/dist/martyrs/src/components/Tooltip/{Tooltip.vue2.cjs → Tooltip.vue.cjs} +2 -2
- package/dist/martyrs/src/components/Tooltip/{Tooltip.vue2.js.map → Tooltip.vue.cjs.map} +1 -1
- package/dist/martyrs/src/components/Tooltip/{Tooltip.vue2.js → Tooltip.vue.js} +2 -2
- package/dist/martyrs/src/components/Tooltip/Tooltip.vue.js.map +1 -0
- package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.cjs +1 -1
- package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.cjs +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +2 -2
- 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/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/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/Event.vue.cjs +3 -3
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +3 -3
- package/dist/martyrs/src/modules/events/components/sections/Feed.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/sections/List.vue.cjs +1 -1
- package/dist/martyrs/src/modules/events/components/sections/List.vue.js +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.cjs +1 -1
- package/dist/martyrs/src/modules/gallery/components/sections/BackofficeGallery.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/globals.client.cjs +1 -2
- package/dist/martyrs/src/modules/globals/globals.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/globals.client.js +1 -2
- package/dist/martyrs/src/modules/globals/globals.client.js.map +1 -1
- 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 +3 -3
- package/dist/martyrs/src/modules/globals/views/components/blocks/CardHeader.vue.js +3 -3
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.cjs +1 -1
- package/dist/martyrs/src/modules/globals/views/components/blocks/PopupDateSelector.vue.js +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs +10 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js +10 -1
- package/dist/martyrs/src/modules/globals/views/components/layouts/Client.vue.js.map +1 -1
- 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/marketplace/views/components/sections/SectionMenu.vue.cjs +1 -1
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.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/layouts/MusicLayout.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/layouts/MusicLayout.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.cjs +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Track.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.cjs +1 -1
- package/dist/martyrs/src/modules/music/components/pages/TrackCreate.vue.js +1 -1
- package/dist/martyrs/src/modules/notifications/components/layouts/NotificationsLayout.vue.cjs +22 -8
- package/dist/martyrs/src/modules/notifications/components/layouts/NotificationsLayout.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/layouts/NotificationsLayout.vue.js +23 -9
- package/dist/martyrs/src/modules/notifications/components/layouts/NotificationsLayout.vue.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.cjs +13 -15
- package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.js +14 -16
- package/dist/martyrs/src/modules/notifications/components/pages/Notifications.vue.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.cjs +2 -2
- package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js +2 -2
- package/dist/martyrs/src/modules/notifications/components/sections/NotificationPreferences.vue.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/sections/NotificationsList.vue.cjs +2 -2
- package/dist/martyrs/src/modules/notifications/components/sections/NotificationsList.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/notifications/components/sections/NotificationsList.vue.js +2 -2
- package/dist/martyrs/src/modules/notifications/components/sections/NotificationsList.vue.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/notifications.client.cjs +1 -1
- package/dist/martyrs/src/modules/notifications/notifications.client.cjs.map +1 -1
- package/dist/martyrs/src/modules/notifications/notifications.client.js +7 -7
- package/dist/martyrs/src/modules/notifications/notifications.client.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/router/notifications.router.js +4 -4
- package/dist/martyrs/src/modules/notifications/router/notifications.router.js.map +1 -1
- package/dist/martyrs/src/modules/notifications/store/notifications.store.cjs +7 -10
- package/dist/martyrs/src/modules/notifications/store/notifications.store.cjs.map +1 -1
- package/dist/martyrs/src/modules/notifications/store/notifications.store.js +7 -10
- package/dist/martyrs/src/modules/notifications/store/notifications.store.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.vue.cjs +1 -1
- package/dist/martyrs/src/modules/orders/components/blocks/CardOrderUser.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/partials/ShopCart.vue.cjs +0 -1
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.cjs.map +1 -1
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js +0 -1
- package/dist/martyrs/src/modules/orders/components/partials/ShopCart.vue.js.map +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.cjs +2 -2
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +2 -2
- 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/pages/DepartmentEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/DepartmentEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/Members.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.cjs +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/DetailsTabSection.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.cjs +1 -1
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.cjs +1 -1
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/blocks/ProductDiscounts.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/elements/Image360.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/elements/Image360.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Categories.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.cjs +2 -2
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.cjs +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.vue.cjs +1 -1
- package/dist/martyrs/src/modules/spots/components/blocks/CardSpot.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/wallet/views/components/pages/Wallet.vue.cjs +3 -3
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +3 -3
- package/dist/martyrs.cjs.js +1 -1
- package/dist/martyrs.css +1 -1
- package/dist/martyrs.es.js +1 -1
- package/dist/notifications.server.cjs +142 -44
- package/dist/notifications.server.js +142 -44
- package/dist/orders.server.cjs +155 -102
- package/dist/orders.server.js +155 -102
- package/dist/products.server.cjs +4 -0
- package/dist/products.server.js +4 -0
- package/dist/profile.schema-BGAe5VN5.js +92 -0
- package/dist/profile.schema-pidHrksV.cjs +91 -0
- package/dist/style.css +65 -247
- package/dist/{web-BXhlxo6M.cjs → web-BBmMBRv-.cjs} +1 -1
- package/dist/{web-Czi05iGG.js → web-Dqu-aCL5.js} +1 -1
- package/package.json +1 -1
- package/src/builder/rspack/rspack.config.spa.client.js +46 -1
- package/src/builder/rspack/rspack.config.ssr.client.js +43 -0
- package/src/builder/templates/page.js +1 -1
- package/src/components/Button/Button.vue +230 -196
- package/src/components/Loader/Loader.vue +1 -1
- package/src/modules/auth/controllers/middlewares/visitor.logger.js +22 -0
- package/src/modules/globals/globals.client.js +1 -1
- package/src/modules/globals/views/components/layouts/Client.vue +10 -9
- package/src/modules/notifications/FIXES.md +4 -0
- package/src/modules/notifications/components/layouts/NotificationsLayout.vue +33 -32
- package/src/modules/notifications/components/pages/Notifications.vue +10 -51
- package/src/modules/notifications/components/sections/NotificationPreferences.vue +1 -11
- package/src/modules/notifications/components/sections/NotificationsList.vue +1 -1
- package/src/modules/notifications/controllers/notifications.controller.js +50 -4
- package/src/modules/notifications/notifications.client.js +1 -1
- package/src/modules/notifications/notifications.server.js +18 -7
- package/src/modules/notifications/routes/notifications.routes.js +4 -2
- package/src/modules/notifications/services/notification.service.js +109 -38
- package/src/modules/notifications/services/telegram.service.js +1 -0
- package/src/modules/notifications/services/whatsapp.service.js +1 -0
- package/src/modules/notifications/store/notifications.store.js +25 -16
- package/src/modules/orders/components/partials/ShopCart.vue +0 -1
- package/src/modules/orders/controllers/orders.controller.js +195 -85
- package/src/modules/products/controllers/products.controller.js +4 -0
- package/dist/main-CmuUC0tl.cjs +0 -11
- package/dist/martyrs/src/components/Chips/Chips.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Chips/Chips.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Dropdown/Dropdown.vue.js.map +0 -1
- package/dist/martyrs/src/components/Loader/Loader.vue2.cjs.map +0 -1
- package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Tooltip/Tooltip.vue2.cjs.map +0 -1
- package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/StoreDebugger.vue.cjs +0 -200
- package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/StoreDebugger.vue.cjs.map +0 -1
- package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/StoreDebugger.vue.js +0 -200
- package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/StoreDebugger.vue.js.map +0 -1
- package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/store-debugger.plugin.cjs +0 -21
- package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/store-debugger.plugin.cjs.map +0 -1
- package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/store-debugger.plugin.js +0 -21
- package/dist/martyrs/src/modules/globals/views/plugins/store-debugger/store-debugger.plugin.js.map +0 -1
- package/dist/node_modules/date-fns/_lib/addLeadingZeros.cjs +0 -9
- package/dist/node_modules/date-fns/_lib/addLeadingZeros.cjs.map +0 -1
- package/dist/node_modules/date-fns/_lib/addLeadingZeros.js +0 -9
- package/dist/node_modules/date-fns/_lib/addLeadingZeros.js.map +0 -1
- package/dist/node_modules/date-fns/_lib/defaultOptions.cjs +0 -8
- package/dist/node_modules/date-fns/_lib/defaultOptions.cjs.map +0 -1
- package/dist/node_modules/date-fns/_lib/defaultOptions.js +0 -8
- package/dist/node_modules/date-fns/_lib/defaultOptions.js.map +0 -1
- package/dist/node_modules/date-fns/_lib/format/formatters.cjs +0 -653
- package/dist/node_modules/date-fns/_lib/format/formatters.cjs.map +0 -1
- package/dist/node_modules/date-fns/_lib/format/formatters.js +0 -653
- package/dist/node_modules/date-fns/_lib/format/formatters.js.map +0 -1
- package/dist/node_modules/date-fns/_lib/format/lightFormatters.cjs +0 -63
- package/dist/node_modules/date-fns/_lib/format/lightFormatters.cjs.map +0 -1
- package/dist/node_modules/date-fns/_lib/format/lightFormatters.js +0 -63
- package/dist/node_modules/date-fns/_lib/format/lightFormatters.js.map +0 -1
- package/dist/node_modules/date-fns/_lib/format/longFormatters.cjs +0 -59
- package/dist/node_modules/date-fns/_lib/format/longFormatters.cjs.map +0 -1
- package/dist/node_modules/date-fns/_lib/format/longFormatters.js +0 -59
- package/dist/node_modules/date-fns/_lib/format/longFormatters.js.map +0 -1
- package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.cjs +0 -21
- package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.cjs.map +0 -1
- package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js +0 -21
- package/dist/node_modules/date-fns/_lib/getTimezoneOffsetInMilliseconds.js.map +0 -1
- package/dist/node_modules/date-fns/_lib/normalizeDates.cjs +0 -12
- package/dist/node_modules/date-fns/_lib/normalizeDates.cjs.map +0 -1
- package/dist/node_modules/date-fns/_lib/normalizeDates.js +0 -12
- package/dist/node_modules/date-fns/_lib/normalizeDates.js.map +0 -1
- package/dist/node_modules/date-fns/_lib/protectedTokens.cjs +0 -24
- package/dist/node_modules/date-fns/_lib/protectedTokens.cjs.map +0 -1
- package/dist/node_modules/date-fns/_lib/protectedTokens.js +0 -24
- package/dist/node_modules/date-fns/_lib/protectedTokens.js.map +0 -1
- package/dist/node_modules/date-fns/constants.cjs +0 -9
- package/dist/node_modules/date-fns/constants.cjs.map +0 -1
- package/dist/node_modules/date-fns/constants.js +0 -9
- package/dist/node_modules/date-fns/constants.js.map +0 -1
- package/dist/node_modules/date-fns/constructFrom.cjs +0 -13
- package/dist/node_modules/date-fns/constructFrom.cjs.map +0 -1
- package/dist/node_modules/date-fns/constructFrom.js +0 -13
- package/dist/node_modules/date-fns/constructFrom.js.map +0 -1
- package/dist/node_modules/date-fns/differenceInCalendarDays.cjs +0 -21
- package/dist/node_modules/date-fns/differenceInCalendarDays.cjs.map +0 -1
- package/dist/node_modules/date-fns/differenceInCalendarDays.js +0 -21
- package/dist/node_modules/date-fns/differenceInCalendarDays.js.map +0 -1
- package/dist/node_modules/date-fns/format.cjs +0 -80
- package/dist/node_modules/date-fns/format.cjs.map +0 -1
- package/dist/node_modules/date-fns/format.js +0 -80
- package/dist/node_modules/date-fns/format.js.map +0 -1
- package/dist/node_modules/date-fns/getDayOfYear.cjs +0 -14
- package/dist/node_modules/date-fns/getDayOfYear.cjs.map +0 -1
- package/dist/node_modules/date-fns/getDayOfYear.js +0 -14
- package/dist/node_modules/date-fns/getDayOfYear.js.map +0 -1
- package/dist/node_modules/date-fns/getISOWeek.cjs +0 -14
- package/dist/node_modules/date-fns/getISOWeek.cjs.map +0 -1
- package/dist/node_modules/date-fns/getISOWeek.js +0 -14
- package/dist/node_modules/date-fns/getISOWeek.js.map +0 -1
- package/dist/node_modules/date-fns/getISOWeekYear.cjs +0 -27
- package/dist/node_modules/date-fns/getISOWeekYear.cjs.map +0 -1
- package/dist/node_modules/date-fns/getISOWeekYear.js +0 -27
- package/dist/node_modules/date-fns/getISOWeekYear.js.map +0 -1
- package/dist/node_modules/date-fns/getWeek.cjs +0 -14
- package/dist/node_modules/date-fns/getWeek.cjs.map +0 -1
- package/dist/node_modules/date-fns/getWeek.js +0 -14
- package/dist/node_modules/date-fns/getWeek.js.map +0 -1
- package/dist/node_modules/date-fns/getWeekYear.cjs +0 -31
- package/dist/node_modules/date-fns/getWeekYear.cjs.map +0 -1
- package/dist/node_modules/date-fns/getWeekYear.js +0 -31
- package/dist/node_modules/date-fns/getWeekYear.js.map +0 -1
- package/dist/node_modules/date-fns/isDate.cjs +0 -8
- package/dist/node_modules/date-fns/isDate.cjs.map +0 -1
- package/dist/node_modules/date-fns/isDate.js +0 -8
- package/dist/node_modules/date-fns/isDate.js.map +0 -1
- package/dist/node_modules/date-fns/isValid.cjs +0 -10
- package/dist/node_modules/date-fns/isValid.cjs.map +0 -1
- package/dist/node_modules/date-fns/isValid.js +0 -10
- package/dist/node_modules/date-fns/isValid.js.map +0 -1
- package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.cjs +0 -11
- package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.cjs.map +0 -1
- package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js +0 -11
- package/dist/node_modules/date-fns/locale/_lib/buildFormatLongFn.js.map +0 -1
- package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.cjs +0 -21
- package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.cjs.map +0 -1
- package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js +0 -21
- package/dist/node_modules/date-fns/locale/_lib/buildLocalizeFn.js.map +0 -1
- package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.cjs +0 -44
- package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.cjs.map +0 -1
- package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js +0 -44
- package/dist/node_modules/date-fns/locale/_lib/buildMatchFn.js.map +0 -1
- package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.cjs +0 -17
- package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.cjs.map +0 -1
- package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js +0 -17
- package/dist/node_modules/date-fns/locale/_lib/buildMatchPatternFn.js.map +0 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.cjs +0 -86
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.cjs.map +0 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js +0 -86
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatDistance.js.map +0 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.cjs +0 -37
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.cjs.map +0 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js +0 -37
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatLong.js.map +0 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.cjs +0 -13
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.cjs.map +0 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js +0 -13
- package/dist/node_modules/date-fns/locale/en-US/_lib/formatRelative.js.map +0 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/localize.cjs +0 -165
- package/dist/node_modules/date-fns/locale/en-US/_lib/localize.cjs.map +0 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js +0 -165
- package/dist/node_modules/date-fns/locale/en-US/_lib/localize.js.map +0 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/match.cjs +0 -123
- package/dist/node_modules/date-fns/locale/en-US/_lib/match.cjs.map +0 -1
- package/dist/node_modules/date-fns/locale/en-US/_lib/match.js +0 -123
- package/dist/node_modules/date-fns/locale/en-US/_lib/match.js.map +0 -1
- package/dist/node_modules/date-fns/locale/en-US.cjs +0 -22
- package/dist/node_modules/date-fns/locale/en-US.cjs.map +0 -1
- package/dist/node_modules/date-fns/locale/en-US.js +0 -22
- package/dist/node_modules/date-fns/locale/en-US.js.map +0 -1
- package/dist/node_modules/date-fns/startOfDay.cjs +0 -11
- package/dist/node_modules/date-fns/startOfDay.cjs.map +0 -1
- package/dist/node_modules/date-fns/startOfDay.js +0 -11
- package/dist/node_modules/date-fns/startOfDay.js.map +0 -1
- package/dist/node_modules/date-fns/startOfISOWeek.cjs +0 -9
- package/dist/node_modules/date-fns/startOfISOWeek.cjs.map +0 -1
- package/dist/node_modules/date-fns/startOfISOWeek.js +0 -9
- package/dist/node_modules/date-fns/startOfISOWeek.js.map +0 -1
- package/dist/node_modules/date-fns/startOfISOWeekYear.cjs +0 -15
- package/dist/node_modules/date-fns/startOfISOWeekYear.cjs.map +0 -1
- package/dist/node_modules/date-fns/startOfISOWeekYear.js +0 -15
- package/dist/node_modules/date-fns/startOfISOWeekYear.js.map +0 -1
- package/dist/node_modules/date-fns/startOfWeek.cjs +0 -18
- package/dist/node_modules/date-fns/startOfWeek.cjs.map +0 -1
- package/dist/node_modules/date-fns/startOfWeek.js +0 -18
- package/dist/node_modules/date-fns/startOfWeek.js.map +0 -1
- package/dist/node_modules/date-fns/startOfWeekYear.cjs +0 -20
- package/dist/node_modules/date-fns/startOfWeekYear.cjs.map +0 -1
- package/dist/node_modules/date-fns/startOfWeekYear.js +0 -20
- package/dist/node_modules/date-fns/startOfWeekYear.js.map +0 -1
- package/dist/node_modules/date-fns/startOfYear.cjs +0 -12
- package/dist/node_modules/date-fns/startOfYear.cjs.map +0 -1
- package/dist/node_modules/date-fns/startOfYear.js +0 -12
- package/dist/node_modules/date-fns/startOfYear.js.map +0 -1
- package/dist/node_modules/date-fns/toDate.cjs +0 -9
- package/dist/node_modules/date-fns/toDate.cjs.map +0 -1
- package/dist/node_modules/date-fns/toDate.js +0 -9
- package/dist/node_modules/date-fns/toDate.js.map +0 -1
- package/dist/profile.schema-DchVS-Jr.js +0 -21
- package/dist/profile.schema-yQuIzngl.cjs +0 -20
package/dist/orders.server.cjs
CHANGED
|
@@ -3,9 +3,9 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
|
|
|
3
3
|
const globals_logger = require("./globals.logger-CZMgIMlM.cjs");
|
|
4
4
|
const queryProcessor = require("./queryProcessor-B_X680wC.cjs");
|
|
5
5
|
const mailing = require("./mailing-q7sR8gCV.cjs");
|
|
6
|
+
const profile_schema = require("./profile.schema-pidHrksV.cjs");
|
|
6
7
|
const credentials_schema = require("./credentials.schema-DwhGdrwC.cjs");
|
|
7
8
|
const ownership_schema = require("./ownership.schema-D1p5XSpt.cjs");
|
|
8
|
-
const profile_schema = require("./profile.schema-yQuIzngl.cjs");
|
|
9
9
|
const index = require("./index-BFxqqmgh.cjs");
|
|
10
10
|
const axios = require("axios");
|
|
11
11
|
class CRUD {
|
|
@@ -93,83 +93,151 @@ class CRUD {
|
|
|
93
93
|
}
|
|
94
94
|
}
|
|
95
95
|
}
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
creatorTarget = orderOwner.target;
|
|
96
|
+
const controllerFactory = (db) => {
|
|
97
|
+
const Order = db.order;
|
|
98
|
+
const Customer = db.customer;
|
|
99
|
+
const Department = db.department;
|
|
100
|
+
const { findOrCreateVisitor } = profile_schema.modelsFactory(db);
|
|
101
|
+
const getUsersWithOrdersConfirmAccess = async (organizationId) => {
|
|
102
|
+
console.log("=== Getting users with orders.confirm access ===");
|
|
103
|
+
console.log("Organization ID:", organizationId);
|
|
104
|
+
const pipeline = [
|
|
105
|
+
{ $match: {
|
|
106
|
+
organization: new db.mongoose.Types.ObjectId(organizationId),
|
|
107
|
+
"accesses.orders.confirm": true
|
|
108
|
+
} },
|
|
109
|
+
{ $unwind: "$members" },
|
|
110
|
+
{ $group: {
|
|
111
|
+
_id: "$members.user"
|
|
112
|
+
} },
|
|
113
|
+
{ $project: { userId: "$_id" } }
|
|
114
|
+
];
|
|
115
|
+
console.log("Pipeline:", JSON.stringify(pipeline, null, 2));
|
|
116
|
+
const result = await Department.aggregate(pipeline);
|
|
117
|
+
const userIds = result.map((item) => item.userId);
|
|
118
|
+
console.log("Found departments with access:", result.length);
|
|
119
|
+
console.log("User IDs with access:", userIds);
|
|
120
|
+
console.log("=== End getting users ===");
|
|
121
|
+
return userIds;
|
|
122
|
+
};
|
|
123
|
+
const sendOrderNotifications = async (order, type, userIds, extraData = {}) => {
|
|
124
|
+
console.log("=== Sending order notifications ===");
|
|
125
|
+
console.log("Order ID:", order._id);
|
|
126
|
+
console.log("Type:", type);
|
|
127
|
+
console.log("User IDs:", userIds);
|
|
128
|
+
console.log("Extra data:", extraData);
|
|
129
|
+
if (!userIds || userIds.length === 0) {
|
|
130
|
+
console.log("No users to notify, skipping...");
|
|
131
|
+
return;
|
|
133
132
|
}
|
|
134
|
-
const
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
133
|
+
const notifications = userIds.map((userId) => ({
|
|
134
|
+
title: getNotificationTitle(type, order, extraData),
|
|
135
|
+
body: getNotificationBody(type, order, extraData),
|
|
136
|
+
type,
|
|
137
|
+
metadata: {
|
|
138
|
+
type,
|
|
139
|
+
orderId: order._id,
|
|
140
|
+
context: "organization",
|
|
141
|
+
...extraData
|
|
143
142
|
},
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
143
|
+
userId
|
|
144
|
+
}));
|
|
145
|
+
function getNotificationTitle(type2, order2, extraData2 = {}) {
|
|
146
|
+
switch (type2) {
|
|
147
|
+
case "order_created":
|
|
148
|
+
return "New Order";
|
|
149
|
+
case "order_status":
|
|
150
|
+
return "Order Status Updated";
|
|
151
|
+
default:
|
|
152
|
+
return "Order Notification";
|
|
147
153
|
}
|
|
148
|
-
}
|
|
154
|
+
}
|
|
155
|
+
function getNotificationBody(type2, order2, extraData2 = {}) {
|
|
156
|
+
switch (type2) {
|
|
157
|
+
case "order_created":
|
|
158
|
+
return `New order #${order2._id} created`;
|
|
159
|
+
case "order_status":
|
|
160
|
+
return `Order #${order2._id} changed from ${extraData2.oldStatus} to ${extraData2.newStatus}`;
|
|
161
|
+
default:
|
|
162
|
+
return `Order #${order2._id} updated`;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
console.log("Prepared notifications:", JSON.stringify(notifications, null, 2));
|
|
166
|
+
console.log("API URL:", `${process.env.API_URL || ""}/api/notifications/batch`);
|
|
149
167
|
try {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
168
|
+
const response = await fetch(`${process.env.API_URL || ""}/api/notifications/batch`, {
|
|
169
|
+
method: "POST",
|
|
170
|
+
headers: {
|
|
171
|
+
"Content-Type": "application/json",
|
|
172
|
+
"X-Service-Key": process.env.SERVICE_KEY
|
|
173
|
+
},
|
|
174
|
+
body: JSON.stringify({ notifications })
|
|
175
|
+
});
|
|
176
|
+
console.log("Notification response status:", response.status);
|
|
177
|
+
if (!response.ok) {
|
|
178
|
+
const errorData = await response.text();
|
|
179
|
+
console.error("Notification API error:", errorData);
|
|
180
|
+
throw new Error(`Notification API failed: ${response.status} - ${errorData}`);
|
|
181
|
+
}
|
|
182
|
+
const result = await response.json();
|
|
183
|
+
console.log("Notification API success:", result);
|
|
184
|
+
console.log("=== End sending notifications ===");
|
|
185
|
+
return result;
|
|
186
|
+
} catch (error) {
|
|
187
|
+
console.error("=== Notification sending failed ===");
|
|
188
|
+
console.error("Error:", error.message);
|
|
189
|
+
console.error("Stack:", error.stack);
|
|
190
|
+
throw error;
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
const findOrCreateCustomer = async (customerInfo, orderOwner, orderCreator, req) => {
|
|
194
|
+
let searchCriteria = {};
|
|
195
|
+
if (customerInfo.phone) {
|
|
196
|
+
searchCriteria.phone = customerInfo.phone;
|
|
197
|
+
}
|
|
198
|
+
if (customerInfo.email) {
|
|
199
|
+
searchCriteria.email = customerInfo.email;
|
|
200
|
+
}
|
|
201
|
+
let customer = null;
|
|
202
|
+
if (Object.keys(searchCriteria).length > 0) {
|
|
203
|
+
customer = await Customer.findOne({ $or: [searchCriteria] });
|
|
204
|
+
}
|
|
205
|
+
if (!customer) {
|
|
206
|
+
const visitor = await findOrCreateVisitor(req);
|
|
207
|
+
let creatorType = customerInfo.creator?.type || orderCreator.type;
|
|
208
|
+
let creatorTarget = customerInfo.creator?.target || orderCreator.target;
|
|
209
|
+
if (!creatorTarget) {
|
|
210
|
+
creatorType = orderOwner.type;
|
|
211
|
+
creatorTarget = orderOwner.target;
|
|
212
|
+
}
|
|
213
|
+
const newCustomerData = {
|
|
214
|
+
...customerInfo,
|
|
215
|
+
// Ensure we're not passing any null _id that might override MongoDB's auto-generation
|
|
216
|
+
_id: void 0,
|
|
217
|
+
// Let MongoDB generate this
|
|
218
|
+
owner: orderOwner,
|
|
219
|
+
creator: {
|
|
220
|
+
type: creatorType,
|
|
221
|
+
target: creatorTarget
|
|
222
|
+
},
|
|
223
|
+
identity: {
|
|
224
|
+
type: "Visitor",
|
|
225
|
+
target: visitor._id
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
try {
|
|
229
|
+
customer = await Customer.create(newCustomerData);
|
|
230
|
+
if (!customer || !customer._id) {
|
|
231
|
+
console.error("Customer creation failed to generate _id:", customer);
|
|
232
|
+
throw new Error("Customer creation did not generate a valid _id");
|
|
233
|
+
}
|
|
234
|
+
} catch (err) {
|
|
235
|
+
console.error("Error creating customer:", err);
|
|
236
|
+
throw err;
|
|
154
237
|
}
|
|
155
|
-
} catch (err) {
|
|
156
|
-
console.error("Error creating customer:", err);
|
|
157
|
-
throw err;
|
|
158
238
|
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
}
|
|
162
|
-
async function sendOrderMessage(orderData) {
|
|
163
|
-
try {
|
|
164
|
-
const formattedMessage = formatOrderMessage(orderData);
|
|
165
|
-
await sendChatMessageTelegram$1(process.env.TELEGRAM_BOT_USERS.split(","), formattedMessage);
|
|
166
|
-
} catch (err) {
|
|
167
|
-
console.error(err);
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
const controllerFactory = (db) => {
|
|
171
|
-
const Order = db.order;
|
|
172
|
-
const Customer = db.customer;
|
|
239
|
+
return customer;
|
|
240
|
+
};
|
|
173
241
|
const create = async (req, res) => {
|
|
174
242
|
const orderData = req.body;
|
|
175
243
|
req.userId || req.body.creator?.target;
|
|
@@ -184,7 +252,7 @@ const controllerFactory = (db) => {
|
|
|
184
252
|
session.startTransaction();
|
|
185
253
|
try {
|
|
186
254
|
if (!orderData.customer.target) {
|
|
187
|
-
const customer = await findOrCreateCustomer(
|
|
255
|
+
const customer = await findOrCreateCustomer(orderData.customer, orderData.owner, orderData.creator, req);
|
|
188
256
|
console.log("customer is", customer);
|
|
189
257
|
if (!customer || !customer._id) {
|
|
190
258
|
throw new Error("Failed to create or find a valid customer");
|
|
@@ -204,7 +272,12 @@ const controllerFactory = (db) => {
|
|
|
204
272
|
const order = await Order.create([orderData], { session });
|
|
205
273
|
const createdOrder = order[0];
|
|
206
274
|
await session.commitTransaction();
|
|
207
|
-
|
|
275
|
+
try {
|
|
276
|
+
const usersWithAccess = await getUsersWithOrdersConfirmAccess(orderData.owner.target);
|
|
277
|
+
await sendOrderNotifications(createdOrder, "order_created", usersWithAccess);
|
|
278
|
+
} catch (notificationError) {
|
|
279
|
+
console.error("Error sending notification:", notificationError);
|
|
280
|
+
}
|
|
208
281
|
res.status(201).send(createdOrder);
|
|
209
282
|
} catch (err) {
|
|
210
283
|
await session.abortTransaction();
|
|
@@ -409,35 +482,15 @@ const controllerFactory = (db) => {
|
|
|
409
482
|
if (statusChanged) {
|
|
410
483
|
console.log("Sending notification for status change...");
|
|
411
484
|
try {
|
|
412
|
-
const
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
newStatus: order.status,
|
|
420
|
-
positions: order.positions
|
|
421
|
-
},
|
|
422
|
-
userId: order.creator.target
|
|
423
|
-
// Assuming creator.target holds the user ID
|
|
424
|
-
};
|
|
425
|
-
console.log("Notification data:", JSON.stringify(notificationData));
|
|
426
|
-
const notificationResponse = await fetch(`${process.env.API_URL || ""}/api/notifications`, {
|
|
427
|
-
method: "POST",
|
|
428
|
-
headers: {
|
|
429
|
-
"Content-Type": "application/json",
|
|
430
|
-
"X-Service-Key": process.env.SERVICE_KEY
|
|
431
|
-
},
|
|
432
|
-
body: JSON.stringify(notificationData)
|
|
485
|
+
const usersWithAccess = await getUsersWithOrdersConfirmAccess(order.owner.target);
|
|
486
|
+
const filteredUsers = usersWithAccess.filter(
|
|
487
|
+
(userId) => userId.toString() !== order.creator.target.toString()
|
|
488
|
+
);
|
|
489
|
+
await sendOrderNotifications(order, "order_status", filteredUsers, {
|
|
490
|
+
oldStatus,
|
|
491
|
+
newStatus: order.status
|
|
433
492
|
});
|
|
434
|
-
console.log("Notification
|
|
435
|
-
if (!notificationResponse.ok) {
|
|
436
|
-
const errorData = await notificationResponse.json();
|
|
437
|
-
console.error(`Failed to create notification: ${JSON.stringify(errorData)}`);
|
|
438
|
-
} else {
|
|
439
|
-
console.log("Notification sent successfully");
|
|
440
|
-
}
|
|
493
|
+
console.log("Notification sent successfully");
|
|
441
494
|
} catch (notificationError) {
|
|
442
495
|
console.error("Error sending notification:", notificationError);
|
|
443
496
|
}
|
package/dist/orders.server.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { C as Cache, L as Logger } from "./globals.logger-Bf6rRU7j.js";
|
|
2
2
|
import { q as queryProcessorGlobals } from "./queryProcessor-CVcLPEnv.js";
|
|
3
3
|
import { m as mailing } from "./mailing-C11EYWm-.js";
|
|
4
|
+
import { m as modelsFactory, a as applyProfileSchema } from "./profile.schema-BGAe5VN5.js";
|
|
4
5
|
import { a as applyCredentialsSchema } from "./credentials.schema-C9FB2EyY.js";
|
|
5
6
|
import { a as applyOwnershipSchema } from "./ownership.schema-BqH4v5vH.js";
|
|
6
|
-
import { a as applyProfileSchema } from "./profile.schema-DchVS-Jr.js";
|
|
7
7
|
import { m as middlewareIndexFactory } from "./index-_Edcmck_.js";
|
|
8
8
|
import axios from "axios";
|
|
9
9
|
class CRUD {
|
|
@@ -91,83 +91,151 @@ class CRUD {
|
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
creatorTarget = orderOwner.target;
|
|
94
|
+
const controllerFactory = (db) => {
|
|
95
|
+
const Order = db.order;
|
|
96
|
+
const Customer = db.customer;
|
|
97
|
+
const Department = db.department;
|
|
98
|
+
const { findOrCreateVisitor } = modelsFactory(db);
|
|
99
|
+
const getUsersWithOrdersConfirmAccess = async (organizationId) => {
|
|
100
|
+
console.log("=== Getting users with orders.confirm access ===");
|
|
101
|
+
console.log("Organization ID:", organizationId);
|
|
102
|
+
const pipeline = [
|
|
103
|
+
{ $match: {
|
|
104
|
+
organization: new db.mongoose.Types.ObjectId(organizationId),
|
|
105
|
+
"accesses.orders.confirm": true
|
|
106
|
+
} },
|
|
107
|
+
{ $unwind: "$members" },
|
|
108
|
+
{ $group: {
|
|
109
|
+
_id: "$members.user"
|
|
110
|
+
} },
|
|
111
|
+
{ $project: { userId: "$_id" } }
|
|
112
|
+
];
|
|
113
|
+
console.log("Pipeline:", JSON.stringify(pipeline, null, 2));
|
|
114
|
+
const result = await Department.aggregate(pipeline);
|
|
115
|
+
const userIds = result.map((item) => item.userId);
|
|
116
|
+
console.log("Found departments with access:", result.length);
|
|
117
|
+
console.log("User IDs with access:", userIds);
|
|
118
|
+
console.log("=== End getting users ===");
|
|
119
|
+
return userIds;
|
|
120
|
+
};
|
|
121
|
+
const sendOrderNotifications = async (order, type, userIds, extraData = {}) => {
|
|
122
|
+
console.log("=== Sending order notifications ===");
|
|
123
|
+
console.log("Order ID:", order._id);
|
|
124
|
+
console.log("Type:", type);
|
|
125
|
+
console.log("User IDs:", userIds);
|
|
126
|
+
console.log("Extra data:", extraData);
|
|
127
|
+
if (!userIds || userIds.length === 0) {
|
|
128
|
+
console.log("No users to notify, skipping...");
|
|
129
|
+
return;
|
|
131
130
|
}
|
|
132
|
-
const
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
131
|
+
const notifications = userIds.map((userId) => ({
|
|
132
|
+
title: getNotificationTitle(type, order, extraData),
|
|
133
|
+
body: getNotificationBody(type, order, extraData),
|
|
134
|
+
type,
|
|
135
|
+
metadata: {
|
|
136
|
+
type,
|
|
137
|
+
orderId: order._id,
|
|
138
|
+
context: "organization",
|
|
139
|
+
...extraData
|
|
141
140
|
},
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
141
|
+
userId
|
|
142
|
+
}));
|
|
143
|
+
function getNotificationTitle(type2, order2, extraData2 = {}) {
|
|
144
|
+
switch (type2) {
|
|
145
|
+
case "order_created":
|
|
146
|
+
return "New Order";
|
|
147
|
+
case "order_status":
|
|
148
|
+
return "Order Status Updated";
|
|
149
|
+
default:
|
|
150
|
+
return "Order Notification";
|
|
145
151
|
}
|
|
146
|
-
}
|
|
152
|
+
}
|
|
153
|
+
function getNotificationBody(type2, order2, extraData2 = {}) {
|
|
154
|
+
switch (type2) {
|
|
155
|
+
case "order_created":
|
|
156
|
+
return `New order #${order2._id} created`;
|
|
157
|
+
case "order_status":
|
|
158
|
+
return `Order #${order2._id} changed from ${extraData2.oldStatus} to ${extraData2.newStatus}`;
|
|
159
|
+
default:
|
|
160
|
+
return `Order #${order2._id} updated`;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
console.log("Prepared notifications:", JSON.stringify(notifications, null, 2));
|
|
164
|
+
console.log("API URL:", `${process.env.API_URL || ""}/api/notifications/batch`);
|
|
147
165
|
try {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
166
|
+
const response = await fetch(`${process.env.API_URL || ""}/api/notifications/batch`, {
|
|
167
|
+
method: "POST",
|
|
168
|
+
headers: {
|
|
169
|
+
"Content-Type": "application/json",
|
|
170
|
+
"X-Service-Key": process.env.SERVICE_KEY
|
|
171
|
+
},
|
|
172
|
+
body: JSON.stringify({ notifications })
|
|
173
|
+
});
|
|
174
|
+
console.log("Notification response status:", response.status);
|
|
175
|
+
if (!response.ok) {
|
|
176
|
+
const errorData = await response.text();
|
|
177
|
+
console.error("Notification API error:", errorData);
|
|
178
|
+
throw new Error(`Notification API failed: ${response.status} - ${errorData}`);
|
|
179
|
+
}
|
|
180
|
+
const result = await response.json();
|
|
181
|
+
console.log("Notification API success:", result);
|
|
182
|
+
console.log("=== End sending notifications ===");
|
|
183
|
+
return result;
|
|
184
|
+
} catch (error) {
|
|
185
|
+
console.error("=== Notification sending failed ===");
|
|
186
|
+
console.error("Error:", error.message);
|
|
187
|
+
console.error("Stack:", error.stack);
|
|
188
|
+
throw error;
|
|
189
|
+
}
|
|
190
|
+
};
|
|
191
|
+
const findOrCreateCustomer = async (customerInfo, orderOwner, orderCreator, req) => {
|
|
192
|
+
let searchCriteria = {};
|
|
193
|
+
if (customerInfo.phone) {
|
|
194
|
+
searchCriteria.phone = customerInfo.phone;
|
|
195
|
+
}
|
|
196
|
+
if (customerInfo.email) {
|
|
197
|
+
searchCriteria.email = customerInfo.email;
|
|
198
|
+
}
|
|
199
|
+
let customer = null;
|
|
200
|
+
if (Object.keys(searchCriteria).length > 0) {
|
|
201
|
+
customer = await Customer.findOne({ $or: [searchCriteria] });
|
|
202
|
+
}
|
|
203
|
+
if (!customer) {
|
|
204
|
+
const visitor = await findOrCreateVisitor(req);
|
|
205
|
+
let creatorType = customerInfo.creator?.type || orderCreator.type;
|
|
206
|
+
let creatorTarget = customerInfo.creator?.target || orderCreator.target;
|
|
207
|
+
if (!creatorTarget) {
|
|
208
|
+
creatorType = orderOwner.type;
|
|
209
|
+
creatorTarget = orderOwner.target;
|
|
210
|
+
}
|
|
211
|
+
const newCustomerData = {
|
|
212
|
+
...customerInfo,
|
|
213
|
+
// Ensure we're not passing any null _id that might override MongoDB's auto-generation
|
|
214
|
+
_id: void 0,
|
|
215
|
+
// Let MongoDB generate this
|
|
216
|
+
owner: orderOwner,
|
|
217
|
+
creator: {
|
|
218
|
+
type: creatorType,
|
|
219
|
+
target: creatorTarget
|
|
220
|
+
},
|
|
221
|
+
identity: {
|
|
222
|
+
type: "Visitor",
|
|
223
|
+
target: visitor._id
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
try {
|
|
227
|
+
customer = await Customer.create(newCustomerData);
|
|
228
|
+
if (!customer || !customer._id) {
|
|
229
|
+
console.error("Customer creation failed to generate _id:", customer);
|
|
230
|
+
throw new Error("Customer creation did not generate a valid _id");
|
|
231
|
+
}
|
|
232
|
+
} catch (err) {
|
|
233
|
+
console.error("Error creating customer:", err);
|
|
234
|
+
throw err;
|
|
152
235
|
}
|
|
153
|
-
} catch (err) {
|
|
154
|
-
console.error("Error creating customer:", err);
|
|
155
|
-
throw err;
|
|
156
236
|
}
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
}
|
|
160
|
-
async function sendOrderMessage(orderData) {
|
|
161
|
-
try {
|
|
162
|
-
const formattedMessage = formatOrderMessage(orderData);
|
|
163
|
-
await sendChatMessageTelegram$1(process.env.TELEGRAM_BOT_USERS.split(","), formattedMessage);
|
|
164
|
-
} catch (err) {
|
|
165
|
-
console.error(err);
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
const controllerFactory = (db) => {
|
|
169
|
-
const Order = db.order;
|
|
170
|
-
const Customer = db.customer;
|
|
237
|
+
return customer;
|
|
238
|
+
};
|
|
171
239
|
const create = async (req, res) => {
|
|
172
240
|
const orderData = req.body;
|
|
173
241
|
req.userId || req.body.creator?.target;
|
|
@@ -182,7 +250,7 @@ const controllerFactory = (db) => {
|
|
|
182
250
|
session.startTransaction();
|
|
183
251
|
try {
|
|
184
252
|
if (!orderData.customer.target) {
|
|
185
|
-
const customer = await findOrCreateCustomer(
|
|
253
|
+
const customer = await findOrCreateCustomer(orderData.customer, orderData.owner, orderData.creator, req);
|
|
186
254
|
console.log("customer is", customer);
|
|
187
255
|
if (!customer || !customer._id) {
|
|
188
256
|
throw new Error("Failed to create or find a valid customer");
|
|
@@ -202,7 +270,12 @@ const controllerFactory = (db) => {
|
|
|
202
270
|
const order = await Order.create([orderData], { session });
|
|
203
271
|
const createdOrder = order[0];
|
|
204
272
|
await session.commitTransaction();
|
|
205
|
-
|
|
273
|
+
try {
|
|
274
|
+
const usersWithAccess = await getUsersWithOrdersConfirmAccess(orderData.owner.target);
|
|
275
|
+
await sendOrderNotifications(createdOrder, "order_created", usersWithAccess);
|
|
276
|
+
} catch (notificationError) {
|
|
277
|
+
console.error("Error sending notification:", notificationError);
|
|
278
|
+
}
|
|
206
279
|
res.status(201).send(createdOrder);
|
|
207
280
|
} catch (err) {
|
|
208
281
|
await session.abortTransaction();
|
|
@@ -407,35 +480,15 @@ const controllerFactory = (db) => {
|
|
|
407
480
|
if (statusChanged) {
|
|
408
481
|
console.log("Sending notification for status change...");
|
|
409
482
|
try {
|
|
410
|
-
const
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
newStatus: order.status,
|
|
418
|
-
positions: order.positions
|
|
419
|
-
},
|
|
420
|
-
userId: order.creator.target
|
|
421
|
-
// Assuming creator.target holds the user ID
|
|
422
|
-
};
|
|
423
|
-
console.log("Notification data:", JSON.stringify(notificationData));
|
|
424
|
-
const notificationResponse = await fetch(`${process.env.API_URL || ""}/api/notifications`, {
|
|
425
|
-
method: "POST",
|
|
426
|
-
headers: {
|
|
427
|
-
"Content-Type": "application/json",
|
|
428
|
-
"X-Service-Key": process.env.SERVICE_KEY
|
|
429
|
-
},
|
|
430
|
-
body: JSON.stringify(notificationData)
|
|
483
|
+
const usersWithAccess = await getUsersWithOrdersConfirmAccess(order.owner.target);
|
|
484
|
+
const filteredUsers = usersWithAccess.filter(
|
|
485
|
+
(userId) => userId.toString() !== order.creator.target.toString()
|
|
486
|
+
);
|
|
487
|
+
await sendOrderNotifications(order, "order_status", filteredUsers, {
|
|
488
|
+
oldStatus,
|
|
489
|
+
newStatus: order.status
|
|
431
490
|
});
|
|
432
|
-
console.log("Notification
|
|
433
|
-
if (!notificationResponse.ok) {
|
|
434
|
-
const errorData = await notificationResponse.json();
|
|
435
|
-
console.error(`Failed to create notification: ${JSON.stringify(errorData)}`);
|
|
436
|
-
} else {
|
|
437
|
-
console.log("Notification sent successfully");
|
|
438
|
-
}
|
|
491
|
+
console.log("Notification sent successfully");
|
|
439
492
|
} catch (notificationError) {
|
|
440
493
|
console.error("Error sending notification:", notificationError);
|
|
441
494
|
}
|
package/dist/products.server.cjs
CHANGED
|
@@ -583,6 +583,10 @@ const controllerFactory = (db) => {
|
|
|
583
583
|
...queryProcessor.queryProcessorGlobals.getSearchOptions(req.query.search, {
|
|
584
584
|
fields: ["name", "description"]
|
|
585
585
|
}),
|
|
586
|
+
...queryProcessor.queryProcessorGlobals.getFilterDate(req.query.dateStart, req.query.dateEnd, {
|
|
587
|
+
start: "startDate",
|
|
588
|
+
end: "endDate"
|
|
589
|
+
}),
|
|
586
590
|
...queryProcessor.queryProcessorGlobals.getPriceConditions(req.query.prices),
|
|
587
591
|
...queryProcessorProducts.getCategoriesFilterStage(req.query.categories),
|
|
588
592
|
...queryProcessorProducts.getDeliveryFilterStage(req.query.delivery),
|
package/dist/products.server.js
CHANGED
|
@@ -581,6 +581,10 @@ const controllerFactory = (db) => {
|
|
|
581
581
|
...queryProcessorGlobals.getSearchOptions(req.query.search, {
|
|
582
582
|
fields: ["name", "description"]
|
|
583
583
|
}),
|
|
584
|
+
...queryProcessorGlobals.getFilterDate(req.query.dateStart, req.query.dateEnd, {
|
|
585
|
+
start: "startDate",
|
|
586
|
+
end: "endDate"
|
|
587
|
+
}),
|
|
584
588
|
...queryProcessorGlobals.getPriceConditions(req.query.prices),
|
|
585
589
|
...queryProcessorProducts.getCategoriesFilterStage(req.query.categories),
|
|
586
590
|
...queryProcessorProducts.getDeliveryFilterStage(req.query.delivery),
|