@ozdao/martyrs 0.2.568 → 0.2.570
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/martyrs/src/components/Button/{Button.vue2.js → Button.vue.js} +3 -3
- package/dist/martyrs/src/components/Button/Button.vue.js.map +1 -0
- package/dist/martyrs/src/components/EditImages/{EditImages.vue.js → EditImages.vue2.js} +2 -2
- package/dist/martyrs/src/components/EditImages/EditImages.vue2.js.map +1 -0
- package/dist/martyrs/src/components/Feed/Carousel.vue.js +1 -1
- package/dist/martyrs/src/components/Feed/Feed.vue.js +2 -2
- package/dist/martyrs/src/components/Field/{Field.vue.js → Field.vue2.js} +2 -2
- package/dist/martyrs/src/components/Field/Field.vue2.js.map +1 -0
- package/dist/martyrs/src/components/FieldBig/FieldBig.vue.js +2 -2
- package/dist/martyrs/src/components/Loader/{Loader.vue.js → Loader.vue2.js} +2 -2
- package/dist/martyrs/src/components/Loader/Loader.vue2.js.map +1 -0
- package/dist/martyrs/src/components/LocationMarker/LocationMarker.vue.js +1 -1
- package/dist/martyrs/src/components/Media/Media.vue.js +1 -1
- package/dist/martyrs/src/components/Menu/{Menu.vue2.js → Menu.vue.js} +2 -2
- package/dist/martyrs/src/components/Menu/Menu.vue.js.map +1 -0
- package/dist/martyrs/src/components/Select/{Select.vue.js → Select.vue2.js} +2 -2
- package/dist/martyrs/src/components/Select/Select.vue2.js.map +1 -0
- package/dist/martyrs/src/components/UploadImage/UploadImage.vue.js +1 -1
- package/dist/martyrs/src/components/UploadImageMultiple/UploadImageMultiple.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterCode.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/EnterPassword.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Invite.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/Profile.vue.js +3 -3
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEdit.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditAccount.vue.js +1 -1
- package/dist/martyrs/src/modules/auth/views/components/pages/ProfileEditProfile.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/ResetPassword.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/SignIn.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/pages/SignUp.vue.js +2 -2
- package/dist/martyrs/src/modules/auth/views/components/sections/ProfileEditCredentials.vue.js +2 -2
- package/dist/martyrs/src/modules/community/components/layouts/Community.vue.js +1 -1
- package/dist/martyrs/src/modules/community/components/pages/BlogPost.vue.js +2 -2
- package/dist/martyrs/src/modules/community/components/pages/CreateBlogPost.vue.js +2 -2
- package/dist/martyrs/src/modules/constructor/components/elements/Card.vue.js +1 -1
- package/dist/martyrs/src/modules/constructor/components/elements/Embed.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/BlockSearch.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/CardHeader.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/PopupAuth.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/blocks/PopupDateSelector.vue.js +2 -2
- package/dist/martyrs/src/modules/core/views/components/layouts/Client.vue.js +2 -2
- package/dist/martyrs/src/modules/core/views/components/partials/Header.vue.js +2 -2
- package/dist/martyrs/src/modules/core/views/components/partials/NavigationBar.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/components/sections/{Filters.vue.js → Filters.vue2.js} +2 -2
- package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue2.js.map +1 -0
- package/dist/martyrs/src/modules/core/views/components/sections/filters/FilterRange.vue.js +1 -1
- package/dist/martyrs/src/modules/core/views/router/scrollBehavior.js +27 -25
- package/dist/martyrs/src/modules/core/views/router/scrollBehavior.js.map +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonCheck.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/elements/ButtonJoin.vue.js +1 -1
- package/dist/martyrs/src/modules/events/components/pages/EditEvent.vue.js +4 -4
- package/dist/martyrs/src/modules/events/components/pages/EditEventTickets.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/pages/Event.vue.js +3 -3
- package/dist/martyrs/src/modules/events/components/sections/EditTickets.vue.js +2 -2
- package/dist/martyrs/src/modules/events/components/sections/Feed.vue.js +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.js +4 -4
- package/dist/martyrs/src/modules/inventory/components/forms/AdjustmentForm.vue.js +3 -3
- package/dist/martyrs/src/modules/inventory/components/forms/ColumnSettingsMenu.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/HistoryView.vue.js +1 -1
- package/dist/martyrs/src/modules/inventory/components/forms/StockAlertsForm.vue.js +3 -3
- package/dist/martyrs/src/modules/inventory/components/pages/InventoryEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/marketplace/views/components/pages/Marketplace.vue.js +2 -2
- package/dist/martyrs/src/modules/marketplace/views/components/sections/SectionMenu.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/blocks/ActionButtons.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/AlbumCard.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/ArtistCardSmall.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/PlaylistCard.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/cards/TrackListCard.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/AlbumForm.vue.js +3 -3
- package/dist/martyrs/src/modules/music/components/forms/ArtistForm.vue.js +4 -4
- package/dist/martyrs/src/modules/music/components/forms/PlaylistForm.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/forms/SearchForm.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/forms/TrackForm.vue.js +3 -3
- package/dist/martyrs/src/modules/music/components/pages/Album.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/Artist.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/MusicLibrary.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/pages/Playlist.vue.js +2 -2
- package/dist/martyrs/src/modules/music/components/pages/SearchResults.vue.js +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.js +1 -1
- package/dist/martyrs/src/modules/music/components/player/MusicPlayer.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/player/PlayerControls.vue.js +1 -1
- package/dist/martyrs/src/modules/music/components/player/VolumeControl.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/forms/FormApplicationDetails.vue.js +3 -3
- package/dist/martyrs/src/modules/orders/components/forms/FormCustomerDetails.vue.js +3 -3
- package/dist/martyrs/src/modules/orders/components/forms/FormSelectCustomer.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreate.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/pages/OrderCreateBackoffice.vue.js +2 -2
- package/dist/martyrs/src/modules/orders/components/sections/ApplicationDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/CustomerDetails.vue.js +1 -1
- package/dist/martyrs/src/modules/orders/components/sections/FormDelivery.vue.js +3 -3
- package/dist/martyrs/src/modules/orders/components/sections/FormPayment.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/elements/ButtonToggleMembership.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/AddExistingMembersForm.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/forms/DepartmentForm.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/forms/InviteForm.vue.js +2 -2
- package/dist/martyrs/src/modules/organizations/components/pages/Organization.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationBackoffice.vue.js +1 -1
- package/dist/martyrs/src/modules/organizations/components/pages/OrganizationEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/sections/Documents.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/sections/MembersAdd.vue.js +3 -3
- package/dist/martyrs/src/modules/organizations/components/sections/Organizations.vue.js +3 -3
- package/dist/martyrs/src/modules/pages/views/components/blocks/CardPage.vue.js +2 -2
- package/dist/martyrs/src/modules/pages/views/components/pages/PageEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/pages/views/components/partials/SidebarPages.vue.js +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.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/CategoryEdit.vue.js +5 -5
- package/dist/martyrs/src/modules/products/components/pages/Product.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductEdit.vue.js +4 -4
- package/dist/martyrs/src/modules/products/components/pages/Products.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditAttributes.vue.js +2 -2
- package/dist/martyrs/src/modules/products/components/sections/EditDiscounts.vue.js +3 -3
- package/dist/martyrs/src/modules/products/components/sections/EditVariants.vue.js +4 -4
- package/dist/martyrs/src/modules/products/components/sections/ProductConfigurator.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/ProductsRecommended.vue.js +1 -1
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js +25 -38
- package/dist/martyrs/src/modules/products/components/sections/SectionProduct.vue.js.map +1 -1
- package/dist/martyrs/src/modules/products/products.client.js +15 -21
- package/dist/martyrs/src/modules/products/products.client.js.map +1 -1
- package/dist/martyrs/src/modules/products/router/products.router.js +0 -34
- package/dist/martyrs/src/modules/products/router/products.router.js.map +1 -1
- package/dist/martyrs/src/modules/products/store/products.js +0 -15
- package/dist/martyrs/src/modules/products/store/products.js.map +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/Gant/GanttToolbar.vue.js +1 -1
- package/dist/martyrs/src/modules/rents/views/components/pages/RentsEdit.vue.js +2 -2
- package/dist/martyrs/src/modules/reports/components/sections/FormReport.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/blocks/SpotMemberModify.vue.js +2 -2
- package/dist/martyrs/src/modules/spots/components/layouts/Spots.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/Map.vue.js +1 -1
- package/dist/martyrs/src/modules/spots/components/pages/SpotEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/spots/components/sections/WorktimeEdit.vue.js +3 -3
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CardDeposit.vue.js +1 -1
- package/dist/martyrs/src/modules/wallet/views/components/blocks/CryptoDeposit.vue.js +2 -2
- package/dist/martyrs/src/modules/wallet/views/components/pages/Wallet.vue.js +2 -2
- package/dist/products.server.js +1 -130
- package/dist/style.css +0 -23
- package/package.json +1 -1
- package/src/modules/core/views/router/scrollBehavior.js +30 -28
- package/src/modules/products/components/sections/SectionProduct.vue +2 -9
- package/src/modules/products/controllers/products.controller.js +0 -51
- package/src/modules/products/experiments/product-recommendation/README.md +156 -0
- package/src/modules/products/experiments/product-recommendation/controllers/recommendation.controller.js +59 -0
- package/src/modules/products/experiments/product-recommendation/router/recommendation.router.js +43 -0
- package/src/modules/products/experiments/product-recommendation/routes/recommendation.routes.js +10 -0
- package/src/modules/products/experiments/product-recommendation/store/recommendation.store.js +38 -0
- package/src/modules/products/products.client.js +0 -6
- package/src/modules/products/products.router.js +0 -29
- package/src/modules/products/router/products.router.js +0 -28
- package/src/modules/products/routes/products.routes.js +0 -2
- package/src/modules/products/store/products.js +0 -16
- package/dist/martyrs/src/components/Button/Button.vue2.js.map +0 -1
- package/dist/martyrs/src/components/EditImages/EditImages.vue.js.map +0 -1
- package/dist/martyrs/src/components/Field/Field.vue.js.map +0 -1
- package/dist/martyrs/src/components/Loader/Loader.vue.js.map +0 -1
- package/dist/martyrs/src/components/Menu/Menu.vue2.js.map +0 -1
- package/dist/martyrs/src/components/Select/Select.vue.js.map +0 -1
- package/dist/martyrs/src/components/Shader/Shader.vue.js +0 -2
- package/dist/martyrs/src/components/Shader/Shader.vue.js.map +0 -1
- package/dist/martyrs/src/modules/core/views/components/sections/Filters.vue.js.map +0 -1
- package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.js +0 -106
- package/dist/martyrs/src/modules/products/components/pages/ProductRecommmendation.vue.js.map +0 -1
- package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.js +0 -120
- package/dist/martyrs/src/modules/products/components/sections/HeroRecommendation.vue.js.map +0 -1
- /package/src/modules/products/{components/sections → experiments/product-recommendation/components}/HeroRecommendation.vue +0 -0
- /package/src/modules/products/{components/pages → experiments/product-recommendation/components}/ProductRecommmendation.vue +0 -0
|
@@ -3,20 +3,18 @@ import { getRoutes as getRoutes$1 } from "./router/products.router.js";
|
|
|
3
3
|
import { getRoutes } from "./router/categories.router.js";
|
|
4
4
|
import * as categories from "./store/categories.js";
|
|
5
5
|
import * as products from "./store/products.js";
|
|
6
|
-
import _sfc_main$
|
|
7
|
-
import _sfc_main$
|
|
8
|
-
import _sfc_main$
|
|
6
|
+
import _sfc_main$9 from "./components/blocks/CardCategory.vue.js";
|
|
7
|
+
import _sfc_main$7 from "./components/blocks/CardPosition.vue.js";
|
|
8
|
+
import _sfc_main$8 from "./components/blocks/CardProduct.vue.js";
|
|
9
9
|
import Image360 from "./components/elements/Image360.vue.js";
|
|
10
10
|
import ProductImages from "./components/blocks/ProductImages.vue.js";
|
|
11
11
|
import _sfc_main$4 from "./components/sections/EditVariants.vue.js";
|
|
12
12
|
import _sfc_main$5 from "./components/sections/FilterProducts.vue.js";
|
|
13
|
-
import _sfc_main$6 from "./components/sections/HeroRecommendation.vue.js";
|
|
14
13
|
import _sfc_main$3 from "./components/sections/ProductsPopular.vue.js";
|
|
15
|
-
import _sfc_main$
|
|
16
|
-
import _sfc_main$
|
|
14
|
+
import _sfc_main$6 from "./components/sections/SectionProduct.vue.js";
|
|
15
|
+
import _sfc_main$a from "./components/elements/Price.vue.js";
|
|
17
16
|
import _sfc_main$2 from "./components/pages/Product.vue.js";
|
|
18
17
|
import _sfc_main$1 from "./components/pages/ProductEdit.vue.js";
|
|
19
|
-
import ProductRecommendation from "./components/pages/ProductRecommmendation.vue.js";
|
|
20
18
|
import _sfc_main from "./components/pages/Products.vue.js";
|
|
21
19
|
function initializeProducts(app, store, router, options = {}) {
|
|
22
20
|
const productRoutes = getRoutes$1(options);
|
|
@@ -43,44 +41,40 @@ const ModuleProducts = {
|
|
|
43
41
|
},
|
|
44
42
|
components: {
|
|
45
43
|
// Elements
|
|
46
|
-
Price: _sfc_main$
|
|
44
|
+
Price: _sfc_main$a,
|
|
47
45
|
// Blocks
|
|
48
46
|
ProductImages,
|
|
49
|
-
CardCategory: _sfc_main$
|
|
50
|
-
CardProduct: _sfc_main$
|
|
47
|
+
CardCategory: _sfc_main$9,
|
|
48
|
+
CardProduct: _sfc_main$8,
|
|
51
49
|
Image360,
|
|
52
|
-
CardPosition: _sfc_main$
|
|
50
|
+
CardPosition: _sfc_main$7,
|
|
53
51
|
// Sections
|
|
54
|
-
SectionProduct: _sfc_main$
|
|
55
|
-
HeroRecommendation: _sfc_main$6,
|
|
52
|
+
SectionProduct: _sfc_main$6,
|
|
56
53
|
FilterProducts: _sfc_main$5,
|
|
57
54
|
EditVariants: _sfc_main$4,
|
|
58
55
|
ProductsPopular: _sfc_main$3,
|
|
59
56
|
// Pages
|
|
60
57
|
Product: _sfc_main$2,
|
|
61
58
|
ProductEdit: _sfc_main$1,
|
|
62
|
-
ProductRecommendation,
|
|
63
59
|
Products: _sfc_main
|
|
64
60
|
// Layouts
|
|
65
61
|
}
|
|
66
62
|
}
|
|
67
63
|
};
|
|
68
64
|
export {
|
|
69
|
-
_sfc_main$
|
|
70
|
-
_sfc_main$
|
|
71
|
-
_sfc_main$
|
|
65
|
+
_sfc_main$9 as CardCategory,
|
|
66
|
+
_sfc_main$7 as CardPosition,
|
|
67
|
+
_sfc_main$8 as CardProduct,
|
|
72
68
|
_sfc_main$4 as EditVariants,
|
|
73
69
|
_sfc_main$5 as FilterProducts,
|
|
74
|
-
_sfc_main$6 as HeroRecommendation,
|
|
75
70
|
Image360,
|
|
76
|
-
_sfc_main$
|
|
71
|
+
_sfc_main$a as Price,
|
|
77
72
|
_sfc_main$2 as Product,
|
|
78
73
|
_sfc_main$1 as ProductEdit,
|
|
79
74
|
ProductImages,
|
|
80
|
-
ProductRecommendation,
|
|
81
75
|
_sfc_main as Products,
|
|
82
76
|
_sfc_main$3 as ProductsPopular,
|
|
83
|
-
_sfc_main$
|
|
77
|
+
_sfc_main$6 as SectionProduct,
|
|
84
78
|
ModuleProducts as default,
|
|
85
79
|
categories as storeCategories,
|
|
86
80
|
products as storeProducts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"products.client.js","sources":["../../../../../src/modules/products/products.client.js"],"sourcesContent":["// Router\nimport addRoutes from '@martyrs/src/modules/core/views/router/addRoutes.js';\nimport { getRoutes as getProductRoutes } from './router/products.router.js';\nimport { getRoutes as getCategoryRoutes } from './router/categories.router.js';\n\n//Store\nimport * as storeCategories from './store/categories.js';\nimport * as storeProducts from './store/products.js';\n\n// Layouts\n\n// Blocks\nimport CardCategory from './components/blocks/CardCategory.vue';\nimport CardPosition from './components/blocks/CardPosition.vue';\nimport CardProduct from './components/blocks/CardProduct.vue';\nimport Image360 from './components/elements/Image360.vue';\nimport ProductImages from './components/blocks/ProductImages.vue';\n\n// Sections\nimport EditVariants from './components/sections/EditVariants.vue';\nimport FilterProducts from './components/sections/FilterProducts.vue';\nimport
|
|
1
|
+
{"version":3,"file":"products.client.js","sources":["../../../../../src/modules/products/products.client.js"],"sourcesContent":["// Router\nimport addRoutes from '@martyrs/src/modules/core/views/router/addRoutes.js';\nimport { getRoutes as getProductRoutes } from './router/products.router.js';\nimport { getRoutes as getCategoryRoutes } from './router/categories.router.js';\n\n//Store\nimport * as storeCategories from './store/categories.js';\nimport * as storeProducts from './store/products.js';\n\n// Layouts\n\n// Blocks\nimport CardCategory from './components/blocks/CardCategory.vue';\nimport CardPosition from './components/blocks/CardPosition.vue';\nimport CardProduct from './components/blocks/CardProduct.vue';\nimport Image360 from './components/elements/Image360.vue';\nimport ProductImages from './components/blocks/ProductImages.vue';\n\n// Sections\nimport EditVariants from './components/sections/EditVariants.vue';\nimport FilterProducts from './components/sections/FilterProducts.vue';\nimport ProductsPopular from './components/sections/ProductsPopular.vue';\nimport SectionProduct from './components/sections/SectionProduct.vue';\n\n// Elements\nimport Price from './components/elements/Price.vue';\n// Pages\nimport Product from './components/pages/Product.vue';\nimport ProductEdit from './components/pages/ProductEdit.vue';\nimport Products from './components/pages/Products.vue';\n\n// Пример функции инициализации для модуля продуктов\nfunction initializeProducts(app, store, router, options = {}) {\n const productRoutes = getProductRoutes(options);\n productRoutes.forEach(({ parentName, config }) => {\n addRoutes(router, { ...config, parentName });\n });\n\n const categoryRoutes = getCategoryRoutes(options);\n categoryRoutes.forEach(({ parentName, config }) => {\n addRoutes(router, { ...config, parentName });\n });\n\n store.addStore('categories', storeCategories);\n store.addStore('products', storeProducts);\n}\n\nconst ModuleProducts = {\n initialize: initializeProducts,\n views: {\n store: {\n storeCategories,\n storeProducts,\n },\n router: {\n getProductRoutes,\n getCategoryRoutes,\n },\n components: {\n // Elements\n Price,\n // Blocks\n ProductImages,\n CardCategory,\n CardProduct,\n Image360,\n CardPosition,\n // Sections\n SectionProduct,\n FilterProducts,\n EditVariants,\n ProductsPopular,\n // Pages\n Product,\n ProductEdit,\n Products,\n // Layouts\n },\n },\n};\n\nexport {\n CardCategory,\n CardPosition,\n CardProduct,\n EditVariants,\n FilterProducts,\n Image360,\n // Blocks\n ProductImages,\n ProductsPopular,\n // Elements\n Price,\n // Pages\n Product,\n ProductEdit,\n Products,\n // Sections\n SectionProduct,\n // Store\n storeProducts,\n storeCategories,\n};\n\nexport default ModuleProducts;\n"],"names":["getProductRoutes","getCategoryRoutes","storeCategories","storeProducts","Price","CardCategory","CardProduct","CardPosition","SectionProduct","FilterProducts","EditVariants","ProductsPopular","Product","ProductEdit","Products"],"mappings":";;;;;;;;;;;;;;;;;;AAgCA,SAAS,mBAAmB,KAAK,OAAO,QAAQ,UAAU,CAAA,GAAI;AAC5D,QAAM,gBAAgBA,YAAiB,OAAO;AAC9C,gBAAc,QAAQ,CAAC,EAAE,YAAY,OAAM,MAAO;AAChD,cAAU,QAAQ,EAAE,GAAG,QAAQ,WAAU,CAAE;AAAA,EAC7C,CAAC;AAED,QAAM,iBAAiBC,UAAkB,OAAO;AAChD,iBAAe,QAAQ,CAAC,EAAE,YAAY,OAAM,MAAO;AACjD,cAAU,QAAQ,EAAE,GAAG,QAAQ,WAAU,CAAE;AAAA,EAC7C,CAAC;AAED,QAAM,SAAS,cAAcC,UAAe;AAC5C,QAAM,SAAS,YAAYC,QAAa;AAC1C;AAEK,MAAC,iBAAiB;AAAA,EACrB,YAAY;AAAA,EACZ,OAAO;AAAA,IACL,OAAO;AAAA,MACX,iBAAMD;AAAAA,MACN,eAAMC;AAAAA,IACN;AAAA,IACI,QAAQ;AAAA,MACZ,kBAAMH;AAAAA,MACN,mBAAMC;AAAAA,IACN;AAAA,IACI,YAAY;AAAA;AAAA,MAEhB,OAAMG;AAAAA;AAAAA,MAEA;AAAA,MACN,cAAMC;AAAAA,MACN,aAAMC;AAAAA,MACA;AAAA,MACN,cAAMC;AAAAA;AAAAA,MAEN,gBAAMC;AAAAA,MACN,gBAAMC;AAAAA,MACN,cAAMC;AAAAA,MACN,iBAAMC;AAAAA;AAAAA,MAEN,SAAMC;AAAAA,MACN,aAAMC;AAAAA,MACN,UAAMC;AAAAA;AAAAA,IAEN;AAAA,EACA;AACA;"}
|
|
@@ -90,23 +90,6 @@ function getRoutes(options = {}) {
|
|
|
90
90
|
/* webpackChunkName: "products-edit" */
|
|
91
91
|
"../components/pages/ProductEdit.vue.js"
|
|
92
92
|
)
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
path: "recommendation",
|
|
96
|
-
name: "ProductRecommmendation",
|
|
97
|
-
meta: {
|
|
98
|
-
title: {
|
|
99
|
-
en: "Product Recommmendation",
|
|
100
|
-
ru: "Рекомендации продукта"
|
|
101
|
-
},
|
|
102
|
-
header_theme: "dark",
|
|
103
|
-
footer_theme: "dark"
|
|
104
|
-
},
|
|
105
|
-
component: () => import(
|
|
106
|
-
/* webpackChunkName: 'products-recommendation' */
|
|
107
|
-
"../components/pages/ProductRecommmendation.vue.js"
|
|
108
|
-
),
|
|
109
|
-
props: (route2) => ({ mood: route2.query.mood })
|
|
110
93
|
}
|
|
111
94
|
]
|
|
112
95
|
}
|
|
@@ -310,23 +293,6 @@ function getRoutes(options = {}) {
|
|
|
310
293
|
/* webpackChunkName: "products-edit" */
|
|
311
294
|
"../components/pages/ProductEdit.vue.js"
|
|
312
295
|
)
|
|
313
|
-
},
|
|
314
|
-
{
|
|
315
|
-
path: "recommendation",
|
|
316
|
-
name: "ProductRecommmendation",
|
|
317
|
-
meta: {
|
|
318
|
-
title: {
|
|
319
|
-
en: "Product Recommmendation",
|
|
320
|
-
ru: "Рекомендации продукта"
|
|
321
|
-
},
|
|
322
|
-
header_theme: "dark",
|
|
323
|
-
footer_theme: "dark"
|
|
324
|
-
},
|
|
325
|
-
component: () => import(
|
|
326
|
-
/* webpackChunkName: 'products-recommendation' */
|
|
327
|
-
"../components/pages/ProductRecommmendation.vue.js"
|
|
328
|
-
),
|
|
329
|
-
props: (route2) => ({ mood: route2.query.mood })
|
|
330
296
|
}
|
|
331
297
|
]
|
|
332
298
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"products.router.js","sources":["../../../../../../src/modules/products/router/products.router.js"],"sourcesContent":["import * as validationAuth from '@martyrs/src/modules/auth/views/middlewares/auth.validation.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { hasAccess, isAdmin } = useGlobalMixins();\n\nexport function getRoutes(options = {}) {\n const route = options.route || 'Home';\n const routeBackoffice = options.routeBackoffice || 'Backoffice Root';\n const routeOrganizations = options.routeOrganizations || 'OrganizationRoot';\n\n const routes = [];\n\n // Home контекст\n routes.push({\n parentName: route,\n config: {\n basePath: options.basePath || 'products',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n routes: [\n {\n path: '',\n name: 'Products',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n component: () => import(/* webpackChunkName: 'products-list' */ '../components/pages/Products.vue'),\n },\n {\n path: 'categories/:categoryPath(.*)',\n name: 'ProductsCategory',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n component: () => import(/* webpackChunkName: 'products-list' */ '../components/pages/Products.vue'),\n },\n {\n path: 'add',\n name: 'ProductAdd',\n meta: {\n title: {\n en: 'Add Product',\n ru: 'Добавить товар',\n },\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: () => import(/* webpackChunkName: \"products-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n {\n path: ':product',\n name: 'Product',\n meta: {\n title: {\n en: 'Product',\n ru: 'Продукт',\n },\n showShopCart: true,\n },\n component: () => import(/* webpackChunkName: \"products-detail\" */ '../components/pages/Product.vue'),\n },\n {\n path: ':product/edit',\n name: 'ProductEdit',\n meta: {\n title: {\n en: 'Edit Product',\n ru: 'Редактировать продукт',\n },\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: () => import(/* webpackChunkName: \"products-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n {\n path: 'recommendation',\n name: 'ProductRecommmendation',\n meta: {\n title: {\n en: 'Product Recommmendation',\n ru: 'Рекомендации продукта',\n },\n header_theme: 'dark',\n footer_theme: 'dark',\n },\n component: () => import(/* webpackChunkName: 'products-recommendation' */ '../components/pages/ProductRecommmendation.vue'),\n props: route => ({ mood: route.query.mood }),\n },\n ],\n },\n });\n\n // Backoffice контекст\n if (!options.withBackoffice) {\n routes.push({\n parentName: routeBackoffice,\n config: {\n basePath: options.backofficeBasePath || 'products',\n routeNamePrefix: 'Backoffice',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n context: 'backoffice',\n },\n routes: [\n {\n path: '',\n name: 'Products',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n component: () => import(/* webpackChunkName: 'products-backoffice' */ '../components/pages/Products.vue'),\n },\n {\n path: 'add',\n name: 'ProductAdd',\n meta: {\n title: {\n en: 'Add Product',\n ru: 'Добавить товар',\n },\n },\n beforeEnter: [\n validationAuth.requiresAuth,\n (to, from, next) => {\n if (isAdmin(auth.state.access.roles)) {\n next();\n } else {\n next('/401');\n }\n }\n ],\n component: () => import(/* webpackChunkName: \"products-backoffice-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n {\n path: ':product',\n name: 'Product',\n meta: {\n title: {\n en: 'Product',\n ru: 'Продукт',\n },\n showShopCart: true,\n },\n component: () => import(/* webpackChunkName: \"products-backoffice-detail\" */ '../components/pages/Product.vue'),\n },\n {\n path: ':product/edit',\n name: 'ProductEdit',\n meta: {\n title: {\n en: 'Edit Product',\n ru: 'Редактировать товар',\n },\n },\n beforeEnter: [\n validationAuth.requiresAuth,\n (to, from, next) => {\n if (isAdmin(auth.state.access.roles)) {\n next();\n } else {\n next('/401');\n }\n }\n ],\n component: () => import(/* webpackChunkName: \"products-backoffice-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n ],\n },\n });\n }\n\n // Organizations контекст\n if (!options.withOrganizationRoutes) {\n routes.push({\n parentName: routeOrganizations,\n config: {\n basePath: options.organizationBasePath || 'products',\n routeNamePrefix: 'Organization_',\n meta: {\n title: {\n en: 'Organization Products',\n ru: 'Товары Организации',\n },\n context: 'organization',\n },\n routes: [\n {\n path: '',\n name: 'Products',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n component: () => import(/* webpackChunkName: 'products-list' */ '../components/pages/Products.vue'),\n },\n {\n path: 'categories/:categoryPath(.*)',\n name: 'ProductsCategory',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n component: () => import(/* webpackChunkName: 'products-list' */ '../components/pages/Products.vue'),\n },\n {\n path: 'add',\n name: 'ProductAdd',\n meta: {\n title: {\n en: 'Add Product',\n ru: 'Добавить товар',\n },\n },\n beforeEnter: [\n validationAuth.requiresAuth,\n (to, from, next) => {\n if (isAdmin(auth.state.access.roles) || hasAccess(to.params._id, 'products', 'create', auth.state.accesses, auth.state.access.roles)) {\n next();\n } else {\n next('/401');\n }\n }\n ],\n component: () => import(/* webpackChunkName: \"products-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n {\n path: ':product',\n name: 'Product',\n meta: {\n title: {\n en: 'Product',\n ru: 'Продукт',\n },\n showShopCart: true,\n },\n component: () => import(/* webpackChunkName: \"products-detail\" */ '../components/pages/Product.vue'),\n },\n {\n path: ':product/edit',\n name: 'ProductEdit',\n meta: {\n title: {\n en: 'Edit Product',\n ru: 'Редактировать продукт',\n },\n },\n beforeEnter: [\n validationAuth.requiresAuth,\n (to, from, next) => {\n if (isAdmin(auth.state.access.roles) || hasAccess(to.params._id, 'products', 'edit', auth.state.accesses, auth.state.access.roles)) {\n next();\n } else {\n next('/401');\n }\n }\n ],\n component: () => import(/* webpackChunkName: \"products-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n {\n path: 'recommendation',\n name: 'ProductRecommmendation',\n meta: {\n title: {\n en: 'Product Recommmendation',\n ru: 'Рекомендации продукта',\n },\n header_theme: 'dark',\n footer_theme: 'dark',\n },\n component: () => import(/* webpackChunkName: 'products-recommendation' */ '../components/pages/ProductRecommmendation.vue'),\n props: route => ({ mood: route.query.mood }),\n },\n ],\n },\n });\n }\n\n return routes;\n}\n\nexport default { getRoutes };\n"],"names":["validationAuth.requiresAuth","route","auth.state"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"products.router.js","sources":["../../../../../../src/modules/products/router/products.router.js"],"sourcesContent":["import * as validationAuth from '@martyrs/src/modules/auth/views/middlewares/auth.validation.js';\nimport * as auth from '@martyrs/src/modules/auth/views/store/auth.js';\nimport { useGlobalMixins } from '@martyrs/src/modules/core/views/mixins/mixins.js';\n\nconst { hasAccess, isAdmin } = useGlobalMixins();\n\nexport function getRoutes(options = {}) {\n const route = options.route || 'Home';\n const routeBackoffice = options.routeBackoffice || 'Backoffice Root';\n const routeOrganizations = options.routeOrganizations || 'OrganizationRoot';\n\n const routes = [];\n\n // Home контекст\n routes.push({\n parentName: route,\n config: {\n basePath: options.basePath || 'products',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n routes: [\n {\n path: '',\n name: 'Products',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n component: () => import(/* webpackChunkName: 'products-list' */ '../components/pages/Products.vue'),\n },\n {\n path: 'categories/:categoryPath(.*)',\n name: 'ProductsCategory',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n component: () => import(/* webpackChunkName: 'products-list' */ '../components/pages/Products.vue'),\n },\n {\n path: 'add',\n name: 'ProductAdd',\n meta: {\n title: {\n en: 'Add Product',\n ru: 'Добавить товар',\n },\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: () => import(/* webpackChunkName: \"products-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n {\n path: ':product',\n name: 'Product',\n meta: {\n title: {\n en: 'Product',\n ru: 'Продукт',\n },\n showShopCart: true,\n },\n component: () => import(/* webpackChunkName: \"products-detail\" */ '../components/pages/Product.vue'),\n },\n {\n path: ':product/edit',\n name: 'ProductEdit',\n meta: {\n title: {\n en: 'Edit Product',\n ru: 'Редактировать продукт',\n },\n },\n beforeEnter: [validationAuth.requiresAuth],\n component: () => import(/* webpackChunkName: \"products-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n ],\n },\n });\n\n // Backoffice контекст\n if (!options.withBackoffice) {\n routes.push({\n parentName: routeBackoffice,\n config: {\n basePath: options.backofficeBasePath || 'products',\n routeNamePrefix: 'Backoffice',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n context: 'backoffice',\n },\n routes: [\n {\n path: '',\n name: 'Products',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n component: () => import(/* webpackChunkName: 'products-backoffice' */ '../components/pages/Products.vue'),\n },\n {\n path: 'add',\n name: 'ProductAdd',\n meta: {\n title: {\n en: 'Add Product',\n ru: 'Добавить товар',\n },\n },\n beforeEnter: [\n validationAuth.requiresAuth,\n (to, from, next) => {\n if (isAdmin(auth.state.access.roles)) {\n next();\n } else {\n next('/401');\n }\n }\n ],\n component: () => import(/* webpackChunkName: \"products-backoffice-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n {\n path: ':product',\n name: 'Product',\n meta: {\n title: {\n en: 'Product',\n ru: 'Продукт',\n },\n showShopCart: true,\n },\n component: () => import(/* webpackChunkName: \"products-backoffice-detail\" */ '../components/pages/Product.vue'),\n },\n {\n path: ':product/edit',\n name: 'ProductEdit',\n meta: {\n title: {\n en: 'Edit Product',\n ru: 'Редактировать товар',\n },\n },\n beforeEnter: [\n validationAuth.requiresAuth,\n (to, from, next) => {\n if (isAdmin(auth.state.access.roles)) {\n next();\n } else {\n next('/401');\n }\n }\n ],\n component: () => import(/* webpackChunkName: \"products-backoffice-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n ],\n },\n });\n }\n\n // Organizations контекст\n if (!options.withOrganizationRoutes) {\n routes.push({\n parentName: routeOrganizations,\n config: {\n basePath: options.organizationBasePath || 'products',\n routeNamePrefix: 'Organization_',\n meta: {\n title: {\n en: 'Organization Products',\n ru: 'Товары Организации',\n },\n context: 'organization',\n },\n routes: [\n {\n path: '',\n name: 'Products',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n component: () => import(/* webpackChunkName: 'products-list' */ '../components/pages/Products.vue'),\n },\n {\n path: 'categories/:categoryPath(.*)',\n name: 'ProductsCategory',\n meta: {\n title: {\n en: 'Products',\n ru: 'Товары',\n },\n },\n component: () => import(/* webpackChunkName: 'products-list' */ '../components/pages/Products.vue'),\n },\n {\n path: 'add',\n name: 'ProductAdd',\n meta: {\n title: {\n en: 'Add Product',\n ru: 'Добавить товар',\n },\n },\n beforeEnter: [\n validationAuth.requiresAuth,\n (to, from, next) => {\n if (isAdmin(auth.state.access.roles) || hasAccess(to.params._id, 'products', 'create', auth.state.accesses, auth.state.access.roles)) {\n next();\n } else {\n next('/401');\n }\n }\n ],\n component: () => import(/* webpackChunkName: \"products-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n {\n path: ':product',\n name: 'Product',\n meta: {\n title: {\n en: 'Product',\n ru: 'Продукт',\n },\n showShopCart: true,\n },\n component: () => import(/* webpackChunkName: \"products-detail\" */ '../components/pages/Product.vue'),\n },\n {\n path: ':product/edit',\n name: 'ProductEdit',\n meta: {\n title: {\n en: 'Edit Product',\n ru: 'Редактировать продукт',\n },\n },\n beforeEnter: [\n validationAuth.requiresAuth,\n (to, from, next) => {\n if (isAdmin(auth.state.access.roles) || hasAccess(to.params._id, 'products', 'edit', auth.state.accesses, auth.state.access.roles)) {\n next();\n } else {\n next('/401');\n }\n }\n ],\n component: () => import(/* webpackChunkName: \"products-edit\" */ '../components/pages/ProductEdit.vue'),\n },\n ],\n },\n });\n }\n\n return routes;\n}\n\nexport default { getRoutes };\n"],"names":["validationAuth.requiresAuth","auth.state"],"mappings":"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"}
|
|
@@ -4,7 +4,6 @@ import $axios from "../../core/views/utils/axios-instance.js";
|
|
|
4
4
|
const state = reactive({
|
|
5
5
|
all: [],
|
|
6
6
|
current: {
|
|
7
|
-
recommendation: false,
|
|
8
7
|
category: [],
|
|
9
8
|
status: "draft",
|
|
10
9
|
listing: "sale",
|
|
@@ -114,19 +113,6 @@ const actions = {
|
|
|
114
113
|
}
|
|
115
114
|
);
|
|
116
115
|
},
|
|
117
|
-
async submitMood(presetMood = null) {
|
|
118
|
-
return $axios.post("/api/product/recommended", { mood: presetMood }).then(
|
|
119
|
-
(response) => {
|
|
120
|
-
state.current = response.data.product;
|
|
121
|
-
state.current.recommendation = response.data.recommendationText;
|
|
122
|
-
return Promise.resolve(response.data);
|
|
123
|
-
},
|
|
124
|
-
(error) => {
|
|
125
|
-
setError(error);
|
|
126
|
-
return Promise.reject(error);
|
|
127
|
-
}
|
|
128
|
-
);
|
|
129
|
-
},
|
|
130
116
|
async fetchProducts() {
|
|
131
117
|
return await $axios.get(`/api/products/read`).then(
|
|
132
118
|
(products) => {
|
|
@@ -188,7 +174,6 @@ const mutations = {
|
|
|
188
174
|
resetProduct(product) {
|
|
189
175
|
state.current = {
|
|
190
176
|
included: null,
|
|
191
|
-
recommendation: false,
|
|
192
177
|
category: [],
|
|
193
178
|
status: "draft",
|
|
194
179
|
attributes: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"products.js","sources":["../../../../../../src/modules/products/store/products.js"],"sourcesContent":["/////////////////////////////\n// DEPENDENCIES\n/////////////////////////////\nimport { reactive, watch } from 'vue';\n// Globals\nimport { setError } from '@martyrs/src/modules/core/views/store/core.store.js';\n// Setup Axios\nimport $axios from '@martyrs/src/modules/core/views/utils/axios-instance.js';\n/////////////////////////////\n// STATE\n/////////////////////////////\nconst state = reactive({\n all: [],\n current: {\n recommendation: false,\n category: [],\n status: 'draft',\n listing: 'sale',\n attributes: [],\n images: [],\n files: [],\n image3d: false,\n name: '',\n sale: 0,\n price: 0,\n price_cost: 0,\n localization: [],\n recommended: [],\n variants: [],\n discounts: [],\n included: null,\n ingredients: [],\n description: '',\n defaultVariant: {\n price: null,\n quantity: 1,\n unit: 'pcs'\n }\n },\n filter: {\n active: false,\n class: 'mobile-only',\n selected: {},\n options: [\n {\n title: 'Price',\n value: 'price',\n options: [\n { label: 'Pickup', value: 'pickup' },\n { label: 'Courier', value: 'courier' },\n { label: 'Post', value: 'post' },\n ],\n },\n ],\n },\n sort: {\n param: 'popularity',\n order: 'asc',\n options: [\n {\n label: 'Price',\n value: 'variants.price',\n },\n {\n label: 'Popularity',\n value: 'views',\n },\n {\n label: 'New',\n value: 'createdAt',\n },\n ],\n },\n});\n\n/////////////////////////////\n// ACTIONS\n/////////////////////////////\nconst actions = {\n async create(product) {\n return await $axios.post('/api/products/create', product).then(\n response => {\n set(response.data, 'current');\n return Promise.resolve(response.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async read(options = {}) {\n\n try {\n const response = await $axios.get('/api/products/read', { params: options });\n\n if (options._id) {\n state.current = { ...response.data[0] };\n return Promise.resolve(response.data[0]);\n } else {\n return Promise.resolve(response.data);\n }\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async update(_id, product) {\n return await $axios.post('/api/products/' + _id, product).then(\n response => {\n return Promise.resolve(response.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async deleteProduct(_id) {\n return await $axios.delete('/api/products/' + _id).then(\n response => {\n return Promise.resolve(response.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async submitMood(presetMood = null) {\n return $axios.post('/api/product/recommended', { mood: presetMood }).then(\n response => {\n state.current = response.data.product;\n state.current.recommendation = response.data.recommendationText;\n return Promise.resolve(response.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProducts() {\n return await $axios.get(`/api/products/read`).then(\n products => {\n state.all = products.data;\n return Promise.resolve(products.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProductsPopular() {\n return await $axios.get(`/api/products/popular`).then(\n products => {\n state.popular = products.data;\n return Promise.resolve(products.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProductsPublished() {\n return await $axios.get(`/api/products`).then(\n products => {\n let publishedProduct = products.data.filter(function (product, index) {\n return product.status !== 'unpublished';\n });\n\n state.all = publishedProduct;\n state.filtered = publishedProduct.slice();\n state.filteredPrice = state.filtered;\n\n state.filteredPrice.sort(function (l, r) {\n return l[state.sort.current] > r[state.sort.current] ? (state.sort.ascending ? 1 : -1) : l[state.sort.current] < r[state.sort.current] ? (state.sort.ascending ? -1 : 1) : 0;\n });\n\n return Promise.resolve(products.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProductPopular() {\n return await $axios.get(`/api/products`).then(\n products => {\n state.all = products.data.slice(1, 5);\n return Promise.resolve(products.data.slice(1, 5));\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n};\n\nconst mutations = {\n resetProduct(product) {\n state.current = {\n included: null,\n recommendation: false,\n category: [],\n status: 'draft',\n attributes: [],\n images: [],\n files: [],\n image3d: false,\n name: '',\n sale: 0,\n price: 0,\n price_cost: 0,\n price_currency: '$',\n localization: [],\n variants: [],\n recommended: [],\n discounts: [],\n ingredients: [],\n description: '',\n defaultVariant: {\n price: null,\n quantity: 1,\n unit: 'pcs'\n }\n };\n },\n};\n\nfunction set(product, property) {\n state[property] = product;\n}\n\n/////////////////////////////\n// GETTERS\n/////////////////////////////\nconst getters = {};\n\n/////////////////////////////\n// UTILS\n/////////////////////////////\n\n/////////////////////////////\n// HISTORY\n/////////////////////////////\nconst history = [];\nhistory.push(state);\n\n/////////////////////////////\n// WATCH\n/////////////////////////////\nwatch(state, (newState, oldState) => {\n history.push(newState);\n});\n\n/////////////////////////////\n// Module Export\n/////////////////////////////\nexport { actions, getters, mutations, state };\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"products.js","sources":["../../../../../../src/modules/products/store/products.js"],"sourcesContent":["/////////////////////////////\n// DEPENDENCIES\n/////////////////////////////\nimport { reactive, watch } from 'vue';\n// Globals\nimport { setError } from '@martyrs/src/modules/core/views/store/core.store.js';\n// Setup Axios\nimport $axios from '@martyrs/src/modules/core/views/utils/axios-instance.js';\n/////////////////////////////\n// STATE\n/////////////////////////////\nconst state = reactive({\n all: [],\n current: {\n category: [],\n status: 'draft',\n listing: 'sale',\n attributes: [],\n images: [],\n files: [],\n image3d: false,\n name: '',\n sale: 0,\n price: 0,\n price_cost: 0,\n localization: [],\n recommended: [],\n variants: [],\n discounts: [],\n included: null,\n ingredients: [],\n description: '',\n defaultVariant: {\n price: null,\n quantity: 1,\n unit: 'pcs'\n }\n },\n filter: {\n active: false,\n class: 'mobile-only',\n selected: {},\n options: [\n {\n title: 'Price',\n value: 'price',\n options: [\n { label: 'Pickup', value: 'pickup' },\n { label: 'Courier', value: 'courier' },\n { label: 'Post', value: 'post' },\n ],\n },\n ],\n },\n sort: {\n param: 'popularity',\n order: 'asc',\n options: [\n {\n label: 'Price',\n value: 'variants.price',\n },\n {\n label: 'Popularity',\n value: 'views',\n },\n {\n label: 'New',\n value: 'createdAt',\n },\n ],\n },\n});\n\n/////////////////////////////\n// ACTIONS\n/////////////////////////////\nconst actions = {\n async create(product) {\n return await $axios.post('/api/products/create', product).then(\n response => {\n set(response.data, 'current');\n return Promise.resolve(response.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async read(options = {}) {\n\n try {\n const response = await $axios.get('/api/products/read', { params: options });\n\n if (options._id) {\n state.current = { ...response.data[0] };\n return Promise.resolve(response.data[0]);\n } else {\n return Promise.resolve(response.data);\n }\n return Promise.resolve(response.data);\n } catch (error) {\n setError(error);\n return Promise.reject(error);\n }\n },\n\n async update(_id, product) {\n return await $axios.post('/api/products/' + _id, product).then(\n response => {\n return Promise.resolve(response.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async deleteProduct(_id) {\n return await $axios.delete('/api/products/' + _id).then(\n response => {\n return Promise.resolve(response.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProducts() {\n return await $axios.get(`/api/products/read`).then(\n products => {\n state.all = products.data;\n return Promise.resolve(products.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProductsPopular() {\n return await $axios.get(`/api/products/popular`).then(\n products => {\n state.popular = products.data;\n return Promise.resolve(products.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProductsPublished() {\n return await $axios.get(`/api/products`).then(\n products => {\n let publishedProduct = products.data.filter(function (product, index) {\n return product.status !== 'unpublished';\n });\n\n state.all = publishedProduct;\n state.filtered = publishedProduct.slice();\n state.filteredPrice = state.filtered;\n\n state.filteredPrice.sort(function (l, r) {\n return l[state.sort.current] > r[state.sort.current] ? (state.sort.ascending ? 1 : -1) : l[state.sort.current] < r[state.sort.current] ? (state.sort.ascending ? -1 : 1) : 0;\n });\n\n return Promise.resolve(products.data);\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n\n async fetchProductPopular() {\n return await $axios.get(`/api/products`).then(\n products => {\n state.all = products.data.slice(1, 5);\n return Promise.resolve(products.data.slice(1, 5));\n },\n error => {\n setError(error);\n return Promise.reject(error);\n }\n );\n },\n};\n\nconst mutations = {\n resetProduct(product) {\n state.current = {\n included: null,\n category: [],\n status: 'draft',\n attributes: [],\n images: [],\n files: [],\n image3d: false,\n name: '',\n sale: 0,\n price: 0,\n price_cost: 0,\n price_currency: '$',\n localization: [],\n variants: [],\n recommended: [],\n discounts: [],\n ingredients: [],\n description: '',\n defaultVariant: {\n price: null,\n quantity: 1,\n unit: 'pcs'\n }\n };\n },\n};\n\nfunction set(product, property) {\n state[property] = product;\n}\n\n/////////////////////////////\n// GETTERS\n/////////////////////////////\nconst getters = {};\n\n/////////////////////////////\n// UTILS\n/////////////////////////////\n\n/////////////////////////////\n// HISTORY\n/////////////////////////////\nconst history = [];\nhistory.push(state);\n\n/////////////////////////////\n// WATCH\n/////////////////////////////\nwatch(state, (newState, oldState) => {\n history.push(newState);\n});\n\n/////////////////////////////\n// Module Export\n/////////////////////////////\nexport { actions, getters, mutations, state };\n"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { computed, ref, watch, createElementBlock, openBlock, createElementVNode, createVNode, withCtx, createTextVNode } from "vue";
|
|
2
2
|
import dayjs from "../../../../../../../../_virtual/dayjs.min.js";
|
|
3
3
|
import _sfc_main$2 from "../../../../../../components/Tab/Tab.vue2.js";
|
|
4
|
-
import _sfc_main$3 from "../../../../../../components/Button/Button.
|
|
4
|
+
import _sfc_main$3 from "../../../../../../components/Button/Button.vue.js";
|
|
5
5
|
import _sfc_main$4 from "../../../../../../components/Dropdown/Dropdown.vue.js";
|
|
6
6
|
import Calendar from "../../../../../../components/Calendar/Calendar.vue2.js";
|
|
7
7
|
import _sfc_main$1 from "./DateLabel.vue.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ref, computed, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, toDisplayString, unref, withCtx, Fragment, renderList, createBlock, createCommentVNode, createTextVNode } from "vue";
|
|
2
2
|
import _sfc_main$4 from "../../../../../components/Block/Block.vue.js";
|
|
3
|
-
import _sfc_main$5 from "../../../../../components/Button/Button.
|
|
4
|
-
import Field from "../../../../../components/Field/Field.
|
|
3
|
+
import _sfc_main$5 from "../../../../../components/Button/Button.vue.js";
|
|
4
|
+
import Field from "../../../../../components/Field/Field.vue2.js";
|
|
5
5
|
import _sfc_main$2 from "../../../../../components/Feed/Feed.vue.js";
|
|
6
6
|
import _sfc_main$1 from "../../../../../components/Popup/Popup.vue.js";
|
|
7
7
|
import { useGlobalMixins } from "../../../../core/views/mixins/mixins.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { reactive, ref, createElementBlock, openBlock, renderSlot, createVNode, withCtx, createElementVNode, createTextVNode } from "vue";
|
|
2
2
|
import _sfc_main$1 from "../../../../components/Popup/Popup.vue.js";
|
|
3
|
-
import _sfc_main$2 from "../../../../components/Button/Button.
|
|
4
|
-
import Select from "../../../../components/Select/Select.
|
|
3
|
+
import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
|
|
4
|
+
import Select from "../../../../components/Select/Select.vue2.js";
|
|
5
5
|
import { actions } from "../../store/reports.js";
|
|
6
6
|
const _sfc_main = {
|
|
7
7
|
__name: "FormReport",
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ref, computed, resolveComponent, createElementBlock, openBlock, createElementVNode, createCommentVNode, createBlock, toDisplayString } from "vue";
|
|
2
|
-
/* empty css
|
|
2
|
+
/* empty css */
|
|
3
3
|
import _export_sfc from "../../../../../../_virtual/_plugin-vue_export-helper.js";
|
|
4
|
-
/* empty css
|
|
4
|
+
/* empty css */
|
|
5
5
|
/* empty css */
|
|
6
6
|
const _hoisted_1 = { class: "br-grey-transp-25 radius-small mn-b-small" };
|
|
7
7
|
const _hoisted_2 = {
|
|
@@ -2,7 +2,7 @@ import { ref, onMounted, watch, resolveComponent, createElementBlock, openBlock,
|
|
|
2
2
|
import { useRoute, useRouter } from "vue-router";
|
|
3
3
|
import { useI18n } from "vue-i18n";
|
|
4
4
|
/* empty css */
|
|
5
|
-
/* empty css
|
|
5
|
+
/* empty css */
|
|
6
6
|
/* empty css */
|
|
7
7
|
/* empty css */
|
|
8
8
|
import { useStore } from "../../../core/views/store/core.store.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ref, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, withCtx, createTextVNode } from "vue";
|
|
2
2
|
import { useRouter, useRoute } from "vue-router";
|
|
3
3
|
import { Loader } from "../../../../../../node_modules/.pnpm/@googlemaps_js-api-loader@1.16.8/node_modules/@googlemaps/js-api-loader/dist/index.js";
|
|
4
|
-
import _sfc_main$1 from "../../../../components/Button/Button.
|
|
4
|
+
import _sfc_main$1 from "../../../../components/Button/Button.vue.js";
|
|
5
5
|
import { actions, state as state$1 } from "../../../organizations/store/organizations.js";
|
|
6
6
|
import { useStore } from "../../../core/views/store/core.store.js";
|
|
7
7
|
import { state } from "../../../marketplace/views/store/marketplace.js";
|
|
@@ -3,12 +3,12 @@ import { useRouter, useRoute } from "vue-router";
|
|
|
3
3
|
import _sfc_main$1 from "../../../../components/Block/Block.vue.js";
|
|
4
4
|
import UploadImage from "../../../../components/UploadImage/UploadImage.vue.js";
|
|
5
5
|
/* empty css */
|
|
6
|
-
import Field from "../../../../components/Field/Field.
|
|
7
|
-
import Select from "../../../../components/Select/Select.
|
|
6
|
+
import Field from "../../../../components/Field/Field.vue2.js";
|
|
7
|
+
import Select from "../../../../components/Select/Select.vue2.js";
|
|
8
8
|
import _sfc_main$3 from "../../../../components/Checkbox/Checkbox.vue.js";
|
|
9
9
|
import _sfc_main$4 from "../../../../components/Address/Address.vue.js";
|
|
10
10
|
import _sfc_main$5 from "../../../../components/LocationMarker/LocationMarker.vue.js";
|
|
11
|
-
import _sfc_main$2 from "../../../../components/Button/Button.
|
|
11
|
+
import _sfc_main$2 from "../../../../components/Button/Button.vue.js";
|
|
12
12
|
/* empty css */
|
|
13
13
|
import WorktimeEdit from "../sections/WorktimeEdit.vue.js";
|
|
14
14
|
import { actions, state } from "../../store/spots.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { mergeModels, useModel, ref, computed, onMounted, createElementBlock, openBlock, createElementVNode, createVNode, toDisplayString, unref, withCtx, createTextVNode, Fragment, renderList, normalizeClass, createCommentVNode, createBlock } from "vue";
|
|
2
2
|
import { useI18n } from "vue-i18n";
|
|
3
|
-
import _sfc_main$1 from "../../../../components/Button/Button.
|
|
4
|
-
import Field from "../../../../components/Field/Field.
|
|
5
|
-
import Select from "../../../../components/Select/Select.
|
|
3
|
+
import _sfc_main$1 from "../../../../components/Button/Button.vue.js";
|
|
4
|
+
import Field from "../../../../components/Field/Field.vue2.js";
|
|
5
|
+
import Select from "../../../../components/Select/Select.vue2.js";
|
|
6
6
|
import _sfc_main$3 from "../../../../components/Checkbox/Checkbox.vue.js";
|
|
7
7
|
import _sfc_main$2 from "../../../../components/Popup/Popup.vue.js";
|
|
8
8
|
/* empty css */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createElementBlock, openBlock, Fragment, createElementVNode, createVNode, unref, toDisplayString } from "vue";
|
|
2
2
|
import text from "../../localization/wallet.json.js";
|
|
3
|
-
import Field from "../../../../../components/Field/Field.
|
|
3
|
+
import Field from "../../../../../components/Field/Field.vue2.js";
|
|
4
4
|
import { useI18n } from "vue-i18n";
|
|
5
5
|
const _hoisted_1 = { class: "bg-grey radius-big mn-t-semi mn-b-semi flex flex-justify-between" };
|
|
6
6
|
const _sfc_main = {
|
|
@@ -3,8 +3,8 @@ import { useI18n } from "vue-i18n";
|
|
|
3
3
|
import { BigNumber } from "../../../../../../node_modules/.pnpm/bignumber.js@9.1.2/node_modules/bignumber.js/bignumber.js";
|
|
4
4
|
import { state, actions } from "../../store/wallet.store.js";
|
|
5
5
|
import text from "../../localization/wallet.json.js";
|
|
6
|
-
import Field from "../../../../../components/Field/Field.
|
|
7
|
-
import Select from "../../../../../components/Select/Select.
|
|
6
|
+
import Field from "../../../../../components/Field/Field.vue2.js";
|
|
7
|
+
import Select from "../../../../../components/Select/Select.vue2.js";
|
|
8
8
|
const _hoisted_1 = { class: "mn-b-small t-center t-bold" };
|
|
9
9
|
const _hoisted_2 = { class: "t-semi" };
|
|
10
10
|
const _hoisted_3 = ["disabled"];
|
|
@@ -4,11 +4,11 @@ import Web3 from "web3";
|
|
|
4
4
|
import { state, actions } from "../../store/wallet.store.js";
|
|
5
5
|
import text from "../../localization/wallet.json.js";
|
|
6
6
|
import _sfc_main$3 from "../../../../../components/Popup/Popup.vue.js";
|
|
7
|
-
import _sfc_main$1 from "../../../../../components/Button/Button.
|
|
7
|
+
import _sfc_main$1 from "../../../../../components/Button/Button.vue.js";
|
|
8
8
|
import "vue-router";
|
|
9
9
|
/* empty css */
|
|
10
10
|
/* empty css */
|
|
11
|
-
/* empty css
|
|
11
|
+
/* empty css */
|
|
12
12
|
import _sfc_main$2 from "../elements/ConnectMetamask.vue.js";
|
|
13
13
|
import _sfc_main$4 from "../blocks/CashDeposit.vue.js";
|
|
14
14
|
import _sfc_main$5 from "../blocks/CardDeposit.vue.js";
|
package/dist/products.server.js
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { C as CacheNamespaced } from "./core.cache-DALYFDdy.js";
|
|
2
2
|
import { L as LoggerNamespaced, c as coreabac } from "./abac-BPl9Bmf9.js";
|
|
3
3
|
import { q as queryProcessorCore } from "./queryProcessor-C_5Iipam.js";
|
|
4
|
-
import OpenAI from "openai";
|
|
5
4
|
import { Types } from "mongoose";
|
|
6
5
|
import { a as applyCommonSchema } from "./common.schema-DswiUXKB.js";
|
|
7
6
|
import { a as applyEngagementSchema } from "./engagement.schema-fh6W1fb_.js";
|
|
@@ -344,92 +343,6 @@ const controllerFactory$1 = (db) => {
|
|
|
344
343
|
}
|
|
345
344
|
};
|
|
346
345
|
};
|
|
347
|
-
class OpenAIGlobal {
|
|
348
|
-
constructor() {
|
|
349
|
-
if (OpenAIGlobal.instance) {
|
|
350
|
-
return OpenAIGlobal.instance;
|
|
351
|
-
}
|
|
352
|
-
this.client = new OpenAI({
|
|
353
|
-
organization: process.env.OPENAI_ORG_KEY,
|
|
354
|
-
apiKey: process.env.OPENAI_API_KEY
|
|
355
|
-
});
|
|
356
|
-
this.models = {
|
|
357
|
-
chat: "gpt-3.5-turbo",
|
|
358
|
-
vision: "gpt-4-vision-preview",
|
|
359
|
-
embedding: "text-embedding-ada-002"
|
|
360
|
-
};
|
|
361
|
-
OpenAIGlobal.instance = this;
|
|
362
|
-
}
|
|
363
|
-
/**
|
|
364
|
-
* Generate completions with retry logic for handling JSON parsing errors
|
|
365
|
-
* @param {string} prompt - The prompt text
|
|
366
|
-
* @param {Object} options - Additional options
|
|
367
|
-
* @returns {Promise<Object|string>} - Parsed JSON response or raw content
|
|
368
|
-
*/
|
|
369
|
-
async createChatCompletion(prompt, options = {}) {
|
|
370
|
-
const {
|
|
371
|
-
model = this.models.chat,
|
|
372
|
-
maxRetries = 3,
|
|
373
|
-
temperature = 0.7,
|
|
374
|
-
parseJSON = true,
|
|
375
|
-
systemPrompt = ""
|
|
376
|
-
} = options;
|
|
377
|
-
let attempt = 0;
|
|
378
|
-
while (attempt < maxRetries) {
|
|
379
|
-
try {
|
|
380
|
-
const messages = [];
|
|
381
|
-
if (systemPrompt) {
|
|
382
|
-
messages.push({ role: "system", content: systemPrompt });
|
|
383
|
-
}
|
|
384
|
-
messages.push({ role: "user", content: prompt });
|
|
385
|
-
const response = await this.client.chat.completions.create({
|
|
386
|
-
model,
|
|
387
|
-
messages,
|
|
388
|
-
temperature,
|
|
389
|
-
response_format: parseJSON ? { type: "json_object" } : void 0
|
|
390
|
-
});
|
|
391
|
-
const content = response.choices[0].message.content;
|
|
392
|
-
if (parseJSON) {
|
|
393
|
-
return JSON.parse(content);
|
|
394
|
-
}
|
|
395
|
-
return content;
|
|
396
|
-
} catch (err) {
|
|
397
|
-
attempt++;
|
|
398
|
-
if (err instanceof SyntaxError && attempt < maxRetries) {
|
|
399
|
-
console.error(`Invalid JSON in OpenAI response (attempt ${attempt}/${maxRetries}): ${err.message}`);
|
|
400
|
-
} else if (attempt >= maxRetries) {
|
|
401
|
-
console.error(`Max retries (${maxRetries}) reached for OpenAI completion: ${err.message}`);
|
|
402
|
-
throw err;
|
|
403
|
-
} else {
|
|
404
|
-
console.error(`OpenAI API error (attempt ${attempt}/${maxRetries}): ${err.message}`);
|
|
405
|
-
if (err.status === 429) {
|
|
406
|
-
const waitTime = Math.pow(2, attempt) * 1e3;
|
|
407
|
-
await new Promise((resolve) => setTimeout(resolve, waitTime));
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
await new Promise((resolve) => setTimeout(resolve, 1e3 * attempt));
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
}
|
|
414
|
-
/**
|
|
415
|
-
* Get direct access to OpenAI client instance
|
|
416
|
-
* @returns {OpenAI} - OpenAI client instance
|
|
417
|
-
*/
|
|
418
|
-
getClient() {
|
|
419
|
-
return this.client;
|
|
420
|
-
}
|
|
421
|
-
/**
|
|
422
|
-
* Set default model for specific API
|
|
423
|
-
* @param {string} type - API type ('chat', 'vision', 'embedding')
|
|
424
|
-
* @param {string} modelId - Model identifier
|
|
425
|
-
*/
|
|
426
|
-
setDefaultModel(type, modelId) {
|
|
427
|
-
if (this.models[type]) {
|
|
428
|
-
this.models[type] = modelId;
|
|
429
|
-
}
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
const openaiGlobal = new OpenAIGlobal();
|
|
433
346
|
const ObjectId = Types.ObjectId;
|
|
434
347
|
function getCategoriesFilterStage(categories) {
|
|
435
348
|
if (!categories) return [];
|
|
@@ -883,52 +796,11 @@ const controllerFactory = (db) => {
|
|
|
883
796
|
res.status(500).send({ message: err.message });
|
|
884
797
|
}
|
|
885
798
|
};
|
|
886
|
-
const getProductRecommendation = async (req, res) => {
|
|
887
|
-
const { mood } = req.body;
|
|
888
|
-
try {
|
|
889
|
-
const products = await Product.find({
|
|
890
|
-
status: "published"
|
|
891
|
-
}).limit(40);
|
|
892
|
-
if (!products) {
|
|
893
|
-
console.log("no products");
|
|
894
|
-
return res.status(404).send({ message: "Products not found." });
|
|
895
|
-
}
|
|
896
|
-
const productsList = products.map((p) => {
|
|
897
|
-
const info = p.attributes || [];
|
|
898
|
-
const value0 = info[0] ? info[0].value : "";
|
|
899
|
-
const value1 = info[1] ? `(${info[1].value}%)` : "";
|
|
900
|
-
const value2 = info[2] ? `(${info[2].value})` : "";
|
|
901
|
-
return `${p._id}: ${p.name} (${value0}) ${value1} ${value2}`;
|
|
902
|
-
}).join(", ");
|
|
903
|
-
const prompt = `
|
|
904
|
-
1. When asked how the client wants to feel, they responded "${mood}".
|
|
905
|
-
2. Here is a list of products in our store: ${productsList}.
|
|
906
|
-
3. Based on the attributes about the products (strain, THC content) and the user's desires, choose 1 product to recommend to the user.
|
|
907
|
-
4. The response should be in the language that the user used in mood (${mood}).
|
|
908
|
-
5. Please format your response as a JSON object '{"_id": "ID of the recommended product (it must correspond to one of the product IDs I sent)", "recommendationText": "Text explaining why this particular product"'. Write only the JSON object without any other text outside of it.
|
|
909
|
-
`;
|
|
910
|
-
const result = await openaiGlobal.createChatCompletion(prompt, {
|
|
911
|
-
model: "gpt-4",
|
|
912
|
-
temperature: 0.8,
|
|
913
|
-
systemPrompt: "You are a product recommendation specialist with expertise in matching customer needs to product attributes."
|
|
914
|
-
});
|
|
915
|
-
const recommendedProduct = await Product.findById(result._id);
|
|
916
|
-
if (!recommendedProduct) {
|
|
917
|
-
console.log(`No product found with _id: ${result._id}`);
|
|
918
|
-
return res.status(404).send({ message: "Recommended product not found." });
|
|
919
|
-
}
|
|
920
|
-
res.status(200).json({ product: recommendedProduct, recommendationText: result.recommendationText });
|
|
921
|
-
} catch (err) {
|
|
922
|
-
console.log(err);
|
|
923
|
-
res.status(500).send({ message: err });
|
|
924
|
-
}
|
|
925
|
-
};
|
|
926
799
|
return {
|
|
927
800
|
Create,
|
|
928
801
|
Read,
|
|
929
802
|
Update,
|
|
930
|
-
Delete
|
|
931
|
-
getProductRecommendation
|
|
803
|
+
Delete
|
|
932
804
|
};
|
|
933
805
|
};
|
|
934
806
|
const CategoryModel = (db) => {
|
|
@@ -1447,7 +1319,6 @@ const productsRoutes = (function(app, db, allowedOrigins) {
|
|
|
1447
1319
|
app.get("/api/products/read", controller.Read);
|
|
1448
1320
|
app.post("/api/products/:_id", controller.Update);
|
|
1449
1321
|
app.delete("/api/products/:_id", controller.Delete);
|
|
1450
|
-
app.post("/api/product/recommended", controller.getProductRecommendation);
|
|
1451
1322
|
});
|
|
1452
1323
|
const verifierFactory = (function(db) {
|
|
1453
1324
|
const createVerifier = new Verifier({
|