@evershop/evershop 1.2.0 → 1.2.2
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/README.md +116 -109
- package/bin/build/client/index.js +25 -25
- package/bin/build/complie.js +30 -30
- package/bin/build/index.js +70 -70
- package/bin/build/server/index.js +25 -25
- package/bin/build/server/useDDL.js +279 -279
- package/bin/build/server/useVendorChunk.js +89 -89
- package/bin/dev/index.js +9 -9
- package/bin/evershop +38 -38
- package/bin/extension/index.js +49 -49
- package/bin/install/createMigrationTable.js +17 -17
- package/bin/install/index.js +292 -292
- package/bin/install/templates/config.json +17 -17
- package/bin/lib/addDefaultMiddlewareFuncs.js +341 -341
- package/bin/lib/app.js +92 -92
- package/bin/lib/bootstrap/bootstrap.js +11 -11
- package/bin/lib/bootstrap/migrate.js +95 -95
- package/bin/lib/buildEntry.js +140 -137
- package/bin/lib/createComponents.js +93 -93
- package/bin/lib/cronjob.js +49 -0
- package/bin/lib/loadModules.js +90 -90
- package/bin/lib/normalizePort.js +19 -19
- package/bin/lib/onError.js +28 -28
- package/bin/lib/onListening.js +22 -22
- package/bin/lib/prepare.js +68 -68
- package/bin/lib/startUp.js +116 -99
- package/bin/lib/watch/broadcash.js +18 -18
- package/bin/lib/watch/refreshable.js +19 -19
- package/bin/lib/watch/watch.js +31 -31
- package/bin/lib/watch/watchComponents.js +26 -26
- package/bin/lib/watch/watchMF.js +37 -37
- package/bin/lib/watch/watchMR.js +102 -102
- package/bin/lib/watch/watchPage.js +15 -15
- package/bin/lib/watch/watchSchema.js +24 -24
- package/bin/start/index.js +8 -8
- package/bin/user/changePassword.js +69 -69
- package/bin/user/create.js +78 -78
- package/package.json +138 -136
- package/src/components/admin/auth/AuthContext.jsx +26 -26
- package/src/components/admin/catalog/attributeGrid/headers/GroupHeader.jsx +80 -80
- package/src/components/admin/catalog/attributeGrid/rows/AttributeName.jsx +19 -19
- package/src/components/admin/catalog/attributeGrid/rows/GroupRow.jsx +101 -101
- package/src/components/admin/catalog/categoryGrid/rows/CategoryName.jsx +25 -25
- package/src/components/admin/catalog/collection/collectionEdit/AddProducts.jsx +51 -51
- package/src/components/admin/catalog/collectionGrid/rows/CollectionNameRow.jsx +19 -19
- package/src/components/admin/catalog/productEdit/category/CategoryItem.jsx +128 -128
- package/src/components/admin/catalog/productEdit/category/CategoryTree.jsx +99 -99
- package/src/components/admin/catalog/productEdit/category/CategoryTree.scss +14 -14
- package/src/components/admin/catalog/productEdit/media/ProductMediaManager.jsx +264 -264
- package/src/components/admin/catalog/productEdit/media/ProductMediaManager.scss +76 -76
- package/src/components/admin/catalog/productEdit/variants/CreateVariant.jsx +100 -100
- package/src/components/admin/catalog/productEdit/variants/CreateVariantGroup.jsx +141 -141
- package/src/components/admin/catalog/productEdit/variants/EditVariant.jsx +115 -115
- package/src/components/admin/catalog/productEdit/variants/New.jsx +62 -62
- package/src/components/admin/catalog/productEdit/variants/Search.jsx +51 -51
- package/src/components/admin/catalog/productEdit/variants/SearchModal.jsx +191 -191
- package/src/components/admin/catalog/productEdit/variants/SubmitButton.jsx +137 -137
- package/src/components/admin/catalog/productEdit/variants/Variant.jsx +73 -73
- package/src/components/admin/catalog/productEdit/variants/VariantModal.jsx +201 -201
- package/src/components/admin/catalog/productEdit/variants/VariantType.jsx +20 -20
- package/src/components/admin/catalog/productEdit/variants/Variants.jsx +180 -180
- package/src/components/admin/catalog/productEdit/variants/Variants.scss +50 -50
- package/src/components/admin/catalog/productGrid/rows/PriceRow.jsx +24 -24
- package/src/components/admin/catalog/productGrid/rows/ProductName.jsx +19 -19
- package/src/components/admin/catalog/productGrid/rows/QtyRow.jsx +16 -16
- package/src/components/admin/catalog/productGrid/rows/ThumbnailRow.jsx +37 -37
- package/src/components/admin/checkout/shippingSetting/Method.jsx +149 -130
- package/src/components/admin/checkout/shippingSetting/MethodForm.jsx +370 -366
- package/src/components/admin/checkout/shippingSetting/Methods.jsx +74 -70
- package/src/components/admin/checkout/shippingSetting/PriceBasedPrice.jsx +101 -101
- package/src/components/admin/checkout/shippingSetting/WeightBasedPrice.jsx +101 -101
- package/src/components/admin/checkout/shippingSetting/Zone.jsx +147 -147
- package/src/components/admin/checkout/shippingSetting/ZoneForm.jsx +146 -146
- package/src/components/admin/checkout/shippingSetting/Zones.jsx +57 -44
- package/src/components/admin/cms/Card.jsx +132 -132
- package/src/components/admin/cms/Card.scss +38 -38
- package/src/components/admin/cms/Dot.jsx +18 -18
- package/src/components/admin/cms/NavigationItem.jsx +39 -39
- package/src/components/admin/cms/NavigationItem.scss +10 -10
- package/src/components/admin/cms/NavigationItemGroup.jsx +67 -67
- package/src/components/admin/cms/NavigationItemGroup.scss +32 -32
- package/src/components/admin/cms/PageHeading.jsx +94 -94
- package/src/components/admin/cms/PageHeading.scss +19 -19
- package/src/components/admin/cms/Title.jsx +10 -10
- package/src/components/admin/cms/cmsPageGrid/rows/NameRow.jsx +22 -22
- package/src/components/admin/cms/cmsPageGrid/rows/PageName.jsx +19 -19
- package/src/components/admin/cms/navigation/DashboardMenuItem.jsx +12 -12
- package/src/components/admin/cms/navigation/PagesMenuItem.jsx +12 -12
- package/src/components/admin/cms/widget/WidgetTypes.jsx +28 -28
- package/src/components/admin/cms/widget/grid/WidgetTypeRow.jsx +29 -29
- package/src/components/admin/customer/customerGrid/rows/CreateAt.jsx +16 -16
- package/src/components/admin/customer/customerGrid/rows/CustomerName.jsx +19 -19
- package/src/components/admin/oms/orderEdit/Shipment.jsx +243 -243
- package/src/components/admin/oms/orderEdit/items/ItemOptions.jsx +53 -53
- package/src/components/admin/oms/orderEdit/items/ItemVariantOptions.jsx +37 -37
- package/src/components/admin/oms/orderEdit/items/Name.jsx +45 -45
- package/src/components/admin/oms/orderEdit/items/Price.jsx +21 -21
- package/src/components/admin/oms/orderEdit/items/Thumbnail.jsx +40 -40
- package/src/components/admin/oms/orderEdit/payment/Discount.jsx +24 -24
- package/src/components/admin/oms/orderEdit/payment/Shipping.jsx +19 -19
- package/src/components/admin/oms/orderEdit/payment/SubTotal.jsx +19 -19
- package/src/components/admin/oms/orderEdit/payment/Tax.jsx +20 -20
- package/src/components/admin/oms/orderEdit/payment/Total.jsx +18 -18
- package/src/components/admin/oms/orderGrid/headers/OrderDateColumnHeader.jsx +81 -81
- package/src/components/admin/oms/orderGrid/headers/PaymentStatusColumnHeader.jsx +63 -63
- package/src/components/admin/oms/orderGrid/headers/ShipmentStatusColumnHeader.jsx +63 -63
- package/src/components/admin/oms/orderGrid/rows/OrderNumberRow.jsx +19 -19
- package/src/components/admin/oms/orderGrid/rows/PaymentStatus.jsx +23 -19
- package/src/components/admin/oms/orderGrid/rows/ShipmentStatus.jsx +23 -19
- package/src/components/admin/oms/orderGrid/rows/TotalRow.jsx +10 -10
- package/src/components/admin/promotion/couponEdit/AttributeGroupConditionSelector.jsx +95 -92
- package/src/components/admin/promotion/couponEdit/AttributeGroupSelector.jsx +196 -196
- package/src/components/admin/promotion/couponEdit/BuyXGetY.jsx +275 -275
- package/src/components/admin/promotion/couponEdit/CategoryConditionSelector.jsx +91 -89
- package/src/components/admin/promotion/couponEdit/CategorySelector.jsx +183 -173
- package/src/components/admin/promotion/couponEdit/CollectionConditionSelector.jsx +95 -92
- package/src/components/admin/promotion/couponEdit/CollectionSelector.jsx +173 -173
- package/src/components/admin/promotion/couponEdit/CompareKeyList.jsx +22 -22
- package/src/components/admin/promotion/couponEdit/CompareOperatorList.jsx +42 -42
- package/src/components/admin/promotion/couponEdit/PriceConditionSelector.jsx +50 -46
- package/src/components/admin/promotion/couponEdit/ProductSkuSelector.jsx +238 -238
- package/src/components/admin/promotion/couponEdit/RequireProducts.jsx +442 -443
- package/src/components/admin/promotion/couponEdit/Setting.jsx +82 -82
- package/src/components/admin/promotion/couponEdit/SkuConditionSelector.jsx +104 -101
- package/src/components/admin/promotion/couponEdit/TargetProducts.jsx +511 -505
- package/src/components/admin/promotion/couponGrid/rows/CouponName.jsx +19 -19
- package/src/components/admin/setting/SettingMenu.jsx +14 -14
- package/src/components/admin/setting/SettingMenu.scss +8 -8
- package/src/components/admin/tax/taxSetting/Rate.jsx +84 -79
- package/src/components/admin/tax/taxSetting/RateForm.jsx +175 -175
- package/src/components/admin/tax/taxSetting/Rates.jsx +77 -75
- package/src/components/admin/tax/taxSetting/TaxClass.jsx +48 -48
- package/src/components/admin/tax/taxSetting/TaxClassForm.jsx +58 -58
- package/src/components/admin/tax/taxSetting/TaxClasses.jsx +52 -51
- package/src/components/admin/widgets/BasicMenuSetting.jsx +614 -614
- package/src/components/admin/widgets/BasicMenuSetting.scss +19 -19
- package/src/components/admin/widgets/CollectionProductsSetting.jsx +203 -203
- package/src/components/admin/widgets/TextBlockSetting.jsx +70 -70
- package/src/components/common/Area.jsx +132 -132
- package/src/components/common/Badge.jsx +51 -51
- package/src/components/common/Badge.scss +111 -111
- package/src/components/common/Body.jsx +10 -10
- package/src/components/common/BundleCss.jsx +13 -13
- package/src/components/common/BundleJs.jsx +9 -9
- package/src/components/common/CKEditor.jsx +20 -20
- package/src/components/common/CKEditor.scss +460 -460
- package/src/components/common/Circle.jsx +36 -36
- package/src/components/common/Circle.scss +90 -90
- package/src/components/common/Dot.jsx +40 -40
- package/src/components/common/Dot.scss +32 -32
- package/src/components/common/Editor.jsx +193 -191
- package/src/components/common/Link.jsx +19 -19
- package/src/components/common/LoadingBar.jsx +41 -41
- package/src/components/common/LoadingBar.scss +14 -14
- package/src/components/common/Meta.jsx +29 -29
- package/src/components/common/Notification.jsx +37 -37
- package/src/components/common/Notification.scss +536 -536
- package/src/components/common/Off.jsx +10 -10
- package/src/components/common/Off.scss +26 -26
- package/src/components/common/On.jsx +10 -10
- package/src/components/common/On.scss +26 -26
- package/src/components/common/ProductNoThumbnail.jsx +39 -39
- package/src/components/common/RenderIfTrue.jsx +10 -0
- package/src/components/common/Script.jsx +15 -15
- package/src/components/common/SimplePagination.jsx +60 -60
- package/src/components/common/Spinner.jsx +42 -42
- package/src/components/common/Title.jsx +10 -10
- package/src/components/common/context/app.jsx +62 -62
- package/src/components/common/context/checkout.jsx +87 -94
- package/src/components/common/context/checkoutSteps.jsx +109 -103
- package/src/components/common/customer/address/AddressSummary.jsx +73 -73
- package/src/components/common/form/Button.jsx +96 -96
- package/src/components/common/form/Button.scss +66 -66
- package/src/components/common/form/Field.jsx +143 -135
- package/src/components/common/form/Field.scss +201 -203
- package/src/components/common/form/Form.jsx +254 -254
- package/src/components/common/form/fields/Checkbox.jsx +81 -81
- package/src/components/common/form/fields/Checkbox.scss +1 -1
- package/src/components/common/form/fields/Ckeditor.jsx +514 -514
- package/src/components/common/form/fields/Ckeditor.scss +53 -53
- package/src/components/common/form/fields/Date.jsx +78 -78
- package/src/components/common/form/fields/Date.scss +1 -1
- package/src/components/common/form/fields/DateTime.jsx +78 -78
- package/src/components/common/form/fields/DateTime.scss +1 -1
- package/src/components/common/form/fields/Editor.jsx +343 -326
- package/src/components/common/form/fields/Editor.scss +33 -29
- package/src/components/common/form/fields/Error.jsx +24 -24
- package/src/components/common/form/fields/Flatpickr.jsx +4 -4
- package/src/components/common/form/fields/Flatpickr.scss +789 -789
- package/src/components/common/form/fields/Hidden.jsx +30 -30
- package/src/components/common/form/fields/Input.jsx +79 -76
- package/src/components/common/form/fields/Input.scss +1 -1
- package/src/components/common/form/fields/MultiSelect.jsx +97 -97
- package/src/components/common/form/fields/MultiSelect.scss +1 -1
- package/src/components/common/form/fields/Password.jsx +74 -74
- package/src/components/common/form/fields/Radio.jsx +83 -83
- package/src/components/common/form/fields/Radio.scss +1 -1
- package/src/components/common/form/fields/Select.jsx +109 -109
- package/src/components/common/form/fields/Select.scss +1 -1
- package/src/components/common/form/fields/Textarea.jsx +68 -68
- package/src/components/common/form/fields/Textarea.scss +1 -1
- package/src/components/common/form/fields/Toggle.jsx +110 -110
- package/src/components/common/form/fields/Toggle.scss +26 -26
- package/src/components/common/form/fields/editor/FileBrowser.jsx +419 -419
- package/src/components/common/form/fields/editor/FileBrowser.scss +36 -36
- package/src/components/common/form/fields/editor/GetColumnClasses.jsx +14 -14
- package/src/components/common/form/fields/editor/GetRowClasses.jsx +18 -18
- package/src/components/common/form/fields/editor/RowTemplates.jsx +155 -154
- package/src/components/common/form/validator.js +59 -59
- package/src/components/common/grid/Pagination.jsx +170 -170
- package/src/components/common/grid/Pagination.scss +25 -25
- package/src/components/common/grid/headers/Action.jsx +34 -34
- package/src/components/common/grid/headers/Dropdown.jsx +65 -65
- package/src/components/common/grid/headers/Dummy.jsx +18 -18
- package/src/components/common/grid/headers/FromTo.jsx +73 -73
- package/src/components/common/grid/headers/Sortable.jsx +147 -148
- package/src/components/common/grid/headers/Status.jsx +52 -52
- package/src/components/common/grid/rows/ActionRow.jsx +41 -41
- package/src/components/common/grid/rows/BasicRow.jsx +15 -15
- package/src/components/common/grid/rows/DateRow.jsx +34 -34
- package/src/components/common/grid/rows/PriceRow.jsx +28 -28
- package/src/components/common/grid/rows/StatusRow.jsx +27 -27
- package/src/components/common/grid/rows/TextRow.jsx +10 -10
- package/src/components/common/grid/rows/ThumbnailRow.jsx +43 -43
- package/src/components/common/grid/rows/YesNoRow.jsx +23 -24
- package/src/components/common/list/Filter.jsx +83 -83
- package/src/components/common/list/Filter.scss +38 -38
- package/src/components/common/locale/CountryOption.jsx +277 -277
- package/src/components/common/locale/CurrencyOption.jsx +196 -196
- package/src/components/common/locale/LanguageOption.jsx +218 -218
- package/src/components/common/locale/ProvinceOption.jsx +3690 -3690
- package/src/components/common/locale/TimezoneOption.jsx +1266 -1266
- package/src/components/common/modal/Alert.jsx +145 -145
- package/src/components/common/modal/Alert.scss +84 -84
- package/src/components/common/modal/Modal.jsx +64 -64
- package/src/components/common/modal/useModal.js +51 -51
- package/src/components/common/react/Head.jsx +10 -10
- package/src/components/common/react/client/Client.jsx +32 -32
- package/src/components/common/react/client/HotReload.jsx +47 -47
- package/src/components/common/react/client/Hydrate.jsx +25 -25
- package/src/components/common/react/client/HydrateAdmin.jsx +11 -11
- package/src/components/common/react/client/HydrateFrontStore.jsx +11 -11
- package/src/components/common/react/client/Index.jsx +22 -22
- package/src/components/common/react/getComponents.js +19 -19
- package/src/components/common/react/server/Server.jsx +38 -38
- package/src/components/common/react/server/render.jsx +18 -18
- package/src/components/frontStore/catalog/categoryView/filter/AttributeFilter.jsx +153 -153
- package/src/components/frontStore/catalog/categoryView/filter/CategoryFilter.jsx +142 -142
- package/src/components/frontStore/catalog/categoryView/filter/CategoryFilter.scss +5 -5
- package/src/components/frontStore/catalog/categoryView/filter/PriceFilter.jsx +211 -211
- package/src/components/frontStore/catalog/categoryView/filter/PriceFilter.scss +25 -25
- package/src/components/frontStore/catalog/product/list/List.jsx +92 -92
- package/src/components/frontStore/catalog/product/list/Pagination.jsx +156 -156
- package/src/components/frontStore/catalog/product/list/Pagination.scss +21 -21
- package/src/components/frontStore/catalog/product/list/SortOptions.jsx +8 -8
- package/src/components/frontStore/catalog/product/list/Sorting.jsx +118 -118
- package/src/components/frontStore/catalog/product/list/item/Name.jsx +24 -24
- package/src/components/frontStore/catalog/product/list/item/Name.scss +3 -3
- package/src/components/frontStore/catalog/product/list/item/Price.jsx +35 -35
- package/src/components/frontStore/catalog/product/list/item/Thumbnail.jsx +35 -35
- package/src/components/frontStore/catalog/product/list/item/Thumbnail.scss +9 -9
- package/src/components/frontStore/catalog/product/single/Name.jsx +10 -10
- package/src/components/frontStore/catalog/product/single/NoThumbnail.jsx +39 -39
- package/src/components/frontStore/catalog/product/single/Price.jsx +31 -31
- package/src/components/frontStore/catalog/product/single/Sku.jsx +16 -16
- package/src/components/frontStore/checkout/cart/Empty.jsx +50 -50
- package/src/components/frontStore/checkout/cart/items/ItemOptions.jsx +58 -58
- package/src/components/frontStore/checkout/cart/items/ItemVariantOptions.jsx +35 -35
- package/src/components/frontStore/checkout/cart/items/Items.jsx +190 -190
- package/src/components/frontStore/checkout/cart/items/Items.scss +96 -96
- package/src/components/frontStore/checkout/cart/items/Quantity.jsx +154 -154
- package/src/components/frontStore/checkout/checkout/CheckoutButton.jsx +28 -28
- package/src/components/frontStore/checkout/checkout/StepTitle.jsx +52 -52
- package/src/components/frontStore/checkout/checkout/payment/paymentMethods/Methods.jsx +17 -17
- package/src/components/frontStore/checkout/checkout/payment/paymentStep/BillingAddress.jsx +30 -30
- package/src/components/frontStore/checkout/checkout/payment/paymentStep/StepContent.jsx +228 -207
- package/src/components/frontStore/checkout/checkout/shipment/StepContent.jsx +192 -117
- package/src/components/frontStore/checkout/checkout/summary/Cart.jsx +89 -89
- package/src/components/frontStore/checkout/checkout/summary/Items.jsx +108 -108
- package/src/components/frontStore/checkout/checkout/summary/Items.scss +53 -53
- package/src/components/frontStore/checkout/checkout/summary/cart/Discount.jsx +29 -29
- package/src/components/frontStore/checkout/checkout/summary/cart/Shipping.jsx +29 -29
- package/src/components/frontStore/checkout/checkout/summary/cart/Subtotal.jsx +20 -20
- package/src/components/frontStore/checkout/checkout/summary/cart/Tax.jsx +23 -23
- package/src/components/frontStore/checkout/checkout/summary/cart/Total.jsx +38 -38
- package/src/components/frontStore/checkout/success/summary/items/ItemOptions.jsx +58 -58
- package/src/components/frontStore/checkout/success/summary/items/Items.jsx +71 -72
- package/src/components/frontStore/checkout/success/summary/items/Items.scss +53 -53
- package/src/components/frontStore/checkout/success/summary/order/Discount.jsx +29 -29
- package/src/components/frontStore/checkout/success/summary/order/OrderSummary.jsx +98 -96
- package/src/components/frontStore/checkout/success/summary/order/Shipping.jsx +29 -29
- package/src/components/frontStore/checkout/success/summary/order/Subtotal.jsx +20 -20
- package/src/components/frontStore/checkout/success/summary/order/Tax.jsx +23 -23
- package/src/components/frontStore/checkout/success/summary/order/Total.jsx +34 -34
- package/src/components/frontStore/cms/Button.jsx +4 -4
- package/src/components/frontStore/cms/Button.scss +67 -67
- package/src/components/frontStore/cms/MetaDescription.jsx +10 -10
- package/src/components/frontStore/cms/MetaTitle.jsx +10 -10
- package/src/components/frontStore/cod/CODLogo.jsx +24 -24
- package/src/components/frontStore/customer/address/addressForm/AddressForm.jsx +179 -173
- package/src/components/frontStore/customer/address/addressForm/AddressFormLoadingSkeleton.jsx +20 -20
- package/src/components/frontStore/customer/address/addressForm/AddressFormLoadingSkeleton.scss +26 -26
- package/src/components/frontStore/customer/address/addressForm/Country.jsx +52 -46
- package/src/components/frontStore/customer/address/addressForm/Index.jsx +77 -76
- package/src/components/frontStore/customer/address/addressForm/NameAndTelephone.jsx +72 -72
- package/src/components/frontStore/customer/address/addressForm/Province.jsx +61 -61
- package/src/components/frontStore/customer/address/addressForm/ProvinceAndPostcode.jsx +75 -75
- package/src/components/frontStore/customer/checkout/Edit.jsx +99 -94
- package/src/components/frontStore/customer/detail/Order.jsx +78 -78
- package/src/components/frontStore/paypal/PaypalLogo.jsx +24 -24
- package/src/components/frontStore/stripe/StripeLogo.jsx +24 -24
- package/src/components/frontStore/stripe/checkout/CheckoutForm.jsx +209 -221
- package/src/components/frontStore/stripe/checkout/CheckoutForm.scss +24 -29
- package/src/components/frontStore/stripe/checkout/TestCards.jsx +96 -96
- package/src/components/frontStore/widgets/BasicMenu.jsx +129 -129
- package/src/components/frontStore/widgets/CollectionProducts.jsx +92 -94
- package/src/components/frontStore/widgets/TextBlock.jsx +46 -46
- package/src/lib/babel/config.js +16 -16
- package/src/lib/babel/index.js +3 -3
- package/src/lib/bundlee.js +256 -256
- package/src/lib/componee/getComponentsByRoute.js +34 -34
- package/src/lib/componee/scanForComponents.js +98 -98
- package/src/lib/componee/tests/unit/scanRouteComponents.test.js +136 -136
- package/src/lib/event/callSubscibers.js +22 -22
- package/src/lib/event/emitter.js +11 -11
- package/src/lib/event/event-manager.js +113 -113
- package/src/lib/event/loadSubscribers.js +54 -54
- package/src/lib/helpers.js +17 -17
- package/src/lib/locale/countries.js +248 -248
- package/src/lib/locale/currencies.js +170 -170
- package/src/lib/locale/provinces.js +3595 -3595
- package/src/lib/locale/timezones.js +1085 -1085
- package/src/lib/locale/translate/index.js +10 -10
- package/src/lib/locale/translate/translate.js +30 -30
- package/src/lib/log/CustomColorize.js +22 -22
- package/src/lib/log/logger.js +158 -158
- package/src/lib/middleware/Handler.js +145 -145
- package/src/lib/middleware/addMiddleware.js +14 -14
- package/src/lib/middleware/async.js +43 -43
- package/src/lib/middleware/buildMiddlewareFunction.js +82 -82
- package/src/lib/middleware/delegate.js +22 -22
- package/src/lib/middleware/eNext.js +16 -16
- package/src/lib/middleware/findDublicatedMiddleware.js +22 -22
- package/src/lib/middleware/getRouteFromPath.js +48 -48
- package/src/lib/middleware/index.js +102 -102
- package/src/lib/middleware/isErrorHandlerTriggered.js +7 -7
- package/src/lib/middleware/isNextRequired.js +6 -6
- package/src/lib/middleware/noDuplicateId.js +23 -23
- package/src/lib/middleware/parseFromFile.js +79 -79
- package/src/lib/middleware/scanForMiddlewareFunctions.js +31 -31
- package/src/lib/middleware/sort.js +49 -49
- package/src/lib/middleware/sync.js +42 -42
- package/src/lib/middleware/tests/app/app.js +96 -96
- package/src/lib/middleware/tests/app/modules/404page/pages/frontStore/product/[loadProduct]loadCategory.js +3 -3
- package/src/lib/middleware/tests/app/modules/404page/pages/frontStore/product/[loadProduct]loadProductImage.js +5 -5
- package/src/lib/middleware/tests/app/modules/404page/pages/frontStore/product/loadProduct.js +10 -10
- package/src/lib/middleware/tests/app/modules/404page/pages/frontStore/product/route.json +5 -5
- package/src/lib/middleware/tests/app/modules/api/api/createA/index.js +3 -3
- package/src/lib/middleware/tests/app/modules/api/api/createA/route.json +4 -4
- package/src/lib/middleware/tests/app/modules/api/api/global/apiGlobal.js +3 -3
- package/src/lib/middleware/tests/app/modules/authcopy/api/createA/[index]afterIndex.js +3 -3
- package/src/lib/middleware/tests/app/modules/authcopy/api/global/[context]auth.js +3 -3
- package/src/lib/middleware/tests/app/modules/authcopy/api/global/apiAuthGlobal.js +3 -3
- package/src/lib/middleware/tests/app/modules/authcopy/pages/global/[context]auth.js +1 -1
- package/src/lib/middleware/tests/app/modules/basecopy/api/global/[apiResponse]apiErrorHandler.js +3 -3
- package/src/lib/middleware/tests/app/modules/basecopy/api/global/[auth]apiResponse[apiErrorHandler].js +3 -3
- package/src/lib/middleware/tests/app/modules/basecopy/api/global/[auth]payloadValidate.js +3 -3
- package/src/lib/middleware/tests/app/modules/basecopy/api/global/[payloadValidate]escapeHtml.js +3 -3
- package/src/lib/middleware/tests/app/modules/basecopy/api/global/context.js +38 -38
- package/src/lib/middleware/tests/app/modules/basecopy/pages/admin/adminStaticAsset/route.json +4 -4
- package/src/lib/middleware/tests/app/modules/basecopy/pages/admin/adminStaticAsset/staticAssets.js +3 -3
- package/src/lib/middleware/tests/app/modules/basecopy/pages/admin/all/adminTitle.js +1 -1
- package/src/lib/middleware/tests/app/modules/basecopy/pages/frontStore/all/title.js +1 -1
- package/src/lib/middleware/tests/app/modules/basecopy/pages/frontStore/notFound/route.json +4 -4
- package/src/lib/middleware/tests/app/modules/basecopy/pages/frontStore/staticAsset/[context]staticAssets[auth].js +3 -3
- package/src/lib/middleware/tests/app/modules/basecopy/pages/frontStore/staticAsset/route.json +4 -4
- package/src/lib/middleware/tests/app/modules/basecopy/pages/global/{[notification]notFound[response].js → [auth]notFound[response].js} +4 -4
- package/src/lib/middleware/tests/app/modules/basecopy/pages/global/[notFound]dummy[response].js +3 -3
- package/src/lib/middleware/tests/app/modules/basecopy/pages/global/[response]errorHandler.js +4 -4
- package/src/lib/middleware/tests/app/modules/basecopy/pages/global/context.js +37 -37
- package/src/lib/middleware/tests/app/modules/basecopy/pages/global/response[errorHandler].js +4 -4
- package/src/lib/middleware/tests/app/modules/delegate/pages/frontStore/delegateTest/asyncWithNext[collection].js +8 -8
- package/src/lib/middleware/tests/app/modules/delegate/pages/frontStore/delegateTest/async[collection].js +7 -7
- package/src/lib/middleware/tests/app/modules/delegate/pages/frontStore/delegateTest/collection.js +9 -9
- package/src/lib/middleware/tests/app/modules/delegate/pages/frontStore/delegateTest/returnOne[returnTwo].js +3 -3
- package/src/lib/middleware/tests/app/modules/delegate/pages/frontStore/delegateTest/returnThree[collection].js +3 -3
- package/src/lib/middleware/tests/app/modules/delegate/pages/frontStore/delegateTest/returnTwo[returnThree].js +5 -5
- package/src/lib/middleware/tests/app/modules/delegate/pages/frontStore/delegateTest/route.json +4 -4
- package/src/lib/middleware/tests/app/modules/delegate/pages/frontStore/delegateTest/syncWithNext[collection].js +5 -5
- package/src/lib/middleware/tests/app/modules/delegate/pages/frontStore/delegateTest/sync[collection].js +5 -5
- package/src/lib/middleware/tests/app/modules/error/pages/frontStore/errorHandlerTest/errorInAsync.js +5 -5
- package/src/lib/middleware/tests/app/modules/error/pages/frontStore/errorHandlerTest/errorInAsyncWithNext.js +12 -12
- package/src/lib/middleware/tests/app/modules/error/pages/frontStore/errorHandlerTest/errorInSync.js +5 -5
- package/src/lib/middleware/tests/app/modules/error/pages/frontStore/errorHandlerTest/errorInSyncWithNext.js +5 -5
- package/src/lib/middleware/tests/app/modules/error/pages/frontStore/errorHandlerTest/route.json +4 -4
- package/src/lib/middleware/tests/app/modules/graphqlcopy/pages/global/[bodyParser]buildQuery[graphql].js +1 -1
- package/src/lib/middleware/tests/app/modules/graphqlcopy/pages/global/{[buildQuery]graphql[notification].js → [buildQuery]graphql[notFound].js} +1 -1
- package/src/lib/middleware/tests/app/modules/graphqlcopy/pages/global/bodyParser[buildQuery].js +7 -7
- package/src/lib/middleware/tests/app/modules/handler/pages/admin/productEdit/[loadProduct]loadCategory.js +3 -3
- package/src/lib/middleware/tests/app/modules/handler/pages/admin/productEdit/[loadProduct]loadProductImage.js +5 -5
- package/src/lib/middleware/tests/app/modules/handler/pages/admin/productEdit/loadProduct.js +10 -10
- package/src/lib/middleware/tests/app/modules/handler/pages/admin/productEdit/route.json +4 -4
- package/src/lib/middleware/tests/app/modules/handler/pages/frontStore/middleware/[loadAttribute]loadOptions.js +3 -3
- package/src/lib/middleware/tests/app/modules/handler/pages/frontStore/middleware/[loadProductImage]loadAttribute.js +5 -5
- package/src/lib/middleware/tests/app/modules/handler/pages/frontStore/middleware/[loadProduct]loadCategory.js +3 -3
- package/src/lib/middleware/tests/app/modules/handler/pages/frontStore/middleware/[loadProduct]loadProductImage.js +5 -5
- package/src/lib/middleware/tests/app/modules/handler/pages/frontStore/middleware/loadProduct.js +5 -5
- package/src/lib/middleware/tests/app/modules/handler/pages/frontStore/middleware/route.json +4 -4
- package/src/lib/middleware/tests/unit/404page.handling.test.js +59 -59
- package/src/lib/middleware/tests/unit/500error.handling.test.js +36 -36
- package/src/lib/middleware/tests/unit/apiHandler.middleware.test.js +38 -38
- package/src/lib/middleware/tests/unit/delegate.test.js +34 -34
- package/src/lib/middleware/tests/unit/handler.getMiddlewaresByRoute.test.js +70 -70
- package/src/lib/middleware/tests/unit/handler.middleware.test.js +39 -39
- package/src/lib/middleware/tests/unit/middleware.buildMiddlewareFunction.test.js +107 -107
- package/src/lib/middleware/tests/unit/middleware.getRouteFromPath.test.js +145 -145
- package/src/lib/middleware/tests/unit/middleware.noDublicateId.test.js +159 -159
- package/src/lib/middleware/tests/unit/middleware.scanForMiddlewareFunctions.test.js +123 -123
- package/src/lib/middlewares/bodyJson.js +5 -5
- package/src/lib/middlewares/multerNone.js +7 -7
- package/src/lib/middlewares/publicStatic.js +27 -27
- package/src/lib/middlewares/static.js +43 -43
- package/src/lib/middlewares/themePublicStatic.js +35 -35
- package/src/lib/pathToRegexp.js +215 -215
- package/src/lib/postgres/connection.js +70 -70
- package/src/lib/response/render.js +117 -112
- package/src/lib/router/Router.js +40 -40
- package/src/lib/router/buildAbsoluteUrl.js +24 -24
- package/src/lib/router/buildUrl.js +28 -28
- package/src/lib/router/loadModuleRoutes.js +64 -64
- package/src/lib/router/registerAdminRoute.js +34 -34
- package/src/lib/router/registerFrontStoreRoute.js +37 -37
- package/src/lib/router/scanForRoutes.js +88 -88
- package/src/lib/router/tests/unit/a/invalidMethod/routeOne/route.json +4 -4
- package/src/lib/router/tests/unit/a/invalidPath/routeTwo/route.json +4 -4
- package/src/lib/router/tests/unit/b/routeOne/route.json +4 -4
- package/src/lib/router/tests/unit/b/routeThree/route.json +4 -4
- package/src/lib/router/tests/unit/b/routeTwo/route.json +4 -4
- package/src/lib/router/tests/unit/unit.scanForRoutes.test.js +23 -23
- package/src/lib/router/tests/unit/unit.validateRoute.test.js +31 -31
- package/src/lib/router/validateRoute.js +26 -26
- package/src/lib/util/assign.js +39 -39
- package/src/lib/util/buildFilterFromUrl.js +46 -46
- package/src/lib/util/camelCase.js +17 -17
- package/src/lib/util/defaultPaginationFilters.js +104 -104
- package/src/lib/util/events.js +3 -3
- package/src/lib/util/filterOperationMapp.js +16 -16
- package/src/lib/util/formData.js +30 -30
- package/src/lib/util/formToJson.js +58 -58
- package/src/lib/util/get.js +27 -27
- package/src/lib/util/getConfig.js +17 -17
- package/src/lib/util/getEnabledWidgets.js +34 -28
- package/src/lib/util/getEnv.js +6 -6
- package/src/lib/util/hookable.js +109 -120
- package/src/lib/util/httpStatus.js +13 -13
- package/src/lib/util/isAjax.js +13 -13
- package/src/lib/util/isDevelopmentMode.js +1 -1
- package/src/lib/util/isProductionMode.js +1 -1
- package/src/lib/util/merge.js +82 -82
- package/src/lib/util/passwordHelper.js +59 -59
- package/src/lib/util/readCsvFile.js +25 -25
- package/src/lib/util/registry.js +243 -243
- package/src/lib/util/tests/unit/util.assign.test.js +42 -42
- package/src/lib/util/tests/unit/util.get.test.js +26 -26
- package/src/lib/util/tests/unit/util.getConfig.test.js +9 -9
- package/src/lib/util/tests/unit/util.hookable.test.js +188 -188
- package/src/lib/util/tests/unit/util.merge.test.js +55 -55
- package/src/lib/util/tests/unit/util.registry.test.js +202 -202
- package/src/lib/util/throwIf.js +7 -0
- package/src/lib/util/validateConfiguration.js +83 -83
- package/src/lib/webpack/createBaseConfig.js +189 -189
- package/src/lib/webpack/dev/createConfigClient.js +117 -111
- package/src/lib/webpack/getRouteBuildPath.js +8 -8
- package/src/lib/webpack/getRouteBuildSubPath.js +4 -4
- package/src/lib/webpack/isBuildRequired.js +7 -7
- package/src/lib/webpack/loaders/AreaLoader.js +63 -64
- package/src/lib/webpack/loaders/GraphQLAPILoader.js +15 -15
- package/src/lib/webpack/loaders/GraphqlLoader.js +14 -14
- package/src/lib/webpack/loaders/LayoutLoader.js +9 -9
- package/src/lib/webpack/loaders/StyleLoader.js +5 -5
- package/src/lib/webpack/loaders/TailwindLoader.js +53 -61
- package/src/lib/webpack/loaders/TranslationLoader.js +24 -24
- package/src/lib/webpack/loaders/loadTranslationFromCsv.js +47 -47
- package/src/lib/webpack/plugins/FileListPlugin.js +43 -43
- package/src/lib/webpack/plugins/GraphqlPlugin.js +29 -29
- package/src/lib/webpack/plugins/Tailwindcss.js +94 -96
- package/src/lib/webpack/prod/createConfigClient.js +101 -95
- package/src/lib/webpack/prod/createConfigServer.js +46 -46
- package/src/lib/webpack/resolveAlias.js +71 -71
- package/src/lib/webpack/tests/unit/resolveAlias.test.js +52 -52
- package/src/lib/webpack/util/getTailwindConfig.js +33 -33
- package/src/lib/webpack/util/keyGenerator.js +9 -0
- package/src/lib/webpack/util/parseGraphql.js +102 -101
- package/src/lib/webpack/util/parseGraphqlByFile.js +218 -218
- package/src/modules/auth/api/global/[context]getCurrentUser.js +58 -58
- package/src/modules/auth/api/global/[getCurrentUser]auth.js +52 -52
- package/src/modules/auth/api/global/[getCurrentUser]demoAccountBlocking[auth].js +28 -28
- package/src/modules/auth/bootstrap.js +24 -47
- package/src/modules/auth/graphql/types/AdminUser/AdminUser.admin.graphql +26 -26
- package/src/modules/auth/graphql/types/AdminUser/AdminUser.admin.resolvers.js +90 -90
- package/src/modules/auth/migration/Version-1.0.0.js +34 -34
- package/src/modules/auth/migration/Version-1.0.1.js +24 -24
- package/src/modules/auth/pages/admin/adminLogin/LoginForm.jsx +104 -104
- package/src/modules/auth/pages/admin/adminLogin/LoginForm.scss +53 -53
- package/src/modules/auth/pages/admin/adminLogin/index.js +19 -19
- package/src/modules/auth/pages/admin/adminLogin/route.json +4 -4
- package/src/modules/auth/pages/admin/adminLoginJson/[bodyParser]logIn.js +43 -43
- package/src/modules/auth/pages/admin/adminLoginJson/payloadSchema.json +20 -20
- package/src/modules/auth/pages/admin/adminLoginJson/route.json +6 -6
- package/src/modules/auth/pages/admin/adminLogoutJson/logout.js +35 -35
- package/src/modules/auth/pages/admin/adminLogoutJson/route.json +4 -4
- package/src/modules/auth/pages/admin/all/AdminUser.jsx +94 -90
- package/src/modules/auth/pages/admin/all/AdminUser.scss +20 -20
- package/src/modules/auth/pages/admin/all/[context]auth.js +34 -34
- package/src/modules/auth/services/getAdminSessionCookieName.js +4 -4
- package/src/modules/auth/services/getCookieSecret.js +3 -3
- package/src/modules/auth/services/getFrontStoreSessionCookieName.js +4 -4
- package/src/modules/auth/services/getSessionConfig.js +20 -20
- package/src/modules/auth/services/loginUserWithEmail.js +31 -0
- package/src/modules/auth/services/logoutUser.js +9 -0
- package/src/modules/base/api/global/[apiResponse]apiErrorHandler.js +38 -38
- package/src/modules/base/api/global/[auth]apiResponse[apiErrorHandler].js +34 -34
- package/src/modules/base/api/global/[auth]payloadValidate.js +47 -47
- package/src/modules/base/api/global/[payloadValidate]escapeHtml.js +12 -12
- package/src/modules/base/api/global/context.js +40 -40
- package/src/modules/base/bootstrap.js +107 -86
- package/src/modules/base/graphql/types/Country/Country.graphql +13 -13
- package/src/modules/base/graphql/types/Country/Country.resolvers.js +44 -44
- package/src/modules/base/graphql/types/Currency/Currency.graphql +11 -11
- package/src/modules/base/graphql/types/Currency/Currency.resolvers.js +7 -7
- package/src/modules/base/graphql/types/DateTime/DateTime.graphql +8 -8
- package/src/modules/base/graphql/types/DateTime/DateTime.resolvers.js +24 -24
- package/src/modules/base/graphql/types/Province/Province.graphql +12 -12
- package/src/modules/base/graphql/types/Province/Province.resolvers.js +38 -38
- package/src/modules/base/graphql/types/Route/Route.admin.graphql +15 -15
- package/src/modules/base/graphql/types/Route/Route.admin.resolvers.js +10 -10
- package/src/modules/base/graphql/types/Timezone/Timezone.graphql +11 -11
- package/src/modules/base/graphql/types/Timezone/Timezone.resolvers.js +7 -7
- package/src/modules/base/graphql/types/Url/Url.graphql +11 -11
- package/src/modules/base/graphql/types/Url/Url.resolvers.js +18 -18
- package/src/modules/base/graphql/types/Version/Version.graphql +3 -0
- package/src/modules/base/graphql/types/Version/Version.resolvers.js +7 -0
- package/src/modules/base/migration/Version-1.0.1.js +16 -16
- package/src/modules/base/pages/admin/all/[context]isAdmin[auth].js +4 -4
- package/src/modules/base/pages/global/{[notification]notFound[response].js → [auth]notFound[response].js} +16 -16
- package/src/modules/base/pages/global/[response]errorHandler.js +36 -36
- package/src/modules/base/pages/global/context.js +41 -41
- package/src/modules/base/pages/global/response[errorHandler].js +93 -90
- package/src/modules/base/services/escapePayload.js +34 -34
- package/src/modules/base/services/getAjv.js +19 -19
- package/src/modules/base/services/markSkipEscape.js +30 -30
- package/src/modules/base/services/notifications.js +25 -0
- package/src/modules/base/services/secret.js +4 -4
- package/src/modules/catalog/api/addProductToCategory/[context]bodyParser[auth].js +5 -5
- package/src/modules/catalog/api/addProductToCategory/addProducts.js +80 -80
- package/src/modules/catalog/api/addProductToCategory/payloadSchema.json +12 -12
- package/src/modules/catalog/api/addProductToCategory/route.json +5 -5
- package/src/modules/catalog/api/addProductToCollection/[context]bodyParser[auth].js +5 -5
- package/src/modules/catalog/api/addProductToCollection/addProducts.js +102 -102
- package/src/modules/catalog/api/addProductToCollection/payloadSchema.json +12 -12
- package/src/modules/catalog/api/addProductToCollection/route.json +5 -5
- package/src/modules/catalog/api/addVariantItem/[bodyParser]addItem.js +121 -121
- package/src/modules/catalog/api/addVariantItem/[context]bodyParser[auth].js +5 -5
- package/src/modules/catalog/api/addVariantItem/payloadSchema.json +10 -10
- package/src/modules/catalog/api/addVariantItem/route.json +5 -5
- package/src/modules/catalog/api/createAttribute/[context]bodyParser[auth].js +5 -5
- package/src/modules/catalog/api/createAttribute/createAttribute[finish].js +9 -9
- package/src/modules/catalog/api/createAttribute/finish[apiResponse].js +27 -27
- package/src/modules/catalog/api/createAttribute/payloadSchema.json +59 -59
- package/src/modules/catalog/api/createAttribute/route.json +5 -5
- package/src/modules/catalog/api/createAttributeGroup/[bodyParser]saveGroup.js +49 -49
- package/src/modules/catalog/api/createAttributeGroup/[context]bodyParser[auth].js +5 -5
- package/src/modules/catalog/api/createAttributeGroup/payloadSchema.json +10 -10
- package/src/modules/catalog/api/createAttributeGroup/route.json +5 -5
- package/src/modules/catalog/api/createCategory/[context]bodyParser[auth].js +5 -5
- package/src/modules/catalog/api/createCategory/createCategory[finish].js +9 -9
- package/src/modules/catalog/api/createCategory/finish[apiResponse].js +33 -33
- package/src/modules/catalog/api/createCategory/payloadSchema.json +10 -10
- package/src/modules/catalog/api/createCategory/route.json +5 -5
- package/src/modules/catalog/api/createCollection/[context]bodyParser[auth].js +5 -5
- package/src/modules/catalog/api/createCollection/createCollection[finish].js +9 -9
- package/src/modules/catalog/api/createCollection/finish[apiResponse].js +27 -27
- package/src/modules/catalog/api/createCollection/payloadSchema.json +10 -10
- package/src/modules/catalog/api/createCollection/route.json +5 -5
- package/src/modules/catalog/api/createProduct/[context]bodyParser[auth].js +5 -5
- package/src/modules/catalog/api/createProduct/createProduct[finish].js +9 -9
- package/src/modules/catalog/api/createProduct/finish[apiResponse].js +33 -33
- package/src/modules/catalog/api/createProduct/payloadSchema.json +10 -10
- package/src/modules/catalog/api/createProduct/route.json +5 -5
- package/src/modules/catalog/api/createVariantGroup/[bodyParser]saveGroup.js +138 -138
- package/src/modules/catalog/api/createVariantGroup/[context]bodyParser[auth].js +5 -5
- package/src/modules/catalog/api/createVariantGroup/payloadSchema.json +17 -17
- package/src/modules/catalog/api/createVariantGroup/route.json +5 -5
- package/src/modules/catalog/api/deleteAttribute/deleteAttribute.js +27 -27
- package/src/modules/catalog/api/deleteAttribute/route.json +5 -5
- package/src/modules/catalog/api/deleteAttributeGroup/deleteAttributeGroup.js +58 -58
- package/src/modules/catalog/api/deleteAttributeGroup/route.json +5 -5
- package/src/modules/catalog/api/deleteCategory/deleteCategory.js +27 -27
- package/src/modules/catalog/api/deleteCategory/route.json +5 -5
- package/src/modules/catalog/api/deleteCollection/deleteCollection.js +27 -27
- package/src/modules/catalog/api/deleteCollection/route.json +5 -5
- package/src/modules/catalog/api/deleteProduct/deleteProduct.js +27 -27
- package/src/modules/catalog/api/deleteProduct/route.json +5 -5
- package/src/modules/catalog/api/removeProductFromCategory/[context]bodyParser[auth].js +5 -5
- package/src/modules/catalog/api/removeProductFromCategory/removeProducts.js +59 -59
- package/src/modules/catalog/api/removeProductFromCategory/route.json +5 -5
- package/src/modules/catalog/api/removeProductFromCollection/[context]bodyParser[auth].js +5 -5
- package/src/modules/catalog/api/removeProductFromCollection/removeProducts.js +88 -88
- package/src/modules/catalog/api/removeProductFromCollection/route.json +5 -5
- package/src/modules/catalog/api/unlinkVariant/[context]multerNone[auth].js +7 -7
- package/src/modules/catalog/api/unlinkVariant/route.json +5 -5
- package/src/modules/catalog/api/unlinkVariant/unlinkVariants.js +29 -29
- package/src/modules/catalog/api/updateAttribute/[context]bodyParser[auth].js +5 -5
- package/src/modules/catalog/api/updateAttribute/finish[apiResponse].js +27 -27
- package/src/modules/catalog/api/updateAttribute/route.json +5 -5
- package/src/modules/catalog/api/updateAttribute/updateAttribute[finish].js +7 -7
- package/src/modules/catalog/api/updateAttributeGroup/[bodyParser]saveGroup.js +48 -48
- package/src/modules/catalog/api/updateAttributeGroup/[context]bodyParser[auth].js +5 -5
- package/src/modules/catalog/api/updateAttributeGroup/payloadSchema.json +10 -10
- package/src/modules/catalog/api/updateAttributeGroup/route.json +5 -5
- package/src/modules/catalog/api/updateCategory/[context]bodyParser[auth].js +5 -5
- package/src/modules/catalog/api/updateCategory/finish[apiResponse].js +33 -33
- package/src/modules/catalog/api/updateCategory/payloadSchema.json +10 -10
- package/src/modules/catalog/api/updateCategory/route.json +5 -5
- package/src/modules/catalog/api/updateCategory/updateCategory[finish].js +9 -9
- package/src/modules/catalog/api/updateCollection/[context]bodyParser[auth].js +5 -5
- package/src/modules/catalog/api/updateCollection/finish[apiResponse].js +27 -27
- package/src/modules/catalog/api/updateCollection/payloadSchema.json +10 -10
- package/src/modules/catalog/api/updateCollection/route.json +5 -5
- package/src/modules/catalog/api/updateCollection/updateCollection[finish].js +9 -9
- package/src/modules/catalog/api/updateProduct/[context]bodyParser[auth].js +5 -5
- package/src/modules/catalog/api/updateProduct/finish[apiResponse].js +33 -33
- package/src/modules/catalog/api/updateProduct/payloadSchema.json +10 -10
- package/src/modules/catalog/api/updateProduct/route.json +5 -5
- package/src/modules/catalog/api/updateProduct/updateProduct[finish].js +9 -9
- package/src/modules/catalog/api/variantSearch/loadVariants.js +88 -88
- package/src/modules/catalog/api/variantSearch/route.json +5 -5
- package/src/modules/catalog/bootstrap.js +216 -216
- package/src/modules/catalog/graphql/types/Attribute/Attribute.admin.graphql +42 -42
- package/src/modules/catalog/graphql/types/Attribute/Attribute.admin.resolvers.js +70 -70
- package/src/modules/catalog/graphql/types/Attribute/Attribute.graphql +28 -28
- package/src/modules/catalog/graphql/types/Attribute/Attribute.resolvers.js +28 -28
- package/src/modules/catalog/graphql/types/Category/Category.admin.graphql +9 -9
- package/src/modules/catalog/graphql/types/Category/Category.admin.resolvers.js +28 -28
- package/src/modules/catalog/graphql/types/Category/Category.graphql +105 -105
- package/src/modules/catalog/graphql/types/Category/Category.resolvers.js +196 -196
- package/src/modules/catalog/graphql/types/Collection/Collection.admin.graphql +10 -10
- package/src/modules/catalog/graphql/types/Collection/Collection.admin.resolvers.js +31 -31
- package/src/modules/catalog/graphql/types/Collection/Collection.graphql +30 -30
- package/src/modules/catalog/graphql/types/Collection/Collection.resolvers.js +85 -85
- package/src/modules/catalog/graphql/types/FeaturedProduct/FeaturedProduct.graphql +3 -3
- package/src/modules/catalog/graphql/types/FeaturedProduct/FeaturedProduct.resolvers.js +55 -55
- package/src/modules/catalog/graphql/types/Product/Attribute/ProductAttribute.graphql +15 -15
- package/src/modules/catalog/graphql/types/Product/Attribute/ProductAttribute.resolvers.js +42 -42
- package/src/modules/catalog/graphql/types/Product/CustomOption/CustomOption.graphql +23 -23
- package/src/modules/catalog/graphql/types/Product/CustomOption/CustomOption.resolvers.js +5 -5
- package/src/modules/catalog/graphql/types/Product/Image/ProductImage.graphql +18 -18
- package/src/modules/catalog/graphql/types/Product/Image/ProductImage.resolvers.js +38 -38
- package/src/modules/catalog/graphql/types/Product/Inventory/Inventory.admin.graphql +3 -3
- package/src/modules/catalog/graphql/types/Product/Inventory/Inventory.admin.resolvers.js +5 -5
- package/src/modules/catalog/graphql/types/Product/Inventory/Inventory.graphql +12 -12
- package/src/modules/catalog/graphql/types/Product/Inventory/Inventory.resolvers.js +11 -11
- package/src/modules/catalog/graphql/types/Product/Price/ProductPrice.graphql +11 -11
- package/src/modules/catalog/graphql/types/Product/Price/ProductPrice.resolvers.js +11 -11
- package/src/modules/catalog/graphql/types/Product/Product.admin.graphql +5 -5
- package/src/modules/catalog/graphql/types/Product/Product.admin.resolvers.js +9 -9
- package/src/modules/catalog/graphql/types/Product/Product.graphql +36 -36
- package/src/modules/catalog/graphql/types/Product/Product.resolvers.js +77 -77
- package/src/modules/catalog/graphql/types/Product/Variant/Variant.graphql +52 -52
- package/src/modules/catalog/graphql/types/Product/Variant/Variant.resolvers.js +153 -152
- package/src/modules/catalog/graphql/types/Widget/CollectionProductsWidget/CollectionProductsWidget.graphql +10 -10
- package/src/modules/catalog/graphql/types/Widget/CollectionProductsWidget/CollectionProductsWidget.resolvers.js +8 -8
- package/src/modules/catalog/migration/Version-1.0.0.js +685 -685
- package/src/modules/catalog/migration/Version-1.0.1.js +42 -42
- package/src/modules/catalog/migration/Version-1.0.2.js +270 -270
- package/src/modules/catalog/migration/Version-1.0.3.js +10 -10
- package/src/modules/catalog/migration/Version-1.0.4.js +211 -211
- package/src/modules/catalog/migration/Version-1.0.5.js +10 -10
- package/src/modules/catalog/migration/Version-1.0.6.js +69 -69
- package/src/modules/catalog/migration/Version-1.0.7.js +10 -10
- package/src/modules/catalog/pages/admin/all/CatalogMenuGroup.jsx +64 -64
- package/src/modules/catalog/pages/admin/all/NewProductQuickLink.jsx +23 -23
- package/src/modules/catalog/pages/admin/attributeEdit/AttributeEditForm.jsx +52 -52
- package/src/modules/catalog/pages/admin/attributeEdit/index.js +29 -29
- package/src/modules/catalog/pages/admin/attributeEdit/route.json +4 -4
- package/src/modules/catalog/pages/admin/attributeEdit+attributeNew/Avaibility.jsx +90 -90
- package/src/modules/catalog/pages/admin/attributeEdit+attributeNew/FormContent.jsx +58 -58
- package/src/modules/catalog/pages/admin/attributeEdit+attributeNew/FormContent.scss +7 -7
- package/src/modules/catalog/pages/admin/attributeEdit+attributeNew/General.jsx +341 -341
- package/src/modules/catalog/pages/admin/attributeEdit+attributeNew/PageHeading.jsx +41 -41
- package/src/modules/catalog/pages/admin/attributeGrid/Grid.jsx +394 -393
- package/src/modules/catalog/pages/admin/attributeGrid/Heading.jsx +11 -11
- package/src/modules/catalog/pages/admin/attributeGrid/NewAttributeButton.jsx +22 -22
- package/src/modules/catalog/pages/admin/attributeGrid/TypeRow.jsx +21 -21
- package/src/modules/catalog/pages/admin/attributeGrid/index.js +15 -15
- package/src/modules/catalog/pages/admin/attributeGrid/route.json +4 -4
- package/src/modules/catalog/pages/admin/attributeNew/AttributeNewForm.jsx +60 -60
- package/src/modules/catalog/pages/admin/attributeNew/index.js +11 -11
- package/src/modules/catalog/pages/admin/attributeNew/route.json +4 -4
- package/src/modules/catalog/pages/admin/categoryEdit/CategoryEditForm.jsx +52 -52
- package/src/modules/catalog/pages/admin/categoryEdit/Products.jsx +287 -287
- package/src/modules/catalog/pages/admin/categoryEdit/Products.scss +48 -48
- package/src/modules/catalog/pages/admin/categoryEdit/index.js +37 -37
- package/src/modules/catalog/pages/admin/categoryEdit/route.json +4 -4
- package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/FormContent.jsx +58 -58
- package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/FormContent.scss +7 -7
- package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/General.jsx +231 -207
- package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/Image.jsx +188 -188
- package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/Image.scss +50 -50
- package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/PageHeading.jsx +37 -37
- package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/Seo.jsx +104 -104
- package/src/modules/catalog/pages/admin/categoryEdit+categoryNew/Status.jsx +75 -75
- package/src/modules/catalog/pages/admin/categoryGrid/Grid.jsx +335 -333
- package/src/modules/catalog/pages/admin/categoryGrid/Heading.jsx +11 -11
- package/src/modules/catalog/pages/admin/categoryGrid/NameRow.jsx +25 -25
- package/src/modules/catalog/pages/admin/categoryGrid/NewCategoryButton.jsx +22 -22
- package/src/modules/catalog/pages/admin/categoryGrid/index.js +15 -15
- package/src/modules/catalog/pages/admin/categoryGrid/route.json +4 -4
- package/src/modules/catalog/pages/admin/categoryNew/CategoryNewForm.jsx +60 -60
- package/src/modules/catalog/pages/admin/categoryNew/index.js +11 -11
- package/src/modules/catalog/pages/admin/categoryNew/route.json +4 -4
- package/src/modules/catalog/pages/admin/collectionEdit/CollectionEditForm.jsx +52 -52
- package/src/modules/catalog/pages/admin/collectionEdit/Products.jsx +289 -289
- package/src/modules/catalog/pages/admin/collectionEdit/Products.scss +48 -48
- package/src/modules/catalog/pages/admin/collectionEdit/index.js +28 -28
- package/src/modules/catalog/pages/admin/collectionEdit/route.json +4 -4
- package/src/modules/catalog/pages/admin/collectionEdit+collectionNew/FormContent.jsx +53 -53
- package/src/modules/catalog/pages/admin/collectionEdit+collectionNew/FormContent.scss +7 -7
- package/src/modules/catalog/pages/admin/collectionEdit+collectionNew/General.jsx +129 -116
- package/src/modules/catalog/pages/admin/collectionEdit+collectionNew/PageHeading.jsx +39 -39
- package/src/modules/catalog/pages/admin/collectionGrid/Grid.jsx +335 -329
- package/src/modules/catalog/pages/admin/collectionGrid/Heading.jsx +13 -13
- package/src/modules/catalog/pages/admin/collectionGrid/NameRow.jsx +25 -25
- package/src/modules/catalog/pages/admin/collectionGrid/NewCollectionButton.jsx +22 -22
- package/src/modules/catalog/pages/admin/collectionGrid/index.js +15 -15
- package/src/modules/catalog/pages/admin/collectionGrid/route.json +4 -4
- package/src/modules/catalog/pages/admin/collectionNew/CollectionNewForm.jsx +60 -60
- package/src/modules/catalog/pages/admin/collectionNew/index.js +11 -11
- package/src/modules/catalog/pages/admin/collectionNew/route.json +4 -4
- package/src/modules/catalog/pages/admin/productEdit/Collection.jsx +62 -56
- package/src/modules/catalog/pages/admin/productEdit/ProductEditForm.jsx +63 -63
- package/src/modules/catalog/pages/admin/productEdit/VariantGroup.jsx +93 -93
- package/src/modules/catalog/pages/admin/productEdit/index.js +36 -36
- package/src/modules/catalog/pages/admin/productEdit/route.json +4 -4
- package/src/modules/catalog/pages/admin/productEdit+productNew/Attributes.jsx +292 -287
- package/src/modules/catalog/pages/admin/productEdit+productNew/CustomOptions.jsss +164 -164
- package/src/modules/catalog/pages/admin/productEdit+productNew/FormContent.jsx +58 -58
- package/src/modules/catalog/pages/admin/productEdit+productNew/FormContent.scss +7 -7
- package/src/modules/catalog/pages/admin/productEdit+productNew/General.jsx +421 -339
- package/src/modules/catalog/pages/admin/productEdit+productNew/Inventory.jsx +92 -92
- package/src/modules/catalog/pages/admin/productEdit+productNew/Media.jsx +67 -66
- package/src/modules/catalog/pages/admin/productEdit+productNew/PageHeading.jsx +37 -37
- package/src/modules/catalog/pages/admin/productEdit+productNew/Seo.jsx +104 -104
- package/src/modules/catalog/pages/admin/productEdit+productNew/Status.jsx +69 -69
- package/src/modules/catalog/pages/admin/productGrid/Grid.jsx +578 -573
- package/src/modules/catalog/pages/admin/productGrid/Heading.jsx +11 -11
- package/src/modules/catalog/pages/admin/productGrid/NewProductButton.jsx +22 -22
- package/src/modules/catalog/pages/admin/productGrid/index.js +15 -15
- package/src/modules/catalog/pages/admin/productGrid/route.json +4 -4
- package/src/modules/catalog/pages/admin/productNew/ProductNewForm.jsx +67 -67
- package/src/modules/catalog/pages/admin/productNew/index.js +11 -11
- package/src/modules/catalog/pages/admin/productNew/route.json +4 -4
- package/src/modules/catalog/pages/frontStore/all/SearchBox.jsx +118 -112
- package/src/modules/catalog/pages/frontStore/all/SearchBox.scss +40 -40
- package/src/modules/catalog/pages/frontStore/catalogSearch/General.jsx +32 -32
- package/src/modules/catalog/pages/frontStore/catalogSearch/General.scss +5 -5
- package/src/modules/catalog/pages/frontStore/catalogSearch/Pagination.jsx +52 -52
- package/src/modules/catalog/pages/frontStore/catalogSearch/Products.jsx +88 -88
- package/src/modules/catalog/pages/frontStore/catalogSearch/SearchPage.jsx +15 -15
- package/src/modules/catalog/pages/frontStore/catalogSearch/Sorting.jsx +11 -11
- package/src/modules/catalog/pages/frontStore/catalogSearch/[index]filters.js +11 -11
- package/src/modules/catalog/pages/frontStore/catalogSearch/index.js +23 -23
- package/src/modules/catalog/pages/frontStore/catalogSearch/route.json +5 -5
- package/src/modules/catalog/pages/frontStore/categoryView/CategoryView.jsx +33 -33
- package/src/modules/catalog/pages/frontStore/categoryView/Filter.jsx +256 -256
- package/src/modules/catalog/pages/frontStore/categoryView/Filter.scss +142 -142
- package/src/modules/catalog/pages/frontStore/categoryView/General.jsx +65 -52
- package/src/modules/catalog/pages/frontStore/categoryView/General.scss +24 -24
- package/src/modules/catalog/pages/frontStore/categoryView/Pagination.jsx +65 -65
- package/src/modules/catalog/pages/frontStore/categoryView/Products.jsx +106 -106
- package/src/modules/catalog/pages/frontStore/categoryView/Sorting.jsx +11 -11
- package/src/modules/catalog/pages/frontStore/categoryView/[index]filters.js +11 -11
- package/src/modules/catalog/pages/frontStore/categoryView/index.js +36 -36
- package/src/modules/catalog/pages/frontStore/categoryView/route.json +5 -5
- package/src/modules/catalog/pages/frontStore/productView/Attributes.jsx +51 -51
- package/src/modules/catalog/pages/frontStore/productView/Description.jsx +43 -32
- package/src/modules/catalog/pages/frontStore/productView/Form.jsx +236 -232
- package/src/modules/catalog/pages/frontStore/productView/Form.scss +71 -71
- package/src/modules/catalog/pages/frontStore/productView/GeneralInfo.jsx +83 -83
- package/src/modules/catalog/pages/frontStore/productView/GeneralInfo.scss +3 -3
- package/src/modules/catalog/pages/frontStore/productView/Images.jsx +114 -110
- package/src/modules/catalog/pages/frontStore/productView/Layout.jsx +22 -22
- package/src/modules/catalog/pages/frontStore/productView/Options.jsx +110 -106
- package/src/modules/catalog/pages/frontStore/productView/Variants.jsx +272 -272
- package/src/modules/catalog/pages/frontStore/productView/Variants.scss +23 -23
- package/src/modules/catalog/pages/frontStore/productView/index.js +159 -159
- package/src/modules/catalog/pages/frontStore/productView/route.json +5 -5
- package/src/modules/catalog/services/AttributeCollection.js +59 -59
- package/src/modules/catalog/services/AttributeGroupCollection.js +100 -100
- package/src/modules/catalog/services/CategoryCollection.js +66 -66
- package/src/modules/catalog/services/CollectionCollection.js +60 -60
- package/src/modules/catalog/services/ProductCollection.js +143 -143
- package/src/modules/catalog/services/attribute/attributeDataSchema.json +60 -60
- package/src/modules/catalog/services/attribute/createProductAttribute.js +150 -150
- package/src/modules/catalog/services/attribute/deleteProductAttribute.js +67 -67
- package/src/modules/catalog/services/attribute/updateProductAttribute.js +227 -227
- package/src/modules/catalog/services/category/categoryDataSchema.json +59 -59
- package/src/modules/catalog/services/category/createCategory.js +95 -95
- package/src/modules/catalog/services/category/deleteCategory.js +59 -59
- package/src/modules/catalog/services/category/updateCategory.js +110 -110
- package/src/modules/catalog/services/collection/collectionDataSchema.json +20 -20
- package/src/modules/catalog/services/collection/createCollection.js +74 -74
- package/src/modules/catalog/services/collection/deleteCollection.js +51 -51
- package/src/modules/catalog/services/collection/updateCollection.js +102 -102
- package/src/modules/catalog/services/getAttributeGroupsBaseQuery.js +3 -3
- package/src/modules/catalog/services/getAttributesBaseQuery.js +3 -3
- package/src/modules/catalog/services/getCategoriesBaseQuery.js +14 -14
- package/src/modules/catalog/services/getCollectionsBaseQuery.js +6 -6
- package/src/modules/catalog/services/getFilterableAttributes.js +77 -77
- package/src/modules/catalog/services/getProductsBaseQuery.js +26 -26
- package/src/modules/catalog/services/getProductsByCategoryBaseQuery.js +30 -30
- package/src/modules/catalog/services/getProductsByCollectionBaseQuery.js +12 -12
- package/src/modules/catalog/services/product/createProduct.js +232 -232
- package/src/modules/catalog/services/product/deleteProduct.js +74 -74
- package/src/modules/catalog/services/product/productDataSchema.json +150 -149
- package/src/modules/catalog/services/product/updateProduct.js +393 -393
- package/src/modules/catalog/services/registerCartItemProductUrlField.js +35 -35
- package/src/modules/catalog/services/registerCartItemVariantOptionsField.js +51 -51
- package/src/modules/catalog/services/registerDefaultAttributeCollectionFilters.js +149 -149
- package/src/modules/catalog/services/registerDefaultCategoryCollectionFilters.js +101 -101
- package/src/modules/catalog/services/registerDefaultCollectionCollectionFilters.js +65 -65
- package/src/modules/catalog/services/registerDefaultProductCollectionFilters.js +219 -219
- package/src/modules/catalog/subscribers/category_created/buildUrlRewrite.js +58 -58
- package/src/modules/catalog/subscribers/category_deleted/deleteUrlRewrite.js +32 -32
- package/src/modules/catalog/subscribers/category_updated/builUrlRewrite.js +71 -71
- package/src/modules/catalog/subscribers/product_created/builUrlRewrite.js +61 -61
- package/src/modules/catalog/subscribers/product_deleted/deleteUrlRewrite.js +12 -12
- package/src/modules/catalog/subscribers/product_image_added/localGenerateProductImageVariant.js +62 -62
- package/src/modules/catalog/subscribers/product_updated/buildUrlRewrite.js +56 -56
- package/src/modules/catalog/tests/intergration/productView.test.js +21 -21
- package/src/modules/checkout/api/addCartAddress/[context]bodyParser[auth].js +5 -5
- package/src/modules/checkout/api/addCartAddress/payloadSchema.json +23 -23
- package/src/modules/checkout/api/addCartAddress/route.json +5 -5
- package/src/modules/checkout/api/addCartAddress/saveAddress.js +95 -95
- package/src/modules/checkout/api/addCartContactInfo/[context]bodyParser[auth].js +5 -5
- package/src/modules/checkout/api/addCartContactInfo/payloadSchema.json +17 -17
- package/src/modules/checkout/api/addCartContactInfo/route.json +5 -5
- package/src/modules/checkout/api/addCartContactInfo/saveContactInfo.js +43 -43
- package/src/modules/checkout/api/addCartItem/[context]bodyParser[auth].js +5 -5
- package/src/modules/checkout/api/addCartItem/addItemToCart.js +71 -71
- package/src/modules/checkout/api/addCartItem/payloadSchema.json +20 -20
- package/src/modules/checkout/api/addCartItem/route.json +5 -5
- package/src/modules/checkout/api/addCartPaymentMethod/[context]bodyParser[auth].js +5 -5
- package/src/modules/checkout/api/addCartPaymentMethod/payloadSchema.json +20 -20
- package/src/modules/checkout/api/addCartPaymentMethod/route.json +5 -5
- package/src/modules/checkout/api/addCartPaymentMethod/savePaymentMethod.js +50 -50
- package/src/modules/checkout/api/addCartShippingMethod/[context]bodyParser[auth].js +5 -5
- package/src/modules/checkout/api/addCartShippingMethod/payloadSchema.json +15 -15
- package/src/modules/checkout/api/addCartShippingMethod/route.json +5 -5
- package/src/modules/checkout/api/addCartShippingMethod/saveShippingMethod.js +53 -53
- package/src/modules/checkout/api/addMineCartItem/[context]bodyParser[auth].js +5 -5
- package/src/modules/checkout/api/addMineCartItem/[detectCurrentCart]addItemToCart.js +78 -74
- package/src/modules/checkout/api/addMineCartItem/[getCurrentCustomer]detectCurrentCart.js +32 -32
- package/src/modules/checkout/api/addMineCartItem/payloadSchema.json +20 -20
- package/src/modules/checkout/api/addMineCartItem/route.json +5 -5
- package/src/modules/checkout/api/addShippingNote/[context]bodyParser[auth].js +5 -5
- package/src/modules/checkout/api/addShippingNote/payloadSchema.json +15 -15
- package/src/modules/checkout/api/addShippingNote/route.json +5 -5
- package/src/modules/checkout/api/addShippingNote/saveShippingNote.js +50 -50
- package/src/modules/checkout/api/addShippingZoneMethod/[context]borderParser[auth].js +5 -5
- package/src/modules/checkout/api/addShippingZoneMethod/{addShippingZoneMethod.js → [validateMethod]addShippingZoneMethod.js} +111 -117
- package/src/modules/checkout/api/addShippingZoneMethod/payloadSchema.json +82 -40
- package/src/modules/checkout/api/addShippingZoneMethod/route.json +5 -5
- package/src/modules/checkout/api/addShippingZoneMethod/validateMethod.js +35 -0
- package/src/modules/checkout/api/createCart/[context]bodyParser[auth].js +5 -5
- package/src/modules/checkout/api/createCart/createNewCart.js +117 -119
- package/src/modules/checkout/api/createCart/payloadSchema.json +44 -44
- package/src/modules/checkout/api/createCart/route.json +5 -5
- package/src/modules/checkout/api/createOrder/[context]bodyParser[auth].js +5 -5
- package/src/modules/checkout/api/createOrder/payloadSchema.json +15 -15
- package/src/modules/checkout/api/createOrder/placeOrder.js +89 -87
- package/src/modules/checkout/api/createOrder/route.json +5 -5
- package/src/modules/checkout/api/createShippingMethod/[context]borderParser[auth].js +5 -5
- package/src/modules/checkout/api/createShippingMethod/createShippingMethod.js +60 -60
- package/src/modules/checkout/api/createShippingMethod/payloadSchema.json +12 -12
- package/src/modules/checkout/api/createShippingMethod/route.json +5 -5
- package/src/modules/checkout/api/createShippingZone/[context]borderParser[auth].js +5 -5
- package/src/modules/checkout/api/createShippingZone/createShippingZone.js +55 -55
- package/src/modules/checkout/api/createShippingZone/payloadSchema.json +22 -22
- package/src/modules/checkout/api/createShippingZone/route.json +5 -5
- package/src/modules/checkout/api/deleteShippingZone/deleteShippingZone.js +58 -58
- package/src/modules/checkout/api/deleteShippingZone/route.json +5 -5
- package/src/modules/checkout/api/deleteShippingZoneMethod/deleteShippingZoneMethod.js +85 -85
- package/src/modules/checkout/api/deleteShippingZoneMethod/route.json +5 -5
- package/src/modules/checkout/api/getPaymentMethods/route.json +5 -5
- package/src/modules/checkout/api/getPaymentMethods/sendMethods.js +45 -45
- package/src/modules/checkout/api/getShippingMethods/route.json +5 -5
- package/src/modules/checkout/api/getShippingMethods/sendMethods.js +201 -201
- package/src/modules/checkout/api/removeCartItem/removeItem.js +43 -43
- package/src/modules/checkout/api/removeCartItem/route.json +5 -5
- package/src/modules/checkout/api/removeMineCartItem/[detectCurrentCart]removeItem.js +47 -47
- package/src/modules/checkout/api/removeMineCartItem/[getCurrentCustomer]detectCurrentCart.js +3 -3
- package/src/modules/checkout/api/removeMineCartItem/route.json +5 -5
- package/src/modules/checkout/api/updateCartItemQty/[bodyParser]updateQty.js +49 -49
- package/src/modules/checkout/api/updateCartItemQty/[context]bodyParser[auth].js +5 -5
- package/src/modules/checkout/api/updateCartItemQty/payloadSchema.json +21 -21
- package/src/modules/checkout/api/updateCartItemQty/route.json +5 -5
- package/src/modules/checkout/api/updateMineCartItemQty/[context]bodyParser[auth].js +5 -5
- package/src/modules/checkout/api/updateMineCartItemQty/[detectCurrentCart]updateQty.js +51 -51
- package/src/modules/checkout/api/updateMineCartItemQty/[getCurrentCustomer]detectCurrentCart.js +32 -32
- package/src/modules/checkout/api/updateMineCartItemQty/payloadSchema.json +21 -21
- package/src/modules/checkout/api/updateMineCartItemQty/route.json +5 -5
- package/src/modules/checkout/api/updateShippingMethod/[context]borderParser[auth].js +5 -5
- package/src/modules/checkout/api/updateShippingMethod/payloadSchema.json +12 -12
- package/src/modules/checkout/api/updateShippingMethod/route.json +5 -5
- package/src/modules/checkout/api/updateShippingMethod/updateShippingMethod.js +64 -64
- package/src/modules/checkout/api/updateShippingZone/[context]borderParser[auth].js +5 -5
- package/src/modules/checkout/api/updateShippingZone/payloadSchema.json +22 -22
- package/src/modules/checkout/api/updateShippingZone/route.json +5 -5
- package/src/modules/checkout/api/updateShippingZone/updateShippingZone.js +91 -91
- package/src/modules/checkout/api/updateShippingZoneMethod/[context]borderParser[auth].js +5 -5
- package/src/modules/checkout/api/updateShippingZoneMethod/{updateShippingZoneMethod.js → [validateMethod]updateShippingZoneMethod.js} +118 -118
- package/src/modules/checkout/api/updateShippingZoneMethod/payloadSchema.json +79 -79
- package/src/modules/checkout/api/updateShippingZoneMethod/route.json +5 -5
- package/src/modules/checkout/api/updateShippingZoneMethod/validateMethod.js +3 -0
- package/src/modules/checkout/bootstrap.js +63 -63
- package/src/modules/checkout/graphql/types/Cart/Cart.graphql +174 -175
- package/src/modules/checkout/graphql/types/Cart/Cart.resolvers.js +64 -64
- package/src/modules/checkout/graphql/types/Checkout/Checkout.graphql +10 -10
- package/src/modules/checkout/graphql/types/Checkout/Checkout.resolvers.js +7 -7
- package/src/modules/checkout/graphql/types/CheckoutSetting/CheckoutSetting.graphql +3 -3
- package/src/modules/checkout/graphql/types/CheckoutSetting/CheckoutSetting.resolvers.js +7 -7
- package/src/modules/checkout/graphql/types/Date/Date.graphql +7 -7
- package/src/modules/checkout/graphql/types/Date/Date.resolvers.js +8 -8
- package/src/modules/checkout/graphql/types/Price/Price.graphql +8 -8
- package/src/modules/checkout/graphql/types/Price/Price.resolvers.js +20 -20
- package/src/modules/checkout/graphql/types/ShippingMethod/ShippingMethod.graphql +12 -12
- package/src/modules/checkout/graphql/types/ShippingMethod/ShippingMethod.resolvers.js +19 -19
- package/src/modules/checkout/graphql/types/ShippingZone/ShippingZone.graphql +55 -55
- package/src/modules/checkout/graphql/types/ShippingZone/ShippingZone.resolvers.js +95 -95
- package/src/modules/checkout/graphql/types/Weight/Weight.graphql +8 -8
- package/src/modules/checkout/graphql/types/Weight/Weight.resolvers.js +17 -17
- package/src/modules/checkout/migration/Version-1.0.0.js +290 -289
- package/src/modules/checkout/migration/Version-1.0.1.js +87 -87
- package/src/modules/checkout/migration/Version-1.0.2.js +32 -32
- package/src/modules/checkout/migration/Version-1.0.3.js +25 -25
- package/src/modules/checkout/migration/Version-1.0.4.js +52 -52
- package/src/modules/checkout/migration/Version-1.0.5.js +28 -28
- package/src/modules/checkout/migration/Version-1.0.6.js +201 -201
- package/src/modules/checkout/pages/admin/all/ShippingSettingMenu.jsx +26 -26
- package/src/modules/checkout/pages/admin/shippingSetting/ShippingSetting.jsx +183 -187
- package/src/modules/checkout/pages/admin/shippingSetting/index.js +10 -10
- package/src/modules/checkout/pages/admin/shippingSetting/route.json +4 -4
- package/src/modules/checkout/pages/frontStore/all/MiniCart.jsx +44 -44
- package/src/modules/checkout/pages/frontStore/all/MiniCart.scss +21 -21
- package/src/modules/checkout/pages/frontStore/all/[auth]addCustomerToCart.js +32 -32
- package/src/modules/checkout/pages/frontStore/all/[context]detectCurrentCart[auth].js +47 -47
- package/src/modules/checkout/pages/frontStore/cart/ShoppingCart.jsx +143 -144
- package/src/modules/checkout/pages/frontStore/cart/Summary.jsx +202 -190
- package/src/modules/checkout/pages/frontStore/cart/Summary.scss +8 -8
- package/src/modules/checkout/pages/frontStore/cart/index.js +14 -14
- package/src/modules/checkout/pages/frontStore/cart/route.json +5 -5
- package/src/modules/checkout/pages/frontStore/checkout/Checkout.jsx +156 -156
- package/src/modules/checkout/pages/frontStore/checkout/Checkout.scss +43 -43
- package/src/modules/checkout/pages/frontStore/checkout/PaymentMethods.jsx +40 -40
- package/src/modules/checkout/pages/frontStore/checkout/PaymentStep.jsx +106 -90
- package/src/modules/checkout/pages/frontStore/checkout/ShipmentStep.jsx +167 -118
- package/src/modules/checkout/pages/frontStore/checkout/ShippingMethods.jsx +260 -252
- package/src/modules/checkout/pages/frontStore/checkout/ShippingNote.jsx +104 -105
- package/src/modules/checkout/pages/frontStore/checkout/Summary.jsx +132 -132
- package/src/modules/checkout/pages/frontStore/checkout/Summary.scss +51 -51
- package/src/modules/checkout/pages/frontStore/checkout/SummaryMobile.jsx +129 -129
- package/src/modules/checkout/pages/frontStore/checkout/SummaryMobile.scss +6 -6
- package/src/modules/checkout/pages/frontStore/checkout/index.js +28 -28
- package/src/modules/checkout/pages/frontStore/checkout/route.json +5 -5
- package/src/modules/checkout/pages/frontStore/checkoutSuccess/CheckoutSuccess.jsx +17 -17
- package/src/modules/checkout/pages/frontStore/checkoutSuccess/CheckoutSuccess.scss +48 -48
- package/src/modules/checkout/pages/frontStore/checkoutSuccess/CustomerInfo.jsx +178 -178
- package/src/modules/checkout/pages/frontStore/checkoutSuccess/ShippingNote.jsx +47 -47
- package/src/modules/checkout/pages/frontStore/checkoutSuccess/Summary.jsx +128 -132
- package/src/modules/checkout/pages/frontStore/checkoutSuccess/Summary.scss +51 -51
- package/src/modules/checkout/pages/frontStore/checkoutSuccess/index.js +23 -23
- package/src/modules/checkout/pages/frontStore/checkoutSuccess/route.json +5 -5
- package/src/modules/checkout/services/addCartItem.js +44 -0
- package/src/modules/checkout/services/cart/Cart.js +227 -232
- package/src/modules/checkout/services/cart/DataObject.js +130 -130
- package/src/modules/checkout/services/cart/registerCartBaseFields.js +675 -675
- package/src/modules/checkout/services/cart/registerCartItemBaseFields.js +324 -324
- package/src/modules/checkout/services/cart/sortFields.js +53 -53
- package/src/modules/checkout/services/createNewCart.js +28 -28
- package/src/modules/checkout/services/getCartById.js +23 -23
- package/src/modules/checkout/services/getCartByUUID.js +13 -13
- package/src/modules/checkout/services/getCurrentCart.js +27 -27
- package/src/modules/checkout/services/orderCreator.js +237 -219
- package/src/modules/checkout/services/removeCartItem.js +18 -0
- package/src/modules/checkout/services/saveCart.js +93 -93
- package/src/modules/checkout/services/toPrice.js +38 -38
- package/src/modules/checkout/services/updateCartItemQty.js +41 -0
- package/src/modules/checkout/tests/basicSetup.js +85 -85
- package/src/modules/checkout/tests/coupons.js +82 -82
- package/src/modules/checkout/tests/products.js +67 -67
- package/src/modules/checkout/tests/taxRates.js +3 -3
- package/src/modules/checkout/tests/unit/addItemSideEffect.test.js +86 -0
- package/src/modules/checkout/tests/unit/discountAmount.test.js +60 -60
- package/src/modules/checkout/tests/unit/grandTotal.test.js +83 -83
- package/src/modules/checkout/tests/unit/lineTotal.test.js +92 -90
- package/src/modules/checkout/tests/unit/lineTotalWithDiscount.test.js +103 -103
- package/src/modules/checkout/tests/unit/productPrice.test.js +69 -67
- package/src/modules/checkout/tests/unit/removeItemSideEffect.test.js +83 -0
- package/src/modules/checkout/tests/unit/subTotal.test.js +85 -85
- package/src/modules/checkout/tests/unit/subTotalWithDiscount.test.js +117 -117
- package/src/modules/checkout/tests/unit/taxAmount.test.js +68 -67
- package/src/modules/checkout/tests/unit/taxAmountRounding.test.js +277 -277
- package/src/modules/checkout/tests/unit/updateCartItemQtySideEffect.test.js +86 -0
- package/src/modules/cms/api/createCmsPage/[context]bodyParser[auth].js +5 -5
- package/src/modules/cms/api/createCmsPage/createPage[finish].js +11 -11
- package/src/modules/cms/api/createCmsPage/finish[apiResponse].js +33 -33
- package/src/modules/cms/api/createCmsPage/payloadSchema.json +10 -10
- package/src/modules/cms/api/createCmsPage/route.json +5 -5
- package/src/modules/cms/api/createWidget/[context]bodyParser[auth].js +5 -5
- package/src/modules/cms/api/createWidget/createWidget[finish].js +17 -17
- package/src/modules/cms/api/createWidget/finish[apiResponse].js +27 -27
- package/src/modules/cms/api/createWidget/payloadSchema.json +18 -18
- package/src/modules/cms/api/createWidget/route.json +5 -5
- package/src/modules/cms/api/deleteCmsPage/deleteCmsPage.js +27 -27
- package/src/modules/cms/api/deleteCmsPage/route.json +5 -5
- package/src/modules/cms/api/deleteWidget/deleteWidget.js +27 -27
- package/src/modules/cms/api/deleteWidget/route.json +5 -5
- package/src/modules/cms/api/fileBrowser/[context]validatePath[auth].js +20 -20
- package/src/modules/cms/api/fileBrowser/browFiles.js +12 -12
- package/src/modules/cms/api/fileBrowser/route.json +5 -5
- package/src/modules/cms/api/fileDelete/[context]validatePath[auth].js +20 -20
- package/src/modules/cms/api/fileDelete/deleteFile.js +13 -13
- package/src/modules/cms/api/fileDelete/route.json +5 -5
- package/src/modules/cms/api/fileUpload/[context]multerFile[auth].js +21 -21
- package/src/modules/cms/api/fileUpload/[context]validatePath[multerFile].js +20 -20
- package/src/modules/cms/api/fileUpload/[multerFile]upload.js +24 -24
- package/src/modules/cms/api/fileUpload/route.json +5 -5
- package/src/modules/cms/api/folderCreate/[context]bodyParser[auth].js +5 -5
- package/src/modules/cms/api/folderCreate/[context]validatePath[auth].js +20 -20
- package/src/modules/cms/api/folderCreate/createFolder.js +14 -14
- package/src/modules/cms/api/folderCreate/payloadSchema.json +10 -10
- package/src/modules/cms/api/folderCreate/route.json +5 -5
- package/src/modules/cms/api/imageUpload/[context]multerFile[auth].js +3 -3
- package/src/modules/cms/api/imageUpload/[context]validatePath[multerFile].js +3 -3
- package/src/modules/cms/api/imageUpload/[multerFile]upload.js +3 -3
- package/src/modules/cms/api/imageUpload/[multerFile]verifyImages[upload].js +25 -25
- package/src/modules/cms/api/imageUpload/route.json +5 -5
- package/src/modules/cms/api/updateCmsPage/[context]bodyParser[auth].js +5 -5
- package/src/modules/cms/api/updateCmsPage/finish[apiResponse].js +33 -33
- package/src/modules/cms/api/updateCmsPage/payloadSchema.json +10 -10
- package/src/modules/cms/api/updateCmsPage/route.json +5 -5
- package/src/modules/cms/api/updateCmsPage/updatePage[finish].js +11 -11
- package/src/modules/cms/api/updateWidget/[context]bodyParser[auth].js +5 -5
- package/src/modules/cms/api/updateWidget/finish[apiResponse].js +27 -27
- package/src/modules/cms/api/updateWidget/payloadSchema.json +18 -18
- package/src/modules/cms/api/updateWidget/route.json +5 -5
- package/src/modules/cms/api/updateWidget/updateWidget[finish].js +17 -17
- package/src/modules/cms/bootstrap.js +260 -260
- package/src/modules/cms/graphql/types/CmsPage/CmsPage.graphql +33 -33
- package/src/modules/cms/graphql/types/CmsPage/CmsPage.resolvers.js +63 -63
- package/src/modules/cms/graphql/types/Menu/Menu.graphql +19 -19
- package/src/modules/cms/graphql/types/Menu/Menu.resolvers.js +33 -33
- package/src/modules/cms/graphql/types/PageInfo/PageInfo.graphql +21 -21
- package/src/modules/cms/graphql/types/PageInfo/PageInfo.resolvers.js +90 -90
- package/src/modules/cms/graphql/types/ThemeConfig/ThemeConfig.graphql +88 -88
- package/src/modules/cms/graphql/types/ThemeConfig/ThemeConfig.resolvers.js +7 -7
- package/src/modules/cms/graphql/types/Widget/Widget.graphql +91 -91
- package/src/modules/cms/graphql/types/Widget/Widget.resolvers.js +142 -142
- package/src/modules/cms/migration/Version-1.0.0.js +38 -38
- package/src/modules/cms/migration/Version-1.1.0.js +22 -22
- package/src/modules/cms/migration/Version-1.1.1.js +103 -103
- package/src/modules/cms/pages/admin/adminNotFound/Meta.jsx +17 -17
- package/src/modules/cms/pages/admin/adminNotFound/NotFound.jsx +66 -66
- package/src/modules/cms/pages/admin/adminNotFound/route.json +4 -4
- package/src/modules/cms/pages/admin/adminStaticAsset/route.json +4 -4
- package/src/modules/cms/pages/admin/adminStaticAsset/staticAssets.js +5 -5
- package/src/modules/cms/pages/admin/all/CmsMenuGroup.jsx +43 -43
- package/src/modules/cms/pages/admin/all/CopyRight.jsx +35 -0
- package/src/modules/cms/pages/admin/all/Layout.jsx +31 -35
- package/src/modules/cms/pages/admin/all/Layout.scss +91 -91
- package/src/modules/cms/pages/admin/all/Logo.jsx +120 -83
- package/src/modules/cms/pages/admin/all/Logo.scss +12 -12
- package/src/modules/cms/pages/admin/all/Meta.jsx +34 -34
- package/src/modules/cms/pages/admin/all/Navigation.jsx +20 -20
- package/src/modules/cms/pages/admin/all/Navigation.scss +84 -84
- package/src/modules/cms/pages/admin/all/Notification.jsx +42 -42
- package/src/modules/cms/pages/admin/all/Notification.scss +531 -531
- package/src/modules/cms/pages/admin/all/QuickLinks.jsx +35 -35
- package/src/modules/cms/pages/admin/all/SearchBox.jsx +169 -169
- package/src/modules/cms/pages/admin/all/SearchBox.scss +65 -65
- package/src/modules/cms/pages/admin/all/Version.jsx +25 -0
- package/src/modules/cms/pages/admin/all/search/NoResult.jsx +45 -45
- package/src/modules/cms/pages/admin/all/search/Results.jsx +74 -74
- package/src/modules/cms/pages/admin/all/tailwind.scss +3 -3
- package/src/modules/cms/pages/admin/cmsPageEdit/PageEditForm.jsx +52 -52
- package/src/modules/cms/pages/admin/cmsPageEdit/index.js +37 -37
- package/src/modules/cms/pages/admin/cmsPageEdit/route.json +4 -4
- package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/FormContent.jsx +56 -56
- package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/FormContent.scss +7 -7
- package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/General.jsx +118 -105
- package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/PageHeading.jsx +37 -37
- package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/Seo.jsx +97 -97
- package/src/modules/cms/pages/admin/cmsPageEdit+cmsPageNew/Status.jsx +40 -40
- package/src/modules/cms/pages/admin/cmsPageGrid/Grid.jsx +384 -379
- package/src/modules/cms/pages/admin/cmsPageGrid/Heading.jsx +11 -11
- package/src/modules/cms/pages/admin/cmsPageGrid/NewPageButton.jsx +22 -22
- package/src/modules/cms/pages/admin/cmsPageGrid/index.js +15 -15
- package/src/modules/cms/pages/admin/cmsPageGrid/route.json +4 -4
- package/src/modules/cms/pages/admin/cmsPageNew/PageNewForm.jsx +60 -60
- package/src/modules/cms/pages/admin/cmsPageNew/index.js +11 -11
- package/src/modules/cms/pages/admin/cmsPageNew/route.json +4 -4
- package/src/modules/cms/pages/admin/dashboard/Layout.jsx +21 -21
- package/src/modules/cms/pages/admin/dashboard/Layout.scss +7 -7
- package/src/modules/cms/pages/admin/dashboard/PageHeading.jsx +11 -11
- package/src/modules/cms/pages/admin/dashboard/index.js +11 -11
- package/src/modules/cms/pages/admin/dashboard/route.json +4 -4
- package/src/modules/cms/pages/admin/widgetEdit/WidgetForm.jsx +52 -52
- package/src/modules/cms/pages/admin/widgetEdit/index.js +36 -36
- package/src/modules/cms/pages/admin/widgetEdit/route.json +4 -4
- package/src/modules/cms/pages/admin/widgetEdit+widgetNew/FormContent.jsx +69 -69
- package/src/modules/cms/pages/admin/widgetEdit+widgetNew/FormContent.scss +7 -7
- package/src/modules/cms/pages/admin/widgetEdit+widgetNew/General.jsx +185 -185
- package/src/modules/cms/pages/admin/widgetEdit+widgetNew/PageHeading.jsx +37 -37
- package/src/modules/cms/pages/admin/widgetEdit+widgetNew/Setting.jsx +55 -55
- package/src/modules/cms/pages/admin/widgetGrid/Grid.jsx +420 -415
- package/src/modules/cms/pages/admin/widgetGrid/Heading.jsx +11 -11
- package/src/modules/cms/pages/admin/widgetGrid/NewWidgetButton.jsx +52 -52
- package/src/modules/cms/pages/admin/widgetGrid/index.js +15 -15
- package/src/modules/cms/pages/admin/widgetGrid/route.json +4 -4
- package/src/modules/cms/pages/admin/widgetNew/WidgetNewForm.jsx +60 -60
- package/src/modules/cms/pages/admin/widgetNew/index.js +11 -11
- package/src/modules/cms/pages/admin/widgetNew/route.json +4 -4
- package/src/modules/cms/pages/admin/widgetNew/typeValidate.js +21 -21
- package/src/modules/cms/pages/frontStore/all/Breadcrumb.jsx +50 -50
- package/src/modules/cms/pages/frontStore/all/Footer.jsx +125 -125
- package/src/modules/cms/pages/frontStore/all/HeadTags.jsx +163 -163
- package/src/modules/cms/pages/frontStore/all/Layout.jsx +40 -40
- package/src/modules/cms/pages/frontStore/all/Layout.scss +260 -260
- package/src/modules/cms/pages/frontStore/all/Logo.jsx +83 -83
- package/src/modules/cms/pages/frontStore/all/Logo.scss +8 -8
- package/src/modules/cms/pages/frontStore/all/Notification.jsx +42 -42
- package/src/modules/cms/pages/frontStore/all/Notification.scss +532 -532
- package/src/modules/cms/pages/frontStore/all/tailwind.scss +3 -3
- package/src/modules/cms/pages/frontStore/cmsPageView/Layout.jsx +113 -113
- package/src/modules/cms/pages/frontStore/cmsPageView/Layout.scss +248 -248
- package/src/modules/cms/pages/frontStore/cmsPageView/View.jsx +36 -36
- package/src/modules/cms/pages/frontStore/cmsPageView/index.js +31 -31
- package/src/modules/cms/pages/frontStore/cmsPageView/route.json +5 -5
- package/src/modules/cms/pages/frontStore/homepage/meta.js +18 -18
- package/src/modules/cms/pages/frontStore/homepage/route.json +5 -5
- package/src/modules/cms/pages/frontStore/notFound/Meta.jsx +17 -17
- package/src/modules/cms/pages/frontStore/notFound/NotFound.jsx +75 -75
- package/src/modules/cms/pages/frontStore/notFound/route.json +5 -5
- package/src/modules/cms/pages/frontStore/staticAsset/[context]staticAssets[auth].js +5 -5
- package/src/modules/cms/pages/frontStore/staticAsset/route.json +4 -4
- package/src/modules/cms/services/CMSPageCollection.js +62 -62
- package/src/modules/cms/services/CustomMemoryStorage.js +37 -37
- package/src/modules/cms/services/WidgetCollection.js +62 -62
- package/src/modules/cms/services/browFiles.js +54 -54
- package/src/modules/cms/services/createFolder.js +42 -42
- package/src/modules/cms/services/deleteFile.js +42 -42
- package/src/modules/cms/services/generateFileName.js +9 -9
- package/src/modules/cms/services/getCmsPagesBaseQuery.js +14 -14
- package/src/modules/cms/services/getMulter.js +26 -26
- package/src/modules/cms/services/getWidgetsBaseQuery.js +7 -7
- package/src/modules/cms/services/page/createPage.js +84 -84
- package/src/modules/cms/services/page/deletePage.js +57 -57
- package/src/modules/cms/services/page/pageDataSchema.json +33 -33
- package/src/modules/cms/services/page/updatePage.js +106 -106
- package/src/modules/cms/services/registerDefaultPageCollectionFilters.js +62 -62
- package/src/modules/cms/services/registerDefaultWidgetCollectionFilters.js +62 -62
- package/src/modules/cms/services/tailwind.admin.config.js +34 -34
- package/src/modules/cms/services/tailwind.frontStore.config.js +35 -35
- package/src/modules/cms/services/tests/unit/validatePath.test.js +31 -31
- package/src/modules/cms/services/uploadFile.js +61 -61
- package/src/modules/cms/services/validatePath.js +16 -16
- package/src/modules/cms/services/widget/createWidget.js +73 -73
- package/src/modules/cms/services/widget/deleteWidget.js +49 -49
- package/src/modules/cms/services/widget/loadWidgetInstances.js +54 -54
- package/src/modules/cms/services/widget/updateWidget.js +86 -86
- package/src/modules/cms/services/widget/widgetDataSchema.json +29 -29
- package/src/modules/cod/api/codCapturePayment/[bodyParser]capture.js +62 -62
- package/src/modules/cod/api/codCapturePayment/[context]bodyParser[auth].js +5 -5
- package/src/modules/cod/api/codCapturePayment/payloadSchema.json +10 -10
- package/src/modules/cod/api/codCapturePayment/route.json +5 -5
- package/src/modules/cod/api/createOrder/[placeOrder]addOrderPlacedEvent.js +19 -19
- package/src/modules/cod/api/getPaymentMethods/registerCod[sendMethods].js +15 -15
- package/src/modules/cod/bootstrap.js +27 -27
- package/src/modules/cod/graphql/types/CODSetting/CODSetting.graphql +4 -4
- package/src/modules/cod/graphql/types/CODSetting/CODSetting.resolvers.js +22 -22
- package/src/modules/cod/pages/admin/orderEdit/CaptureButton.jsx +72 -71
- package/src/modules/cod/pages/admin/paymentSetting/CODSetting.jsx +60 -60
- package/src/modules/cod/pages/frontStore/checkout/CashOnDelivery.jsx +137 -120
- package/src/modules/customer/api/createCustomer/[bodyParser]createCustomer.js +48 -48
- package/src/modules/customer/api/createCustomer/[context]bodyParser[auth].js +5 -5
- package/src/modules/customer/api/createCustomer/route.json +5 -5
- package/src/modules/customer/api/createCustomerAddress/[bodyParser]createCustomerAddress.js +55 -0
- package/src/modules/{paypal/api/paypalGetAccessToken → customer/api/createCustomerAddress}/[context]bodyParser[auth].js +5 -5
- package/src/modules/customer/api/createCustomerAddress/route.json +5 -0
- package/src/modules/customer/api/deleteCustomer/deleteCustomer.js +26 -26
- package/src/modules/customer/api/deleteCustomer/route.json +5 -5
- package/src/modules/customer/api/deleteCustomerAddress/deleteCustomerAddress.js +59 -0
- package/src/modules/customer/api/deleteCustomerAddress/route.json +5 -0
- package/src/modules/customer/api/global/[context]getCurrentCustomer[auth].js +61 -61
- package/src/modules/customer/api/resetPassword/[bodyParser]resetPassword.js +57 -57
- package/src/modules/customer/api/resetPassword/[context]bodyParser[auth].js +5 -5
- package/src/modules/customer/api/resetPassword/payloadSchema.json +11 -11
- package/src/modules/customer/api/resetPassword/route.json +5 -5
- package/src/modules/customer/api/updateCustomer/[context]bodyParser[auth].js +5 -5
- package/src/modules/customer/api/updateCustomer/payloadSchema.json +16 -16
- package/src/modules/customer/api/updateCustomer/route.json +5 -5
- package/src/modules/customer/api/updateCustomer/updateCustomer.js +85 -85
- package/src/modules/customer/api/updateCustomerAddress/[context]bodyParser[auth].js +5 -0
- package/src/modules/customer/api/updateCustomerAddress/payloadSchema.json +16 -0
- package/src/modules/customer/api/updateCustomerAddress/route.json +5 -0
- package/src/modules/customer/api/updateCustomerAddress/updateCustomerAddress.js +81 -0
- package/src/modules/customer/api/updatePassword/[bodyParser]updatePassword.js +84 -84
- package/src/modules/customer/api/updatePassword/[context]bodyParser[auth].js +5 -5
- package/src/modules/customer/api/updatePassword/payloadSchema.json +13 -13
- package/src/modules/customer/api/updatePassword/route.json +5 -5
- package/src/modules/customer/bootstrap.js +191 -204
- package/src/modules/customer/graphql/types/Customer/Customer.admin.graphql +20 -20
- package/src/modules/customer/graphql/types/Customer/Customer.admin.resolvers.js +28 -28
- package/src/modules/customer/graphql/types/Customer/Customer.graphql +36 -15
- package/src/modules/customer/graphql/types/Customer/Customer.resolvers.js +33 -8
- package/src/modules/customer/graphql/types/Customer/CustomerSetting.graphql +3 -3
- package/src/modules/customer/graphql/types/Customer/CustomerSetting.resolvers.js +7 -7
- package/src/modules/customer/graphql/types/CustomerGroup/CustomerGroup.admin.graphql +20 -20
- package/src/modules/customer/graphql/types/CustomerGroup/CustomerGroup.admin.resolvers.js +39 -39
- package/src/modules/customer/graphql/types/CustomerGroup/CustomerGroup.graphql +10 -10
- package/src/modules/customer/graphql/types/CustomerGroup/CustomerGroup.resolvers.js +14 -14
- package/src/modules/customer/migration/Version-1.0.0.js +117 -117
- package/src/modules/customer/migration/Version-1.0.1.js +67 -67
- package/src/modules/customer/migration/Version-1.0.2.js +16 -16
- package/src/modules/customer/migration/Version-1.0.3.js +15 -0
- package/src/modules/customer/pages/admin/all/CustomerMenuGroup.jsx +35 -35
- package/src/modules/customer/pages/admin/customerEdit/CustomerEditForm.jsx +26 -26
- package/src/modules/customer/pages/admin/customerEdit/CustomerEditForm.scss +7 -7
- package/src/modules/customer/pages/admin/customerEdit/index.js +29 -29
- package/src/modules/customer/pages/admin/customerEdit/route.json +4 -4
- package/src/modules/customer/pages/admin/customerEdit+customerNew/General.jsx +126 -126
- package/src/modules/customer/pages/admin/customerEdit+customerNew/OrderHistory.jsx +84 -83
- package/src/modules/customer/pages/admin/customerEdit+customerNew/PageHeading.jsx +39 -39
- package/src/modules/customer/pages/admin/customerGrid/Grid.jsx +450 -445
- package/src/modules/customer/pages/admin/customerGrid/Heading.jsx +11 -11
- package/src/modules/customer/pages/admin/customerGrid/index.js +15 -15
- package/src/modules/customer/pages/admin/customerGrid/route.json +4 -4
- package/src/modules/customer/pages/frontStore/account/AccountDetails.jsx +69 -49
- package/src/modules/customer/pages/frontStore/account/Addresses.jsx +257 -0
- package/src/modules/customer/pages/frontStore/account/Layout.jsx +63 -57
- package/src/modules/customer/pages/frontStore/account/OrderHistory.jsx +104 -104
- package/src/modules/customer/pages/frontStore/account/index.js +21 -21
- package/src/modules/customer/pages/frontStore/account/route.json +5 -5
- package/src/modules/customer/pages/frontStore/accountEdit/EditForm.jsx +73 -0
- package/src/modules/customer/pages/frontStore/accountEdit/Layout.jsx +57 -0
- package/src/modules/customer/pages/frontStore/accountEdit/index.js +21 -0
- package/src/modules/customer/pages/frontStore/accountEdit/route.json +5 -0
- package/src/modules/customer/pages/frontStore/all/UserIcon.jsx +45 -45
- package/src/modules/customer/pages/frontStore/all/[context]auth.js +35 -35
- package/src/modules/customer/pages/frontStore/checkout/CustomerInfoStep.jsx +89 -89
- package/src/modules/customer/pages/frontStore/customerLoginJson/[bodyParser]login.js +44 -44
- package/src/modules/customer/pages/frontStore/customerLoginJson/payloadSchema.json +13 -13
- package/src/modules/customer/pages/frontStore/customerLoginJson/route.json +4 -4
- package/src/modules/customer/pages/frontStore/customerLogoutJson/logout.js +35 -35
- package/src/modules/customer/pages/frontStore/customerLogoutJson/route.json +4 -4
- package/src/modules/customer/pages/frontStore/login/LoginForm.jsx +94 -94
- package/src/modules/customer/pages/frontStore/login/LoginForm.scss +37 -37
- package/src/modules/customer/pages/frontStore/login/index.js +21 -21
- package/src/modules/customer/pages/frontStore/login/route.json +5 -5
- package/src/modules/customer/pages/frontStore/register/RegisterForm.jsx +136 -136
- package/src/modules/customer/pages/frontStore/register/RegisterForm.scss +37 -37
- package/src/modules/customer/pages/frontStore/register/index.js +23 -23
- package/src/modules/customer/pages/frontStore/register/route.json +5 -5
- package/src/modules/customer/pages/frontStore/resetPasswordPage/ResetPasswordForm.jsx +115 -115
- package/src/modules/customer/pages/frontStore/resetPasswordPage/ResetPasswordForm.scss +37 -37
- package/src/modules/customer/pages/frontStore/resetPasswordPage/index.js +21 -21
- package/src/modules/customer/pages/frontStore/resetPasswordPage/route.json +5 -5
- package/src/modules/customer/pages/frontStore/updatePasswordPage/UpdatePasswordForm.jsx +123 -123
- package/src/modules/customer/pages/frontStore/updatePasswordPage/UpdatePasswordForm.scss +37 -37
- package/src/modules/customer/pages/frontStore/updatePasswordPage/index.js +21 -21
- package/src/modules/customer/pages/frontStore/updatePasswordPage/route.json +5 -5
- package/src/modules/customer/services/CustomerCollection.js +60 -60
- package/src/modules/customer/services/CustomerGroupCollection.js +59 -59
- package/src/modules/customer/services/customer/address/addressValidator.js +21 -0
- package/src/modules/customer/services/customer/address/createCustomerAddress.js +83 -0
- package/src/modules/customer/services/customer/address/deleteCustomerAddress.js +55 -0
- package/src/modules/customer/services/customer/address/updateCustomerAddress.js +95 -0
- package/src/modules/customer/services/customer/createCustomer.js +112 -112
- package/src/modules/customer/services/customer/customerDataSchema.json +20 -20
- package/src/modules/customer/services/customer/deleteCustomer.js +53 -53
- package/src/modules/customer/services/customer/loginCustomerWithEmail.js +33 -0
- package/src/modules/customer/services/customer/logoutCustomer.js +9 -0
- package/src/modules/customer/services/customer/updateCustomer.js +96 -96
- package/src/modules/customer/services/customer/updatePassword.js +68 -68
- package/src/modules/customer/services/getCustomerGroupsBaseQuery.js +7 -7
- package/src/modules/customer/services/getCustomersBaseQuery.js +7 -7
- package/src/modules/customer/services/registerDefaultCustomerCollectionFilters.js +90 -90
- package/src/modules/customer/services/registerDefaultCustomerGroupCollectionFilters.js +50 -50
- package/src/modules/graphql/api/adminGraphql/[bodyParser]graphql.js +5 -5
- package/src/modules/graphql/api/adminGraphql/[context]bodyParser[auth].js +5 -5
- package/src/modules/graphql/api/adminGraphql/route.json +5 -5
- package/src/modules/graphql/api/graphql/[auth]removeUser[graphql].js +9 -9
- package/src/modules/graphql/api/graphql/[bodyParser]graphql.js +5 -5
- package/src/modules/graphql/api/graphql/[context]bodyParser[auth].js +5 -5
- package/src/modules/graphql/api/graphql/route.json +5 -5
- package/src/modules/graphql/bootstrap.js +5 -5
- package/src/modules/graphql/graphql/types/Query/Query.graphql +6 -6
- package/src/modules/graphql/graphql/types/Query/Query.resolvers.js +5 -5
- package/src/modules/graphql/pages/global/[bodyParser]buildQuery[graphql].js +352 -349
- package/src/modules/graphql/pages/global/{[buildQuery]graphql[notification].js → [buildQuery]graphql[notFound].js} +77 -77
- package/src/modules/graphql/pages/global/bodyParser[buildQuery].js +7 -7
- package/src/modules/graphql/services/buildResolvers.js +27 -27
- package/src/modules/graphql/services/buildSchema.js +10 -10
- package/src/modules/graphql/services/buildStoreFrontSchema.js +10 -10
- package/src/modules/graphql/services/buildTypes.js +25 -25
- package/src/modules/graphql/services/contextHelper.js +48 -48
- package/src/modules/graphql/services/graphqlErrorMessageFormat.js +38 -38
- package/src/modules/graphql/services/graphqlMiddleware.js +51 -51
- package/src/modules/oms/api/cancelOrder/[context]borderParser[auth].js +5 -0
- package/src/modules/oms/api/cancelOrder/cancelOrder.js +25 -0
- package/src/modules/oms/api/cancelOrder/payloadSchema.json +15 -0
- package/src/modules/oms/api/cancelOrder/route.json +5 -0
- package/src/modules/oms/api/createShipment/[context]borderParser[auth].js +5 -5
- package/src/modules/oms/api/createShipment/createShipment.js +100 -102
- package/src/modules/oms/api/createShipment/payloadSchema.json +12 -12
- package/src/modules/oms/api/createShipment/route.json +5 -5
- package/src/modules/oms/api/lifetimesales/loadData.js +53 -53
- package/src/modules/oms/api/lifetimesales/route.json +5 -5
- package/src/modules/oms/api/markDelivered/[context]bodyParser[auth].js +5 -5
- package/src/modules/oms/api/markDelivered/markDelivered.js +85 -90
- package/src/modules/oms/api/markDelivered/payloadSchema.json +9 -9
- package/src/modules/oms/api/markDelivered/route.json +5 -5
- package/src/modules/oms/api/salestatistic/loadData.js +70 -70
- package/src/modules/oms/api/salestatistic/route.json +5 -5
- package/src/modules/oms/api/updateShipment/[context]bodyParser[auth].js +5 -5
- package/src/modules/oms/api/updateShipment/payloadSchema.json +12 -12
- package/src/modules/oms/api/updateShipment/route.json +5 -5
- package/src/modules/oms/api/updateShipment/updateShipment.js +97 -97
- package/src/modules/oms/bootstrap.js +389 -161
- package/src/modules/oms/graphql/types/BestSeller/BestSeller.admin.graphql +7 -7
- package/src/modules/oms/graphql/types/BestSeller/BestSeller.admin.resolvers.js +38 -38
- package/src/modules/oms/graphql/types/Carrier/Carrier.admin.graphql +12 -12
- package/src/modules/oms/graphql/types/Carrier/Carrier.admin.resolvers.js +13 -13
- package/src/modules/oms/graphql/types/Order/Order.admin.graphql +15 -14
- package/src/modules/oms/graphql/types/Order/Order.admin.resolvers.js +31 -30
- package/src/modules/oms/graphql/types/Order/Order.graphql +134 -134
- package/src/modules/oms/graphql/types/Order/Order.resolvers.js +127 -113
- package/src/modules/oms/graphql/types/PaymentTransaction/PaymentTransaction.admin.graphql +18 -18
- package/src/modules/oms/graphql/types/PaymentTransaction/PaymentTransaction.admin.resolvers.js +14 -14
- package/src/modules/oms/graphql/types/Status/Status.graphql +39 -24
- package/src/modules/oms/graphql/types/Status/Status.resolvers.js +27 -20
- package/src/modules/oms/migration/Version-1.0.0.js +48 -48
- package/src/modules/oms/migration/Version-1.0.1.js +32 -0
- package/src/modules/oms/pages/admin/all/OmsMenuGroup.jsx +35 -35
- package/src/modules/oms/pages/admin/dashboard/Bestcustomers.jsx +68 -68
- package/src/modules/oms/pages/admin/dashboard/Bestsellers.jsx +131 -131
- package/src/modules/oms/pages/admin/dashboard/Bestsellers.scss +48 -48
- package/src/modules/oms/pages/admin/dashboard/Lifetimesales.jsx +133 -133
- package/src/modules/oms/pages/admin/dashboard/Lifetimesales.scss +31 -31
- package/src/modules/oms/pages/admin/dashboard/Statistic.jsx +110 -110
- package/src/modules/oms/pages/admin/dashboard/Statistic.scss +21 -21
- package/src/modules/oms/pages/admin/orderEdit/Activities.jsx +113 -113
- package/src/modules/oms/pages/admin/orderEdit/Activities.scss +59 -59
- package/src/modules/oms/pages/admin/orderEdit/AddTrackingButton.jsx +133 -133
- package/src/modules/oms/pages/admin/orderEdit/CancelButton.jsx +131 -0
- package/src/modules/oms/pages/admin/orderEdit/Customer.jsx +131 -131
- package/src/modules/oms/pages/admin/orderEdit/CustomerNotes.jsx +55 -55
- package/src/modules/oms/pages/admin/orderEdit/Items.jsx +182 -182
- package/src/modules/oms/pages/admin/orderEdit/Items.scss +53 -53
- package/src/modules/oms/pages/admin/orderEdit/Layout.jsx +21 -21
- package/src/modules/oms/pages/admin/orderEdit/Layout.scss +7 -7
- package/src/modules/oms/pages/admin/orderEdit/MarkDeliveredButton.jsx +78 -78
- package/src/modules/oms/pages/admin/orderEdit/PageHeading.jsx +30 -30
- package/src/modules/oms/pages/admin/orderEdit/Payment.jsx +161 -184
- package/src/modules/oms/pages/admin/orderEdit/Payment.scss +14 -14
- package/src/modules/oms/pages/admin/orderEdit/ShipButton.jsx +152 -139
- package/src/modules/oms/pages/admin/orderEdit/{ShipmentStatus.jsx → Status.jsx} +45 -45
- package/src/modules/oms/pages/admin/orderEdit/TrackingButton.jsx +73 -73
- package/src/modules/oms/pages/admin/orderEdit/index.js +29 -29
- package/src/modules/oms/pages/admin/orderEdit/route.json +4 -4
- package/src/modules/oms/pages/admin/orderGrid/Grid.jsx +545 -539
- package/src/modules/oms/pages/admin/orderGrid/Heading.jsx +11 -11
- package/src/modules/oms/pages/admin/orderGrid/index.js +15 -15
- package/src/modules/oms/pages/admin/orderGrid/route.json +4 -4
- package/src/modules/oms/services/OrderCollection.js +56 -56
- package/src/modules/oms/services/cancelOrder.js +112 -0
- package/src/modules/oms/services/getOrdersBaseQuery.js +7 -7
- package/src/modules/oms/services/registerDefaultOrderCollectionFilters.js +121 -121
- package/src/modules/oms/services/updateOrderStatus.js +126 -0
- package/src/modules/oms/services/updatePaymentStatus.js +53 -0
- package/src/modules/oms/services/updateShipmentStatus.js +54 -0
- package/src/modules/paypal/api/getPaymentMethods/registerPaypal[sendMethods].js +22 -22
- package/src/modules/paypal/api/paypalAuthorizePayment/[bodyParser]authorize.js +99 -102
- package/src/modules/paypal/api/paypalAuthorizePayment/[context]bodyParser[auth].js +5 -5
- package/src/modules/paypal/api/paypalAuthorizePayment/payloadSchema.json +10 -10
- package/src/modules/paypal/api/paypalAuthorizePayment/route.json +5 -5
- package/src/modules/paypal/api/paypalCaptureAuthorizedPayment/[bodyParser]capture.js +125 -0
- package/src/modules/paypal/api/paypalCaptureAuthorizedPayment/[context]bodyParser[auth].js +5 -0
- package/src/modules/paypal/api/{paypalGetAccessToken → paypalCaptureAuthorizedPayment}/payloadSchema.json +10 -10
- package/src/modules/paypal/api/{paypalGetAccessToken → paypalCaptureAuthorizedPayment}/route.json +5 -5
- package/src/modules/paypal/api/paypalCapturePayment/[bodyParser]capture.js +96 -99
- package/src/modules/paypal/api/paypalCapturePayment/[context]bodyParser[auth].js +5 -5
- package/src/modules/paypal/api/paypalCapturePayment/payloadSchema.json +10 -10
- package/src/modules/paypal/api/paypalCapturePayment/route.json +5 -5
- package/src/modules/paypal/api/paypalCreateOrder/[bodyParser]createOrder.js +216 -218
- package/src/modules/paypal/api/paypalCreateOrder/[context]bodyParser[auth].js +5 -5
- package/src/modules/paypal/api/paypalCreateOrder/payloadSchema.json +10 -10
- package/src/modules/paypal/api/paypalCreateOrder/route.json +5 -5
- package/src/modules/paypal/bootstrap.js +40 -28
- package/src/modules/paypal/graphql/types/PaypalSetting/PaypalSetting.admin.graphql +7 -7
- package/src/modules/paypal/graphql/types/PaypalSetting/PaypalSetting.admin.resolvers.js +78 -78
- package/src/modules/paypal/graphql/types/PaypalSetting/PaypalSetting.graphql +4 -4
- package/src/modules/paypal/graphql/types/PaypalSetting/PaypalSetting.resolvers.js +30 -30
- package/src/modules/paypal/pages/admin/orderEdit/PaypalCaptureButton.jsx +75 -0
- package/src/modules/paypal/pages/admin/orderEdit/StripeRefundButton.jsx +139 -0
- package/src/modules/paypal/pages/admin/paymentSetting/PaypalSetting.jsx +160 -137
- package/src/modules/paypal/pages/frontStore/checkout/Paypal.jsx +185 -187
- package/src/modules/paypal/pages/frontStore/paypalCancel/index.js +33 -33
- package/src/modules/paypal/pages/frontStore/paypalCancel/route.json +4 -4
- package/src/modules/paypal/pages/frontStore/paypalReturn/Error.jsx +18 -18
- package/src/modules/paypal/pages/frontStore/paypalReturn/index.js +68 -68
- package/src/modules/paypal/pages/frontStore/paypalReturn/route.json +4 -4
- package/src/modules/paypal/services/getApiBaseUrl.js +9 -9
- package/src/modules/paypal/services/requester.js +68 -0
- package/src/modules/paypal/services/voidPaymentTransaction.js +43 -0
- package/src/modules/promotion/api/couponApply/[context]bodyParser[auth].js +5 -5
- package/src/modules/promotion/api/couponApply/[validateCouponCode]applyCoupon.js +42 -42
- package/src/modules/promotion/api/couponApply/payloadSchema.json +15 -15
- package/src/modules/promotion/api/couponApply/route.json +5 -5
- package/src/modules/promotion/api/couponApply/validateCouponCode.js +16 -16
- package/src/modules/promotion/api/createCoupon/[context]bodyParser[auth].js +5 -5
- package/src/modules/promotion/api/createCoupon/createCoupon[finish].js +10 -10
- package/src/modules/promotion/api/createCoupon/finish[apiResponse].js +27 -27
- package/src/modules/promotion/api/createCoupon/route.json +5 -5
- package/src/modules/promotion/api/deleteCoupon/deleteCoupon.js +27 -27
- package/src/modules/promotion/api/deleteCoupon/route.json +5 -5
- package/src/modules/promotion/api/updateCoupon/[context]bodyParser[auth].js +5 -5
- package/src/modules/promotion/api/updateCoupon/finish[apiResponse].js +27 -27
- package/src/modules/promotion/api/updateCoupon/route.json +5 -5
- package/src/modules/promotion/api/updateCoupon/updateCoupon[finish].js +10 -10
- package/src/modules/promotion/bootstrap.js +49 -49
- package/src/modules/promotion/graphql/types/Coupon/Coupon.admin.graphql +87 -87
- package/src/modules/promotion/graphql/types/Coupon/Coupon.admin.resolvers.js +62 -62
- package/src/modules/promotion/graphql/types/Coupon/Coupon.graphql +5 -5
- package/src/modules/promotion/graphql/types/Coupon/Coupon.resolvers.js +7 -7
- package/src/modules/promotion/migration/Version-1.0.0.js +54 -54
- package/src/modules/promotion/migration/Version-1.0.1.js +24 -24
- package/src/modules/promotion/pages/admin/all/CouponMenuGroup.jsx +35 -35
- package/src/modules/promotion/pages/admin/all/NewCouponQuickLink.jsx +23 -23
- package/src/modules/promotion/pages/admin/couponEdit/CouponEditForm.jsx +52 -52
- package/src/modules/promotion/pages/admin/couponEdit/index.js +29 -29
- package/src/modules/promotion/pages/admin/couponEdit/route.json +4 -4
- package/src/modules/promotion/pages/admin/couponEdit+couponNew/CustomerCondition.jsx +154 -154
- package/src/modules/promotion/pages/admin/couponEdit+couponNew/DiscountType.jsx +131 -126
- package/src/modules/promotion/pages/admin/couponEdit+couponNew/FormContent.jsx +79 -79
- package/src/modules/promotion/pages/admin/couponEdit+couponNew/FormContent.scss +7 -7
- package/src/modules/promotion/pages/admin/couponEdit+couponNew/General.jsx +110 -110
- package/src/modules/promotion/pages/admin/couponEdit+couponNew/OrderCondition.jsx +76 -68
- package/src/modules/promotion/pages/admin/couponEdit+couponNew/PageHeading.jsx +37 -37
- package/src/modules/promotion/pages/admin/couponGrid/Grid.jsx +552 -547
- package/src/modules/promotion/pages/admin/couponGrid/Heading.jsx +11 -11
- package/src/modules/promotion/pages/admin/couponGrid/NewCouponButton.jsx +22 -22
- package/src/modules/promotion/pages/admin/couponGrid/index.js +14 -14
- package/src/modules/promotion/pages/admin/couponGrid/route.json +4 -4
- package/src/modules/promotion/pages/admin/couponNew/CouponNewForm.jsx +60 -60
- package/src/modules/promotion/pages/admin/couponNew/index.js +10 -10
- package/src/modules/promotion/pages/admin/couponNew/route.json +4 -4
- package/src/modules/promotion/pages/admin/navigation/CouponNewMenuItem.jsx +12 -12
- package/src/modules/promotion/pages/admin/navigation/CouponsMenuItem.jsx +12 -12
- package/src/modules/promotion/pages/frontStore/cart/Coupon.jsx +80 -80
- package/src/modules/promotion/services/CouponCollection.js +59 -59
- package/src/modules/promotion/services/coupon/couponDataSchema.json +206 -206
- package/src/modules/promotion/services/coupon/createCoupon.js +77 -77
- package/src/modules/promotion/services/coupon/deleteCoupon.js +51 -51
- package/src/modules/promotion/services/coupon/updateCoupon.js +96 -96
- package/src/modules/promotion/services/couponValidator.js +37 -37
- package/src/modules/promotion/services/discountCalculator.js +14 -14
- package/src/modules/promotion/services/getCartTotalBeforeDiscount.js +13 -13
- package/src/modules/promotion/services/getCouponsBaseQuery.js +7 -7
- package/src/modules/promotion/services/registerCartItemPromotionFields.js +80 -80
- package/src/modules/promotion/services/registerCartPromotionFields.js +128 -128
- package/src/modules/promotion/services/registerDefaultCalculators.js +371 -370
- package/src/modules/promotion/services/registerDefaultCouponCollectionFilters.js +72 -72
- package/src/modules/promotion/services/registerDefaultValidators.js +433 -433
- package/src/modules/setting/api/saveSetting/[context]bodyParser[auth].js +5 -5
- package/src/modules/setting/api/saveSetting/route.json +5 -5
- package/src/modules/setting/api/saveSetting/saveSetting.js +65 -65
- package/src/modules/setting/graphql/types/Setting/Setting.graphql +10 -10
- package/src/modules/setting/graphql/types/Setting/Setting.resolvers.js +20 -20
- package/src/modules/setting/graphql/types/ShippingSetting/ShippingSetting.graphql +4 -4
- package/src/modules/setting/graphql/types/ShippingSetting/ShippingSetting.resolvers.js +17 -17
- package/src/modules/setting/graphql/types/StoreSetting/StoreSetting.graphql +14 -14
- package/src/modules/setting/graphql/types/StoreSetting/StoreSetting.resolvers.js +92 -92
- package/src/modules/setting/migration/Version-1.0.0.js +17 -17
- package/src/modules/setting/pages/admin/all/PaymentSettingMenu.jsx +26 -26
- package/src/modules/setting/pages/admin/all/SettingMenuGroup.jsx +31 -31
- package/src/modules/setting/pages/admin/all/StoreSettingMenu.jsx +26 -26
- package/src/modules/setting/pages/admin/paymentSetting/PaymentSetting.jsx +49 -49
- package/src/modules/setting/pages/admin/paymentSetting/index.js +10 -10
- package/src/modules/setting/pages/admin/paymentSetting/route.json +4 -4
- package/src/modules/setting/pages/admin/storeSetting/StoreSetting.jsx +407 -407
- package/src/modules/setting/pages/admin/storeSetting/index.js +10 -10
- package/src/modules/setting/pages/admin/storeSetting/route.json +4 -4
- package/src/modules/setting/services/setting.js +20 -20
- package/src/modules/stripe/api/capturePaymentIntent/[context]bodyParser[auth].js +5 -0
- package/src/modules/stripe/api/capturePaymentIntent/capturePaymentIntent.js +105 -0
- package/src/modules/stripe/api/capturePaymentIntent/payloadSchema.json +15 -0
- package/src/modules/stripe/api/capturePaymentIntent/route.json +5 -0
- package/src/modules/stripe/api/createPaymentIntent/[context]bodyParser[auth].js +5 -5
- package/src/modules/stripe/api/createPaymentIntent/createPaymentIntent.js +66 -57
- package/src/modules/stripe/api/createPaymentIntent/payloadSchema.json +19 -15
- package/src/modules/stripe/api/createPaymentIntent/route.json +5 -5
- package/src/modules/stripe/api/getPaymentMethods/registerStripe[sendMethods].js +22 -22
- package/src/modules/stripe/api/refundPaymentIntent/[context]bodyParser[auth].js +5 -0
- package/src/modules/stripe/api/refundPaymentIntent/payloadSchema.json +22 -0
- package/src/modules/stripe/api/refundPaymentIntent/refundPaymentIntent.js +105 -0
- package/src/modules/stripe/api/refundPaymentIntent/route.json +5 -0
- package/src/modules/stripe/api/stripeWebHook/[bodyJson]webhook.js +150 -107
- package/src/modules/stripe/api/stripeWebHook/bodyJson.js +5 -5
- package/src/modules/stripe/api/stripeWebHook/route.json +5 -5
- package/src/modules/stripe/bootstrap.js +75 -27
- package/src/modules/stripe/graphql/types/StripeSetting/StripeSetting.admin.graphql +4 -4
- package/src/modules/stripe/graphql/types/StripeSetting/StripeSetting.admin.resolvers.js +62 -62
- package/src/modules/stripe/graphql/types/StripeSetting/StripeSetting.graphql +6 -5
- package/src/modules/stripe/graphql/types/StripeSetting/StripeSetting.resolvers.js +54 -44
- package/src/modules/stripe/pages/admin/orderEdit/StripeCaptureButton.jsx +74 -0
- package/src/modules/stripe/pages/admin/orderEdit/StripeRefundButton.jsx +139 -0
- package/src/modules/stripe/pages/admin/paymentSetting/StripePayment.jsx +140 -117
- package/src/modules/stripe/pages/frontStore/checkout/Stripe.jsx +191 -137
- package/src/modules/stripe/pages/frontStore/stripeReturn/index.js +74 -0
- package/src/modules/stripe/pages/frontStore/stripeReturn/route.json +4 -0
- package/src/modules/stripe/services/cancelPayment.js +44 -0
- package/src/modules/tax/api/createTaxClass/[context]borderParser[auth].js +5 -5
- package/src/modules/tax/api/createTaxClass/createTaxClass.js +42 -42
- package/src/modules/tax/api/createTaxClass/payloadSchema.json +12 -12
- package/src/modules/tax/api/createTaxClass/route.json +5 -5
- package/src/modules/tax/api/createTaxRate/[context]borderParser[auth].js +5 -5
- package/src/modules/tax/api/createTaxRate/createTaxRate.js +69 -69
- package/src/modules/tax/api/createTaxRate/payloadSchema.json +34 -34
- package/src/modules/tax/api/createTaxRate/route.json +5 -5
- package/src/modules/tax/api/deleteTaxRate/[context]borderParser[auth].js +5 -5
- package/src/modules/tax/api/deleteTaxRate/deleteTaxRate.js +56 -56
- package/src/modules/tax/api/deleteTaxRate/route.json +5 -5
- package/src/modules/tax/api/updateTaxClass/[context]borderParser[auth].js +5 -5
- package/src/modules/tax/api/updateTaxClass/payloadSchema.json +12 -12
- package/src/modules/tax/api/updateTaxClass/route.json +5 -5
- package/src/modules/tax/api/updateTaxClass/updateTaxClass.js +63 -63
- package/src/modules/tax/api/updateTaxRate/[context]borderParser[auth].js +5 -5
- package/src/modules/tax/api/updateTaxRate/payloadSchema.json +34 -34
- package/src/modules/tax/api/updateTaxRate/route.json +5 -5
- package/src/modules/tax/api/updateTaxRate/updateTaxRate.js +69 -69
- package/src/modules/tax/bootstrap.js +68 -68
- package/src/modules/tax/graphql/types/Product/Price/ProductPrice.resolvers.js +15 -15
- package/src/modules/tax/graphql/types/TaxClass/TaxClass.admin.graphql +42 -42
- package/src/modules/tax/graphql/types/TaxClass/TaxClass.admin.resolvers.js +37 -37
- package/src/modules/tax/graphql/types/TaxSetting/TaxSetting.admin.graphql +5 -5
- package/src/modules/tax/graphql/types/TaxSetting/TaxSetting.admin.resolvers.js +34 -34
- package/src/modules/tax/graphql/types/TaxSetting/TaxSetting.graphql +3 -3
- package/src/modules/tax/graphql/types/TaxSetting/TaxSetting.resolvers.js +7 -7
- package/src/modules/tax/migration/Version-1.0.0.js +86 -86
- package/src/modules/tax/pages/admin/all/TaxSettingMenu.jsx +26 -26
- package/src/modules/tax/pages/admin/taxSetting/TaxSetting.jsx +230 -230
- package/src/modules/tax/pages/admin/taxSetting/index.js +10 -10
- package/src/modules/tax/pages/admin/taxSetting/route.json +4 -4
- package/src/modules/tax/services/TaxClassCollection.js +59 -59
- package/src/modules/tax/services/calculateTaxAmount.js +57 -57
- package/src/modules/tax/services/getTaxPercent.js +14 -14
- package/src/modules/tax/services/getTaxRates.js +66 -66
- package/src/modules/tax/services/registerCartItemTaxPercentField.js +76 -76
- package/src/modules/tax/services/registerDefaultTaxClassCollectionFilters.js +49 -49
- package/src/components/admin/oms/orderEdit/payment/Transactions.jsx +0 -40
- package/src/lib/middleware/tests/app/modules/basecopy/pages/global/[auth]notification[response].js +0 -3
- package/src/modules/base/pages/global/[auth]notification[response].js +0 -7
- package/src/modules/customer/services/addressValidator.js +0 -34
- package/src/modules/oms/pages/admin/orderEdit/PaymentStatus.jsx +0 -45
- package/src/modules/paypal/api/paypalGetAccessToken/[bodyParser]getAccessToken.js +0 -87
|
@@ -1,685 +1,685 @@
|
|
|
1
|
-
const { execute, insert } = require('@evershop/postgres-query-builder');
|
|
2
|
-
|
|
3
|
-
// eslint-disable-next-line no-multi-assign
|
|
4
|
-
module.exports = exports = async (connection) => {
|
|
5
|
-
await execute(
|
|
6
|
-
connection,
|
|
7
|
-
`CREATE TABLE "attribute" (
|
|
8
|
-
"attribute_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
9
|
-
"uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
|
|
10
|
-
"attribute_code" varchar NOT NULL,
|
|
11
|
-
"attribute_name" varchar NOT NULL,
|
|
12
|
-
"type" varchar NOT NULL,
|
|
13
|
-
"is_required" boolean NOT NULL DEFAULT FALSE,
|
|
14
|
-
"display_on_frontend" boolean NOT NULL DEFAULT FALSE,
|
|
15
|
-
"sort_order" INT NOT NULL DEFAULT 0,
|
|
16
|
-
"is_filterable" boolean NOT NULL DEFAULT FALSE,
|
|
17
|
-
CONSTRAINT "ATTRIBUTE_CODE_UNIQUE" UNIQUE ("attribute_code"),
|
|
18
|
-
CONSTRAINT "ATTRIBUTE_CODE_UUID_UNIQUE" UNIQUE ("uuid")
|
|
19
|
-
)`
|
|
20
|
-
);
|
|
21
|
-
|
|
22
|
-
const color = await insert('attribute')
|
|
23
|
-
.given({
|
|
24
|
-
attribute_code: 'color',
|
|
25
|
-
attribute_name: 'Color',
|
|
26
|
-
type: 'select',
|
|
27
|
-
is_required: 0,
|
|
28
|
-
display_on_frontend: 1,
|
|
29
|
-
is_filterable: 1
|
|
30
|
-
})
|
|
31
|
-
.execute(connection);
|
|
32
|
-
const size = await insert('attribute')
|
|
33
|
-
.given({
|
|
34
|
-
attribute_code: 'size',
|
|
35
|
-
attribute_name: 'Size',
|
|
36
|
-
type: 'select',
|
|
37
|
-
is_required: 0,
|
|
38
|
-
display_on_frontend: 1,
|
|
39
|
-
is_filterable: 1
|
|
40
|
-
})
|
|
41
|
-
.execute(connection);
|
|
42
|
-
await execute(
|
|
43
|
-
connection,
|
|
44
|
-
`CREATE TABLE "attribute_option" (
|
|
45
|
-
"attribute_option_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
46
|
-
"uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
|
|
47
|
-
"attribute_id" INT NOT NULL,
|
|
48
|
-
"attribute_code" varchar NOT NULL,
|
|
49
|
-
"option_text" varchar NOT NULL,
|
|
50
|
-
CONSTRAINT "ATTRIBUTE_OPTION_UUID_UNIQUE" UNIQUE ("uuid"),
|
|
51
|
-
CONSTRAINT "FK_ATTRIBUTE_OPTION" FOREIGN KEY ("attribute_id") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE
|
|
52
|
-
)`
|
|
53
|
-
);
|
|
54
|
-
|
|
55
|
-
await execute(
|
|
56
|
-
connection,
|
|
57
|
-
`CREATE INDEX "FK_ATTRIBUTE_OPTION" ON "attribute_option" ("attribute_id")`
|
|
58
|
-
);
|
|
59
|
-
|
|
60
|
-
await insert('attribute_option')
|
|
61
|
-
.given({
|
|
62
|
-
attribute_id: color.insertId,
|
|
63
|
-
attribute_code: 'color',
|
|
64
|
-
option_text: 'White'
|
|
65
|
-
})
|
|
66
|
-
.execute(connection);
|
|
67
|
-
|
|
68
|
-
await insert('attribute_option')
|
|
69
|
-
.given({
|
|
70
|
-
attribute_id: color.insertId,
|
|
71
|
-
attribute_code: 'color',
|
|
72
|
-
option_text: 'Black'
|
|
73
|
-
})
|
|
74
|
-
.execute(connection);
|
|
75
|
-
|
|
76
|
-
await insert('attribute_option')
|
|
77
|
-
.given({
|
|
78
|
-
attribute_id: color.insertId,
|
|
79
|
-
attribute_code: 'color',
|
|
80
|
-
option_text: 'Yellow'
|
|
81
|
-
})
|
|
82
|
-
.execute(connection);
|
|
83
|
-
|
|
84
|
-
await insert('attribute_option')
|
|
85
|
-
.given({
|
|
86
|
-
attribute_id: size.insertId,
|
|
87
|
-
attribute_code: 'size',
|
|
88
|
-
option_text: 'XXL'
|
|
89
|
-
})
|
|
90
|
-
.execute(connection);
|
|
91
|
-
|
|
92
|
-
await insert('attribute_option')
|
|
93
|
-
.given({
|
|
94
|
-
attribute_id: size.insertId,
|
|
95
|
-
attribute_code: 'size',
|
|
96
|
-
option_text: 'XL'
|
|
97
|
-
})
|
|
98
|
-
.execute(connection);
|
|
99
|
-
|
|
100
|
-
await insert('attribute_option')
|
|
101
|
-
.given({
|
|
102
|
-
attribute_id: size.insertId,
|
|
103
|
-
attribute_code: 'size',
|
|
104
|
-
option_text: 'SM'
|
|
105
|
-
})
|
|
106
|
-
.execute(connection);
|
|
107
|
-
|
|
108
|
-
await execute(
|
|
109
|
-
connection,
|
|
110
|
-
`CREATE TABLE "attribute_group" (
|
|
111
|
-
"attribute_group_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
112
|
-
"uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
|
|
113
|
-
"group_name" text NOT NULL,
|
|
114
|
-
"created_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
115
|
-
"updated_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
116
|
-
CONSTRAINT "ATTRIBUTE_GROUP_UUID_UNIQUE" UNIQUE ("uuid")
|
|
117
|
-
)`
|
|
118
|
-
);
|
|
119
|
-
|
|
120
|
-
const defaultGroup = await insert('attribute_group')
|
|
121
|
-
.given({ group_name: 'Default' })
|
|
122
|
-
.execute(connection);
|
|
123
|
-
|
|
124
|
-
await execute(
|
|
125
|
-
connection,
|
|
126
|
-
`CREATE TABLE "attribute_group_link" (
|
|
127
|
-
"attribute_group_link_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
128
|
-
"attribute_id" INT NOT NULL,
|
|
129
|
-
"group_id" INT NOT NULL,
|
|
130
|
-
CONSTRAINT "ATTRIBUTE_GROUP_LINK_UNIQUE" UNIQUE ("attribute_id","group_id"),
|
|
131
|
-
CONSTRAINT "FK_ATTRIBUTE_LINK" FOREIGN KEY ("attribute_id") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE CASCADE,
|
|
132
|
-
CONSTRAINT "FK_GROUP_LINK" FOREIGN KEY ("group_id") REFERENCES "attribute_group" ("attribute_group_id") ON DELETE CASCADE
|
|
133
|
-
)`
|
|
134
|
-
);
|
|
135
|
-
|
|
136
|
-
await execute(
|
|
137
|
-
connection,
|
|
138
|
-
`CREATE INDEX "FK_GROUP_LINK" ON "attribute_group_link" ("group_id")`
|
|
139
|
-
);
|
|
140
|
-
await execute(
|
|
141
|
-
connection,
|
|
142
|
-
`CREATE INDEX "FK_ATTRIBUTE_LINK" ON "attribute_group_link" ("attribute_id")`
|
|
143
|
-
);
|
|
144
|
-
|
|
145
|
-
await insert('attribute_group_link')
|
|
146
|
-
.given({
|
|
147
|
-
group_id: defaultGroup.insertId,
|
|
148
|
-
attribute_id: color.insertId
|
|
149
|
-
})
|
|
150
|
-
.execute(connection);
|
|
151
|
-
await insert('attribute_group_link')
|
|
152
|
-
.given({
|
|
153
|
-
group_id: defaultGroup.insertId,
|
|
154
|
-
attribute_id: size.insertId
|
|
155
|
-
})
|
|
156
|
-
.execute(connection);
|
|
157
|
-
|
|
158
|
-
await execute(
|
|
159
|
-
connection,
|
|
160
|
-
`CREATE TABLE "variant_group" (
|
|
161
|
-
"variant_group_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
162
|
-
"uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
|
|
163
|
-
"attribute_group_id" INT NOT NULL,
|
|
164
|
-
"attribute_one" INT DEFAULT NULL,
|
|
165
|
-
"attribute_two" INT DEFAULT NULL,
|
|
166
|
-
"attribute_three" INT DEFAULT NULL,
|
|
167
|
-
"attribute_four" INT DEFAULT NULL,
|
|
168
|
-
"attribute_five" INT DEFAULT NULL,
|
|
169
|
-
"visibility" boolean NOT NULL DEFAULT FALSE,
|
|
170
|
-
CONSTRAINT "VARIANT_GROUP_UUID_UNIQUE" UNIQUE ("uuid"),
|
|
171
|
-
CONSTRAINT "FK_ATTRIBUTE_GROUP_VARIANT" FOREIGN KEY ("attribute_group_id") REFERENCES "attribute_group" ("attribute_group_id") ON DELETE CASCADE ON UPDATE NO ACTION,
|
|
172
|
-
CONSTRAINT "FK_ATTRIBUTE_VARIANT_FIVE" FOREIGN KEY ("attribute_five") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE NO ACTION,
|
|
173
|
-
CONSTRAINT "FK_ATTRIBUTE_VARIANT_FOUR" FOREIGN KEY ("attribute_four") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE NO ACTION,
|
|
174
|
-
CONSTRAINT "FK_ATTRIBUTE_VARIANT_ONE" FOREIGN KEY ("attribute_one") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE NO ACTION,
|
|
175
|
-
CONSTRAINT "FK_ATTRIBUTE_VARIANT_THREE" FOREIGN KEY ("attribute_three") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE NO ACTION,
|
|
176
|
-
CONSTRAINT "FK_ATTRIBUTE_VARIANT_TWO" FOREIGN KEY ("attribute_two") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE NO ACTION
|
|
177
|
-
)`
|
|
178
|
-
);
|
|
179
|
-
|
|
180
|
-
await execute(
|
|
181
|
-
connection,
|
|
182
|
-
`CREATE INDEX "FK_ATTRIBUTE_VARIANT_ONE" ON "variant_group" ("attribute_one")`
|
|
183
|
-
);
|
|
184
|
-
await execute(
|
|
185
|
-
connection,
|
|
186
|
-
`CREATE INDEX "FK_ATTRIBUTE_VARIANT_TWO" ON "variant_group" ("attribute_two")`
|
|
187
|
-
);
|
|
188
|
-
await execute(
|
|
189
|
-
connection,
|
|
190
|
-
`CREATE INDEX "FK_ATTRIBUTE_VARIANT_THREE" ON "variant_group" ("attribute_three")`
|
|
191
|
-
);
|
|
192
|
-
await execute(
|
|
193
|
-
connection,
|
|
194
|
-
`CREATE INDEX "FK_ATTRIBUTE_VARIANT_FOUR" ON "variant_group" ("attribute_four")`
|
|
195
|
-
);
|
|
196
|
-
await execute(
|
|
197
|
-
connection,
|
|
198
|
-
`CREATE INDEX "FK_ATTRIBUTE_VARIANT_FIVE" ON "variant_group" ("attribute_five")`
|
|
199
|
-
);
|
|
200
|
-
await execute(
|
|
201
|
-
connection,
|
|
202
|
-
`CREATE INDEX "FK_ATTRIBUTE_GROUP_VARIANT" ON "variant_group" ("attribute_group_id")`
|
|
203
|
-
);
|
|
204
|
-
|
|
205
|
-
await execute(
|
|
206
|
-
connection,
|
|
207
|
-
`CREATE TABLE "product" (
|
|
208
|
-
"product_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
209
|
-
"uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
|
|
210
|
-
"type" varchar NOT NULL DEFAULT 'simple',
|
|
211
|
-
"variant_group_id" INT DEFAULT NULL,
|
|
212
|
-
"visibility" boolean NOT NULL DEFAULT TRUE,
|
|
213
|
-
"group_id" INT DEFAULT 1,
|
|
214
|
-
"image" varchar DEFAULT NULL,
|
|
215
|
-
"sku" varchar NOT NULL,
|
|
216
|
-
"price" decimal(12,4) NOT NULL,
|
|
217
|
-
"qty" INT NOT NULL,
|
|
218
|
-
"weight" decimal(12,4) DEFAULT NULL,
|
|
219
|
-
"manage_stock" boolean NOT NULL,
|
|
220
|
-
"stock_availability" boolean NOT NULL,
|
|
221
|
-
"tax_class" smallint DEFAULT NULL,
|
|
222
|
-
"status" boolean NOT NULL DEFAULT FALSE,
|
|
223
|
-
"created_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
224
|
-
"updated_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
225
|
-
CONSTRAINT "PRODUCT_UUID_UNIQUE" UNIQUE ("uuid"),
|
|
226
|
-
CONSTRAINT "PRODUCT_SKU_UNIQUE" UNIQUE ("sku"),
|
|
227
|
-
CONSTRAINT "UNSIGNED_PRICE" CHECK(price >= 0),
|
|
228
|
-
CONSTRAINT "UNSIGNED_WEIGHT" CHECK(weight >= 0),
|
|
229
|
-
CONSTRAINT "FK_PRODUCT_ATTRIBUTE_GROUP" FOREIGN KEY ("group_id") REFERENCES "attribute_group" ("attribute_group_id") ON DELETE SET NULL,
|
|
230
|
-
CONSTRAINT "FK_PRODUCT_VARIANT_GROUP" FOREIGN KEY ("variant_group_id") REFERENCES "variant_group" ("variant_group_id") ON DELETE SET NULL
|
|
231
|
-
)`
|
|
232
|
-
);
|
|
233
|
-
|
|
234
|
-
await execute(
|
|
235
|
-
connection,
|
|
236
|
-
`CREATE INDEX "FK_PRODUCT_ATTRIBUTE_GROUP" ON "product" ("group_id")`
|
|
237
|
-
);
|
|
238
|
-
await execute(
|
|
239
|
-
connection,
|
|
240
|
-
`CREATE INDEX "FK_PRODUCT_VARIANT_GROUP" ON "product" ("variant_group_id")`
|
|
241
|
-
);
|
|
242
|
-
|
|
243
|
-
await execute(
|
|
244
|
-
connection,
|
|
245
|
-
`CREATE TABLE "product_attribute_value_index" (
|
|
246
|
-
"product_attribute_value_index_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
247
|
-
"uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
|
|
248
|
-
"product_id" INT NOT NULL,
|
|
249
|
-
"attribute_id" INT NOT NULL,
|
|
250
|
-
"option_id" INT DEFAULT NULL,
|
|
251
|
-
"option_text" text DEFAULT NULL,
|
|
252
|
-
CONSTRAINT "PRODUCT_ATTRIBUTE_VALUE_UUID_UNIQUE" UNIQUE ("uuid"),
|
|
253
|
-
CONSTRAINT "OPTION_VALUE_UNIQUE" UNIQUE ("product_id","attribute_id","option_id"),
|
|
254
|
-
CONSTRAINT "FK_ATTRIBUTE_OPTION_VALUE_LINK" FOREIGN KEY ("option_id") REFERENCES "attribute_option" ("attribute_option_id") ON DELETE CASCADE,
|
|
255
|
-
CONSTRAINT "FK_ATTRIBUTE_VALUE_LINK" FOREIGN KEY ("attribute_id") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE,
|
|
256
|
-
CONSTRAINT "FK_PRODUCT_ATTRIBUTE_LINK" FOREIGN KEY ("product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
|
|
257
|
-
)`
|
|
258
|
-
);
|
|
259
|
-
await execute(
|
|
260
|
-
connection,
|
|
261
|
-
`CREATE INDEX "FK_ATTRIBUTE_VALUE_LINK" ON "product_attribute_value_index" ("attribute_id")`
|
|
262
|
-
);
|
|
263
|
-
await execute(
|
|
264
|
-
connection,
|
|
265
|
-
`CREATE INDEX "FK_ATTRIBUTE_OPTION_VALUE_LINK" ON "product_attribute_value_index" ("option_id")`
|
|
266
|
-
);
|
|
267
|
-
await execute(
|
|
268
|
-
connection,
|
|
269
|
-
`CREATE INDEX "FK_PRODUCT_ATTRIBUTE_LINK" ON "product_attribute_value_index" ("product_id")`
|
|
270
|
-
);
|
|
271
|
-
|
|
272
|
-
await execute(
|
|
273
|
-
connection,
|
|
274
|
-
`CREATE TABLE "product_custom_option" (
|
|
275
|
-
"product_custom_option_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
276
|
-
"uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
|
|
277
|
-
"product_custom_option_product_id" INT NOT NULL,
|
|
278
|
-
"option_name" varchar NOT NULL,
|
|
279
|
-
"option_type" varchar NOT NULL,
|
|
280
|
-
"is_required" boolean NOT NULL DEFAULT FALSE,
|
|
281
|
-
"sort_order" INT DEFAULT NULL,
|
|
282
|
-
CONSTRAINT "PRODUCT_CUSTOM_OPTION_UUID_UNIQUE" UNIQUE ("uuid"),
|
|
283
|
-
CONSTRAINT "FK_PRODUCT_CUSTOM_OPTION" FOREIGN KEY ("product_custom_option_product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
|
|
284
|
-
)`
|
|
285
|
-
);
|
|
286
|
-
await execute(
|
|
287
|
-
connection,
|
|
288
|
-
`CREATE INDEX "FK_PRODUCT_CUSTOM_OPTION" ON "product_custom_option" ("product_custom_option_product_id")`
|
|
289
|
-
);
|
|
290
|
-
|
|
291
|
-
await execute(
|
|
292
|
-
connection,
|
|
293
|
-
`CREATE TABLE "product_custom_option_value" (
|
|
294
|
-
"product_custom_option_value_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
295
|
-
"uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
|
|
296
|
-
"option_id" INT NOT NULL,
|
|
297
|
-
"extra_price" decimal(12,4) DEFAULT NULL,
|
|
298
|
-
"sort_order" INT DEFAULT NULL,
|
|
299
|
-
"value" varchar NOT NULL,
|
|
300
|
-
CONSTRAINT "PRODUCT_CUSTOM_OPTION_VALUE_UUID_UNIQUE" UNIQUE ("uuid"),
|
|
301
|
-
CONSTRAINT "FK_CUSTOM_OPTION_VALUE" FOREIGN KEY ("option_id") REFERENCES "product_custom_option" ("product_custom_option_id") ON DELETE CASCADE
|
|
302
|
-
)`
|
|
303
|
-
);
|
|
304
|
-
await execute(
|
|
305
|
-
connection,
|
|
306
|
-
`CREATE INDEX "FK_CUSTOM_OPTION_VALUE" ON "product_custom_option_value" ("option_id")`
|
|
307
|
-
);
|
|
308
|
-
|
|
309
|
-
await execute(
|
|
310
|
-
connection,
|
|
311
|
-
`CREATE TABLE "product_description" (
|
|
312
|
-
"product_description_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
313
|
-
"product_description_product_id" INT NOT NULL,
|
|
314
|
-
"name" varchar NOT NULL,
|
|
315
|
-
"description" text DEFAULT NULL,
|
|
316
|
-
"short_description" text DEFAULT NULL,
|
|
317
|
-
"url_key" varchar NOT NULL,
|
|
318
|
-
"meta_title" text DEFAULT NULL,
|
|
319
|
-
"meta_description" text DEFAULT NULL,
|
|
320
|
-
"meta_keywords" text DEFAULT NULL,
|
|
321
|
-
CONSTRAINT "PRODUCT_ID_UNIQUE" UNIQUE ("product_description_product_id"),
|
|
322
|
-
CONSTRAINT "PRODUCT_URL_KEY_UNIQUE" UNIQUE ("url_key"),
|
|
323
|
-
CONSTRAINT "FK_PRODUCT_DESCRIPTION" FOREIGN KEY ("product_description_product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
|
|
324
|
-
)`
|
|
325
|
-
);
|
|
326
|
-
await execute(
|
|
327
|
-
connection,
|
|
328
|
-
`CREATE INDEX "FK_PRODUCT_DESCRIPTION" ON "product_description" ("product_description_product_id")`
|
|
329
|
-
);
|
|
330
|
-
|
|
331
|
-
await execute(
|
|
332
|
-
connection,
|
|
333
|
-
`CREATE TABLE "product_image" (
|
|
334
|
-
"product_image_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
335
|
-
"uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
|
|
336
|
-
"product_image_product_id" INT NOT NULL,
|
|
337
|
-
"image" varchar NOT NULL,
|
|
338
|
-
CONSTRAINT "PRODUCT_IMAGE_UUID_UNIQUE" UNIQUE ("uuid"),
|
|
339
|
-
CONSTRAINT "FK_PRODUCT_IMAGE_LINK" FOREIGN KEY ("product_image_product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
|
|
340
|
-
)`
|
|
341
|
-
);
|
|
342
|
-
await execute(
|
|
343
|
-
connection,
|
|
344
|
-
`CREATE INDEX "FK_PRODUCT_IMAGE_LINK" ON "product_image" ("product_image_product_id")`
|
|
345
|
-
);
|
|
346
|
-
|
|
347
|
-
await execute(
|
|
348
|
-
connection,
|
|
349
|
-
`CREATE TABLE "category" (
|
|
350
|
-
"category_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
351
|
-
"uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
|
|
352
|
-
"status" boolean NOT NULL,
|
|
353
|
-
"parent_id" INT DEFAULT NULL,
|
|
354
|
-
"include_in_nav" boolean NOT NULL,
|
|
355
|
-
"position" smallint DEFAULT NULL,
|
|
356
|
-
"show_products" boolean DEFAULT TRUE,
|
|
357
|
-
"created_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
358
|
-
"updated_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
359
|
-
CONSTRAINT "CATEGORY_UUID_UNIQUE" UNIQUE ("uuid")
|
|
360
|
-
)`
|
|
361
|
-
);
|
|
362
|
-
|
|
363
|
-
await execute(
|
|
364
|
-
connection,
|
|
365
|
-
`CREATE TABLE "product_category" (
|
|
366
|
-
"product_category_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
367
|
-
"category_id" INT NOT NULL,
|
|
368
|
-
"product_id" INT NOT NULL,
|
|
369
|
-
CONSTRAINT "PRODUCT_CATEGORY_UNIQUE" UNIQUE ("category_id","product_id"),
|
|
370
|
-
CONSTRAINT "FK_CATEGORY_PRODUCT_LINK" FOREIGN KEY ("category_id") REFERENCES "category" ("category_id") ON DELETE CASCADE,
|
|
371
|
-
CONSTRAINT "FK_PRODUCT_CATEGORY_LINK" FOREIGN KEY ("product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
|
|
372
|
-
)`
|
|
373
|
-
);
|
|
374
|
-
await execute(
|
|
375
|
-
connection,
|
|
376
|
-
`CREATE INDEX "FK_CATEGORY_PRODUCT_LINK" ON "product_category" ("category_id")`
|
|
377
|
-
);
|
|
378
|
-
await execute(
|
|
379
|
-
connection,
|
|
380
|
-
`CREATE INDEX "FK_PRODUCT_CATEGORY_LINK" ON "product_category" ("product_id")`
|
|
381
|
-
);
|
|
382
|
-
|
|
383
|
-
await execute(
|
|
384
|
-
connection,
|
|
385
|
-
`CREATE TABLE "category_description" (
|
|
386
|
-
"category_description_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
387
|
-
"category_description_category_id" INT NOT NULL,
|
|
388
|
-
"name" varchar NOT NULL,
|
|
389
|
-
"short_description" text DEFAULT NULL,
|
|
390
|
-
"description" text DEFAULT NULL,
|
|
391
|
-
"image" varchar DEFAULT NULL,
|
|
392
|
-
"meta_title" text DEFAULT NULL,
|
|
393
|
-
"meta_keywords" text DEFAULT NULL,
|
|
394
|
-
"meta_description" text DEFAULT NULL,
|
|
395
|
-
"url_key" varchar NOT NULL,
|
|
396
|
-
CONSTRAINT "CATEGORY_ID_UNIQUE" UNIQUE ("category_description_category_id"),
|
|
397
|
-
CONSTRAINT "CATEGORY_URL_KEY_UNIQUE" UNIQUE ("url_key"),
|
|
398
|
-
CONSTRAINT "FK_CATEGORY_DESCRIPTION" FOREIGN KEY ("category_description_category_id") REFERENCES "category" ("category_id") ON DELETE CASCADE
|
|
399
|
-
)`
|
|
400
|
-
);
|
|
401
|
-
await execute(
|
|
402
|
-
connection,
|
|
403
|
-
`CREATE INDEX "FK_CATEGORY_DESCRIPTION" ON "category_description" ("category_description_category_id")`
|
|
404
|
-
);
|
|
405
|
-
|
|
406
|
-
// Create 3 default categories, Kids, Men, Women
|
|
407
|
-
const kids = await insert('category')
|
|
408
|
-
.given({
|
|
409
|
-
status: 1,
|
|
410
|
-
include_in_nav: 1
|
|
411
|
-
})
|
|
412
|
-
.execute(connection);
|
|
413
|
-
|
|
414
|
-
await insert('category_description')
|
|
415
|
-
.given({
|
|
416
|
-
category_description_category_id: kids.insertId,
|
|
417
|
-
name: 'Kids',
|
|
418
|
-
url_key: 'kids',
|
|
419
|
-
meta_title: 'Kids',
|
|
420
|
-
meta_description: 'Kids',
|
|
421
|
-
meta_keywords: 'Kids',
|
|
422
|
-
description: 'Kids'
|
|
423
|
-
})
|
|
424
|
-
.execute(connection);
|
|
425
|
-
|
|
426
|
-
const women = await insert('category')
|
|
427
|
-
.given({
|
|
428
|
-
status: 1,
|
|
429
|
-
include_in_nav: 1
|
|
430
|
-
})
|
|
431
|
-
.execute(connection);
|
|
432
|
-
|
|
433
|
-
await insert('category_description')
|
|
434
|
-
.given({
|
|
435
|
-
category_description_category_id: women.insertId,
|
|
436
|
-
name: 'Women',
|
|
437
|
-
url_key: 'women',
|
|
438
|
-
meta_title: 'Women',
|
|
439
|
-
meta_description: 'Women',
|
|
440
|
-
meta_keywords: 'Women',
|
|
441
|
-
description: 'Women'
|
|
442
|
-
})
|
|
443
|
-
.execute(connection);
|
|
444
|
-
|
|
445
|
-
const men = await insert('category')
|
|
446
|
-
.given({
|
|
447
|
-
status: 1,
|
|
448
|
-
include_in_nav: 1
|
|
449
|
-
})
|
|
450
|
-
.execute(connection);
|
|
451
|
-
|
|
452
|
-
await insert('category_description')
|
|
453
|
-
.given({
|
|
454
|
-
category_description_category_id: men.insertId,
|
|
455
|
-
name: 'Men',
|
|
456
|
-
url_key: 'men',
|
|
457
|
-
meta_title: 'Men',
|
|
458
|
-
meta_description: 'Men',
|
|
459
|
-
meta_keywords: 'Men',
|
|
460
|
-
description: 'Men'
|
|
461
|
-
})
|
|
462
|
-
.execute(connection);
|
|
463
|
-
|
|
464
|
-
// COLLECTION
|
|
465
|
-
await execute(
|
|
466
|
-
connection,
|
|
467
|
-
`CREATE TABLE "collection" (
|
|
468
|
-
"collection_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
469
|
-
"uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
|
|
470
|
-
"name" varchar NOT NULL,
|
|
471
|
-
"description" text DEFAULT NULL,
|
|
472
|
-
"code" varchar NOT NULL,
|
|
473
|
-
"created_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
474
|
-
"updated_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
475
|
-
CONSTRAINT "COLLECTION_CODE_UNIQUE" UNIQUE ("code"),
|
|
476
|
-
CONSTRAINT "COLLECTION_UUID_UNIQUE" UNIQUE ("uuid")
|
|
477
|
-
)`
|
|
478
|
-
);
|
|
479
|
-
|
|
480
|
-
await execute(
|
|
481
|
-
connection,
|
|
482
|
-
`CREATE TABLE "product_collection" (
|
|
483
|
-
"product_collection_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
484
|
-
"collection_id" INT NOT NULL,
|
|
485
|
-
"product_id" INT NOT NULL,
|
|
486
|
-
CONSTRAINT "PRODUCT_COLLECTION_UNIQUE" UNIQUE ("collection_id","product_id"),
|
|
487
|
-
CONSTRAINT "FK_COLLECTION_PRODUCT_LINK" FOREIGN KEY ("collection_id") REFERENCES "collection" ("collection_id") ON DELETE CASCADE,
|
|
488
|
-
CONSTRAINT "FK_PRODUCT_COLLECTION_LINK" FOREIGN KEY ("product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
|
|
489
|
-
)`
|
|
490
|
-
);
|
|
491
|
-
await execute(
|
|
492
|
-
connection,
|
|
493
|
-
`CREATE INDEX "FK_COLLECTION_PRODUCT_LINK" ON "product_collection" ("collection_id")`
|
|
494
|
-
);
|
|
495
|
-
await execute(
|
|
496
|
-
connection,
|
|
497
|
-
`CREATE INDEX "FK_PRODUCT_COLLECTION_LINK" ON "product_collection" ("product_id")`
|
|
498
|
-
);
|
|
499
|
-
|
|
500
|
-
/* CREATE SOME TRIGGERS */
|
|
501
|
-
// Prevent deleting a default attribute group
|
|
502
|
-
await execute(
|
|
503
|
-
connection,
|
|
504
|
-
`CREATE OR REPLACE FUNCTION prevent_delete_default_attribute_group()
|
|
505
|
-
RETURNS TRIGGER
|
|
506
|
-
LANGUAGE PLPGSQL
|
|
507
|
-
AS
|
|
508
|
-
$$
|
|
509
|
-
BEGIN
|
|
510
|
-
IF OLD.attribute_group_id = 1 THEN
|
|
511
|
-
RAISE EXCEPTION 'Cannot delete default attribute group';
|
|
512
|
-
END IF;
|
|
513
|
-
RETURN OLD;
|
|
514
|
-
END;
|
|
515
|
-
$$`
|
|
516
|
-
);
|
|
517
|
-
await execute(
|
|
518
|
-
connection,
|
|
519
|
-
`CREATE TRIGGER "PREVENT_DELETING_THE_DEFAULT_ATTRIBUTE_GROUP"
|
|
520
|
-
BEFORE DELETE ON attribute_group
|
|
521
|
-
FOR EACH ROW
|
|
522
|
-
EXECUTE PROCEDURE prevent_delete_default_attribute_group();`
|
|
523
|
-
);
|
|
524
|
-
|
|
525
|
-
// Prevent changing product attribute group if product has variants
|
|
526
|
-
await execute(
|
|
527
|
-
connection,
|
|
528
|
-
`CREATE OR REPLACE FUNCTION prevent_change_attribute_group()
|
|
529
|
-
RETURNS TRIGGER
|
|
530
|
-
LANGUAGE PLPGSQL
|
|
531
|
-
AS
|
|
532
|
-
$$
|
|
533
|
-
BEGIN
|
|
534
|
-
IF OLD.group_id != NEW.group_id AND OLD.variant_group_id IS NOT NULL THEN
|
|
535
|
-
RAISE EXCEPTION 'Cannot change attribute group of product with variants';
|
|
536
|
-
END IF;
|
|
537
|
-
RETURN NEW;
|
|
538
|
-
END;
|
|
539
|
-
$$`
|
|
540
|
-
);
|
|
541
|
-
await execute(
|
|
542
|
-
connection,
|
|
543
|
-
`CREATE TRIGGER "PREVENT_CHANGING_ATTRIBUTE_GROUP_OF_PRODUCT_WITH_VARIANTS"
|
|
544
|
-
BEFORE UPDATE ON product
|
|
545
|
-
FOR EACH ROW
|
|
546
|
-
EXECUTE PROCEDURE prevent_change_attribute_group();`
|
|
547
|
-
);
|
|
548
|
-
|
|
549
|
-
// Delete product attribute value and variant group when attribute is removed from group
|
|
550
|
-
await execute(
|
|
551
|
-
connection,
|
|
552
|
-
`CREATE OR REPLACE FUNCTION remove_attribute_from_group()
|
|
553
|
-
RETURNS TRIGGER
|
|
554
|
-
LANGUAGE PLPGSQL
|
|
555
|
-
AS
|
|
556
|
-
$$
|
|
557
|
-
BEGIN
|
|
558
|
-
DELETE FROM product_attribute_value_index WHERE product_attribute_value_index.attribute_id = OLD.attribute_id AND product_attribute_value_index.product_id IN (SELECT product.product_id FROM product WHERE product.group_id = OLD.group_id);
|
|
559
|
-
DELETE FROM variant_group WHERE variant_group.attribute_group_id = OLD.group_id AND (variant_group.attribute_one = OLD.attribute_id OR variant_group.attribute_two = OLD.attribute_id OR variant_group.attribute_three = OLD.attribute_id OR variant_group.attribute_four = OLD.attribute_id OR variant_group.attribute_five = OLD.attribute_id);
|
|
560
|
-
RETURN OLD;
|
|
561
|
-
END;
|
|
562
|
-
$$;`
|
|
563
|
-
);
|
|
564
|
-
await execute(
|
|
565
|
-
connection,
|
|
566
|
-
`CREATE TRIGGER "TRIGGER_AFTER_REMOVE_ATTRIBUTE_FROM_GROUP" AFTER DELETE ON "attribute_group_link"
|
|
567
|
-
FOR EACH ROW
|
|
568
|
-
EXECUTE PROCEDURE remove_attribute_from_group();
|
|
569
|
-
`
|
|
570
|
-
);
|
|
571
|
-
|
|
572
|
-
// Update product attribute value option text when option is updated
|
|
573
|
-
await execute(
|
|
574
|
-
connection,
|
|
575
|
-
`CREATE OR REPLACE FUNCTION update_product_attribute_option_value_text()
|
|
576
|
-
RETURNS TRIGGER
|
|
577
|
-
LANGUAGE PLPGSQL
|
|
578
|
-
AS
|
|
579
|
-
$$
|
|
580
|
-
BEGIN
|
|
581
|
-
UPDATE "product_attribute_value_index" SET "option_text" = NEW.option_text
|
|
582
|
-
WHERE "product_attribute_value_index".option_id = NEW.attribute_option_id AND "product_attribute_value_index".attribute_id = NEW.attribute_id;
|
|
583
|
-
RETURN NEW;
|
|
584
|
-
END;
|
|
585
|
-
$$;`
|
|
586
|
-
);
|
|
587
|
-
await execute(
|
|
588
|
-
connection,
|
|
589
|
-
`CREATE TRIGGER "TRIGGER_AFTER_ATTRIBUTE_OPTION_UPDATE" AFTER UPDATE ON "attribute_option" FOR EACH ROW
|
|
590
|
-
EXECUTE PROCEDURE update_product_attribute_option_value_text();
|
|
591
|
-
`
|
|
592
|
-
);
|
|
593
|
-
|
|
594
|
-
// Delete product attribute value index after option is deleted
|
|
595
|
-
await execute(
|
|
596
|
-
connection,
|
|
597
|
-
`CREATE OR REPLACE FUNCTION delete_product_attribute_value_index()
|
|
598
|
-
RETURNS TRIGGER
|
|
599
|
-
LANGUAGE PLPGSQL
|
|
600
|
-
AS
|
|
601
|
-
$$
|
|
602
|
-
BEGIN
|
|
603
|
-
DELETE FROM "product_attribute_value_index" WHERE "product_attribute_value_index".option_id = OLD.attribute_option_id AND "product_attribute_value_index"."attribute_id" = OLD.attribute_id;
|
|
604
|
-
RETURN OLD;
|
|
605
|
-
END;
|
|
606
|
-
$$;`
|
|
607
|
-
);
|
|
608
|
-
await execute(
|
|
609
|
-
connection,
|
|
610
|
-
`CREATE TRIGGER "TRIGGER_AFTER_DELETE_ATTRIBUTE_OPTION" AFTER DELETE ON "attribute_option" FOR EACH ROW
|
|
611
|
-
EXECUTE PROCEDURE delete_product_attribute_value_index();
|
|
612
|
-
`
|
|
613
|
-
);
|
|
614
|
-
|
|
615
|
-
// Update variant group visibility after new product is added
|
|
616
|
-
await execute(
|
|
617
|
-
connection,
|
|
618
|
-
`CREATE OR REPLACE FUNCTION update_variant_group_visibility()
|
|
619
|
-
RETURNS TRIGGER
|
|
620
|
-
LANGUAGE PLPGSQL
|
|
621
|
-
AS
|
|
622
|
-
$$
|
|
623
|
-
BEGIN
|
|
624
|
-
UPDATE "variant_group" SET visibility = (SELECT bool_or(visibility) FROM "product" WHERE "product"."variant_group_id" = NEW.variant_group_id AND "product"."status" = TRUE) WHERE "variant_group"."variant_group_id" = NEW.variant_group_id;
|
|
625
|
-
RETURN NEW;
|
|
626
|
-
END;
|
|
627
|
-
$$;`
|
|
628
|
-
);
|
|
629
|
-
await execute(
|
|
630
|
-
connection,
|
|
631
|
-
`CREATE CONSTRAINT TRIGGER "TRIGGER_AFTER_INSERT_PRODUCT" AFTER INSERT ON "product"
|
|
632
|
-
DEFERRABLE INITIALLY IMMEDIATE
|
|
633
|
-
FOR EACH ROW
|
|
634
|
-
EXECUTE PROCEDURE update_variant_group_visibility();`
|
|
635
|
-
);
|
|
636
|
-
|
|
637
|
-
// Update product attribute index, variant group visibility and product visibility after product is updated
|
|
638
|
-
await execute(
|
|
639
|
-
connection,
|
|
640
|
-
`CREATE OR REPLACE FUNCTION update_attribute_index_and_variant_group_visibility()
|
|
641
|
-
RETURNS TRIGGER
|
|
642
|
-
LANGUAGE PLPGSQL
|
|
643
|
-
AS
|
|
644
|
-
$$
|
|
645
|
-
BEGIN
|
|
646
|
-
DELETE FROM "product_attribute_value_index"
|
|
647
|
-
WHERE "product_attribute_value_index"."product_id" = NEW.product_id
|
|
648
|
-
AND "product_attribute_value_index"."attribute_id" NOT IN (SELECT "attribute_group_link"."attribute_id" FROM "attribute_group_link" WHERE "attribute_group_link"."group_id" = NEW.group_id);
|
|
649
|
-
UPDATE "variant_group" SET visibility = (SELECT bool_or(visibility) FROM "product" WHERE "product"."variant_group_id" = NEW.variant_group_id AND "product"."status" = TRUE GROUP BY "product"."variant_group_id") WHERE "variant_group"."variant_group_id" = NEW.variant_group_id;
|
|
650
|
-
RETURN NEW;
|
|
651
|
-
END;
|
|
652
|
-
$$;`
|
|
653
|
-
);
|
|
654
|
-
await execute(
|
|
655
|
-
connection,
|
|
656
|
-
`CREATE CONSTRAINT TRIGGER "TRIGGER_PRODUCT_AFTER_UPDATE" AFTER UPDATE ON "product"
|
|
657
|
-
DEFERRABLE INITIALLY DEFERRED
|
|
658
|
-
FOR EACH ROW
|
|
659
|
-
EXECUTE PROCEDURE update_attribute_index_and_variant_group_visibility();
|
|
660
|
-
`
|
|
661
|
-
);
|
|
662
|
-
|
|
663
|
-
// Delete variant group when attribute type is changed from select to something else
|
|
664
|
-
await execute(
|
|
665
|
-
connection,
|
|
666
|
-
`CREATE OR REPLACE FUNCTION delete_variant_group_after_attribute_type_changed()
|
|
667
|
-
RETURNS TRIGGER
|
|
668
|
-
LANGUAGE PLPGSQL
|
|
669
|
-
AS
|
|
670
|
-
$$
|
|
671
|
-
BEGIN
|
|
672
|
-
IF (OLD.type = 'select' AND NEW.type <> 'select') THEN
|
|
673
|
-
DELETE FROM "variant_group" WHERE ("variant_group".attribute_one = OLD.attribute_id OR "variant_group".attribute_two = OLD.attribute_id OR "variant_group".attribute_three = OLD.attribute_id OR "variant_group".attribute_four = OLD.attribute_id OR "variant_group".attribute_five = OLD.attribute_id);
|
|
674
|
-
END IF;
|
|
675
|
-
RETURN NEW;
|
|
676
|
-
END
|
|
677
|
-
$$;`
|
|
678
|
-
);
|
|
679
|
-
await execute(
|
|
680
|
-
connection,
|
|
681
|
-
`CREATE TRIGGER "TRIGGER_AFTER_UPDATE_ATTRIBUTE" AFTER UPDATE ON "attribute" FOR EACH ROW
|
|
682
|
-
EXECUTE PROCEDURE delete_variant_group_after_attribute_type_changed();
|
|
683
|
-
`
|
|
684
|
-
);
|
|
685
|
-
};
|
|
1
|
+
const { execute, insert } = require('@evershop/postgres-query-builder');
|
|
2
|
+
|
|
3
|
+
// eslint-disable-next-line no-multi-assign
|
|
4
|
+
module.exports = exports = async (connection) => {
|
|
5
|
+
await execute(
|
|
6
|
+
connection,
|
|
7
|
+
`CREATE TABLE "attribute" (
|
|
8
|
+
"attribute_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
9
|
+
"uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
|
|
10
|
+
"attribute_code" varchar NOT NULL,
|
|
11
|
+
"attribute_name" varchar NOT NULL,
|
|
12
|
+
"type" varchar NOT NULL,
|
|
13
|
+
"is_required" boolean NOT NULL DEFAULT FALSE,
|
|
14
|
+
"display_on_frontend" boolean NOT NULL DEFAULT FALSE,
|
|
15
|
+
"sort_order" INT NOT NULL DEFAULT 0,
|
|
16
|
+
"is_filterable" boolean NOT NULL DEFAULT FALSE,
|
|
17
|
+
CONSTRAINT "ATTRIBUTE_CODE_UNIQUE" UNIQUE ("attribute_code"),
|
|
18
|
+
CONSTRAINT "ATTRIBUTE_CODE_UUID_UNIQUE" UNIQUE ("uuid")
|
|
19
|
+
)`
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
const color = await insert('attribute')
|
|
23
|
+
.given({
|
|
24
|
+
attribute_code: 'color',
|
|
25
|
+
attribute_name: 'Color',
|
|
26
|
+
type: 'select',
|
|
27
|
+
is_required: 0,
|
|
28
|
+
display_on_frontend: 1,
|
|
29
|
+
is_filterable: 1
|
|
30
|
+
})
|
|
31
|
+
.execute(connection);
|
|
32
|
+
const size = await insert('attribute')
|
|
33
|
+
.given({
|
|
34
|
+
attribute_code: 'size',
|
|
35
|
+
attribute_name: 'Size',
|
|
36
|
+
type: 'select',
|
|
37
|
+
is_required: 0,
|
|
38
|
+
display_on_frontend: 1,
|
|
39
|
+
is_filterable: 1
|
|
40
|
+
})
|
|
41
|
+
.execute(connection);
|
|
42
|
+
await execute(
|
|
43
|
+
connection,
|
|
44
|
+
`CREATE TABLE "attribute_option" (
|
|
45
|
+
"attribute_option_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
46
|
+
"uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
|
|
47
|
+
"attribute_id" INT NOT NULL,
|
|
48
|
+
"attribute_code" varchar NOT NULL,
|
|
49
|
+
"option_text" varchar NOT NULL,
|
|
50
|
+
CONSTRAINT "ATTRIBUTE_OPTION_UUID_UNIQUE" UNIQUE ("uuid"),
|
|
51
|
+
CONSTRAINT "FK_ATTRIBUTE_OPTION" FOREIGN KEY ("attribute_id") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE
|
|
52
|
+
)`
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
await execute(
|
|
56
|
+
connection,
|
|
57
|
+
`CREATE INDEX "FK_ATTRIBUTE_OPTION" ON "attribute_option" ("attribute_id")`
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
await insert('attribute_option')
|
|
61
|
+
.given({
|
|
62
|
+
attribute_id: color.insertId,
|
|
63
|
+
attribute_code: 'color',
|
|
64
|
+
option_text: 'White'
|
|
65
|
+
})
|
|
66
|
+
.execute(connection);
|
|
67
|
+
|
|
68
|
+
await insert('attribute_option')
|
|
69
|
+
.given({
|
|
70
|
+
attribute_id: color.insertId,
|
|
71
|
+
attribute_code: 'color',
|
|
72
|
+
option_text: 'Black'
|
|
73
|
+
})
|
|
74
|
+
.execute(connection);
|
|
75
|
+
|
|
76
|
+
await insert('attribute_option')
|
|
77
|
+
.given({
|
|
78
|
+
attribute_id: color.insertId,
|
|
79
|
+
attribute_code: 'color',
|
|
80
|
+
option_text: 'Yellow'
|
|
81
|
+
})
|
|
82
|
+
.execute(connection);
|
|
83
|
+
|
|
84
|
+
await insert('attribute_option')
|
|
85
|
+
.given({
|
|
86
|
+
attribute_id: size.insertId,
|
|
87
|
+
attribute_code: 'size',
|
|
88
|
+
option_text: 'XXL'
|
|
89
|
+
})
|
|
90
|
+
.execute(connection);
|
|
91
|
+
|
|
92
|
+
await insert('attribute_option')
|
|
93
|
+
.given({
|
|
94
|
+
attribute_id: size.insertId,
|
|
95
|
+
attribute_code: 'size',
|
|
96
|
+
option_text: 'XL'
|
|
97
|
+
})
|
|
98
|
+
.execute(connection);
|
|
99
|
+
|
|
100
|
+
await insert('attribute_option')
|
|
101
|
+
.given({
|
|
102
|
+
attribute_id: size.insertId,
|
|
103
|
+
attribute_code: 'size',
|
|
104
|
+
option_text: 'SM'
|
|
105
|
+
})
|
|
106
|
+
.execute(connection);
|
|
107
|
+
|
|
108
|
+
await execute(
|
|
109
|
+
connection,
|
|
110
|
+
`CREATE TABLE "attribute_group" (
|
|
111
|
+
"attribute_group_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
112
|
+
"uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
|
|
113
|
+
"group_name" text NOT NULL,
|
|
114
|
+
"created_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
115
|
+
"updated_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
116
|
+
CONSTRAINT "ATTRIBUTE_GROUP_UUID_UNIQUE" UNIQUE ("uuid")
|
|
117
|
+
)`
|
|
118
|
+
);
|
|
119
|
+
|
|
120
|
+
const defaultGroup = await insert('attribute_group')
|
|
121
|
+
.given({ group_name: 'Default' })
|
|
122
|
+
.execute(connection);
|
|
123
|
+
|
|
124
|
+
await execute(
|
|
125
|
+
connection,
|
|
126
|
+
`CREATE TABLE "attribute_group_link" (
|
|
127
|
+
"attribute_group_link_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
128
|
+
"attribute_id" INT NOT NULL,
|
|
129
|
+
"group_id" INT NOT NULL,
|
|
130
|
+
CONSTRAINT "ATTRIBUTE_GROUP_LINK_UNIQUE" UNIQUE ("attribute_id","group_id"),
|
|
131
|
+
CONSTRAINT "FK_ATTRIBUTE_LINK" FOREIGN KEY ("attribute_id") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE CASCADE,
|
|
132
|
+
CONSTRAINT "FK_GROUP_LINK" FOREIGN KEY ("group_id") REFERENCES "attribute_group" ("attribute_group_id") ON DELETE CASCADE
|
|
133
|
+
)`
|
|
134
|
+
);
|
|
135
|
+
|
|
136
|
+
await execute(
|
|
137
|
+
connection,
|
|
138
|
+
`CREATE INDEX "FK_GROUP_LINK" ON "attribute_group_link" ("group_id")`
|
|
139
|
+
);
|
|
140
|
+
await execute(
|
|
141
|
+
connection,
|
|
142
|
+
`CREATE INDEX "FK_ATTRIBUTE_LINK" ON "attribute_group_link" ("attribute_id")`
|
|
143
|
+
);
|
|
144
|
+
|
|
145
|
+
await insert('attribute_group_link')
|
|
146
|
+
.given({
|
|
147
|
+
group_id: defaultGroup.insertId,
|
|
148
|
+
attribute_id: color.insertId
|
|
149
|
+
})
|
|
150
|
+
.execute(connection);
|
|
151
|
+
await insert('attribute_group_link')
|
|
152
|
+
.given({
|
|
153
|
+
group_id: defaultGroup.insertId,
|
|
154
|
+
attribute_id: size.insertId
|
|
155
|
+
})
|
|
156
|
+
.execute(connection);
|
|
157
|
+
|
|
158
|
+
await execute(
|
|
159
|
+
connection,
|
|
160
|
+
`CREATE TABLE "variant_group" (
|
|
161
|
+
"variant_group_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
162
|
+
"uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
|
|
163
|
+
"attribute_group_id" INT NOT NULL,
|
|
164
|
+
"attribute_one" INT DEFAULT NULL,
|
|
165
|
+
"attribute_two" INT DEFAULT NULL,
|
|
166
|
+
"attribute_three" INT DEFAULT NULL,
|
|
167
|
+
"attribute_four" INT DEFAULT NULL,
|
|
168
|
+
"attribute_five" INT DEFAULT NULL,
|
|
169
|
+
"visibility" boolean NOT NULL DEFAULT FALSE,
|
|
170
|
+
CONSTRAINT "VARIANT_GROUP_UUID_UNIQUE" UNIQUE ("uuid"),
|
|
171
|
+
CONSTRAINT "FK_ATTRIBUTE_GROUP_VARIANT" FOREIGN KEY ("attribute_group_id") REFERENCES "attribute_group" ("attribute_group_id") ON DELETE CASCADE ON UPDATE NO ACTION,
|
|
172
|
+
CONSTRAINT "FK_ATTRIBUTE_VARIANT_FIVE" FOREIGN KEY ("attribute_five") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE NO ACTION,
|
|
173
|
+
CONSTRAINT "FK_ATTRIBUTE_VARIANT_FOUR" FOREIGN KEY ("attribute_four") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE NO ACTION,
|
|
174
|
+
CONSTRAINT "FK_ATTRIBUTE_VARIANT_ONE" FOREIGN KEY ("attribute_one") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE NO ACTION,
|
|
175
|
+
CONSTRAINT "FK_ATTRIBUTE_VARIANT_THREE" FOREIGN KEY ("attribute_three") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE NO ACTION,
|
|
176
|
+
CONSTRAINT "FK_ATTRIBUTE_VARIANT_TWO" FOREIGN KEY ("attribute_two") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE ON UPDATE NO ACTION
|
|
177
|
+
)`
|
|
178
|
+
);
|
|
179
|
+
|
|
180
|
+
await execute(
|
|
181
|
+
connection,
|
|
182
|
+
`CREATE INDEX "FK_ATTRIBUTE_VARIANT_ONE" ON "variant_group" ("attribute_one")`
|
|
183
|
+
);
|
|
184
|
+
await execute(
|
|
185
|
+
connection,
|
|
186
|
+
`CREATE INDEX "FK_ATTRIBUTE_VARIANT_TWO" ON "variant_group" ("attribute_two")`
|
|
187
|
+
);
|
|
188
|
+
await execute(
|
|
189
|
+
connection,
|
|
190
|
+
`CREATE INDEX "FK_ATTRIBUTE_VARIANT_THREE" ON "variant_group" ("attribute_three")`
|
|
191
|
+
);
|
|
192
|
+
await execute(
|
|
193
|
+
connection,
|
|
194
|
+
`CREATE INDEX "FK_ATTRIBUTE_VARIANT_FOUR" ON "variant_group" ("attribute_four")`
|
|
195
|
+
);
|
|
196
|
+
await execute(
|
|
197
|
+
connection,
|
|
198
|
+
`CREATE INDEX "FK_ATTRIBUTE_VARIANT_FIVE" ON "variant_group" ("attribute_five")`
|
|
199
|
+
);
|
|
200
|
+
await execute(
|
|
201
|
+
connection,
|
|
202
|
+
`CREATE INDEX "FK_ATTRIBUTE_GROUP_VARIANT" ON "variant_group" ("attribute_group_id")`
|
|
203
|
+
);
|
|
204
|
+
|
|
205
|
+
await execute(
|
|
206
|
+
connection,
|
|
207
|
+
`CREATE TABLE "product" (
|
|
208
|
+
"product_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
209
|
+
"uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
|
|
210
|
+
"type" varchar NOT NULL DEFAULT 'simple',
|
|
211
|
+
"variant_group_id" INT DEFAULT NULL,
|
|
212
|
+
"visibility" boolean NOT NULL DEFAULT TRUE,
|
|
213
|
+
"group_id" INT DEFAULT 1,
|
|
214
|
+
"image" varchar DEFAULT NULL,
|
|
215
|
+
"sku" varchar NOT NULL,
|
|
216
|
+
"price" decimal(12,4) NOT NULL,
|
|
217
|
+
"qty" INT NOT NULL,
|
|
218
|
+
"weight" decimal(12,4) DEFAULT NULL,
|
|
219
|
+
"manage_stock" boolean NOT NULL,
|
|
220
|
+
"stock_availability" boolean NOT NULL,
|
|
221
|
+
"tax_class" smallint DEFAULT NULL,
|
|
222
|
+
"status" boolean NOT NULL DEFAULT FALSE,
|
|
223
|
+
"created_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
224
|
+
"updated_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
225
|
+
CONSTRAINT "PRODUCT_UUID_UNIQUE" UNIQUE ("uuid"),
|
|
226
|
+
CONSTRAINT "PRODUCT_SKU_UNIQUE" UNIQUE ("sku"),
|
|
227
|
+
CONSTRAINT "UNSIGNED_PRICE" CHECK(price >= 0),
|
|
228
|
+
CONSTRAINT "UNSIGNED_WEIGHT" CHECK(weight >= 0),
|
|
229
|
+
CONSTRAINT "FK_PRODUCT_ATTRIBUTE_GROUP" FOREIGN KEY ("group_id") REFERENCES "attribute_group" ("attribute_group_id") ON DELETE SET NULL,
|
|
230
|
+
CONSTRAINT "FK_PRODUCT_VARIANT_GROUP" FOREIGN KEY ("variant_group_id") REFERENCES "variant_group" ("variant_group_id") ON DELETE SET NULL
|
|
231
|
+
)`
|
|
232
|
+
);
|
|
233
|
+
|
|
234
|
+
await execute(
|
|
235
|
+
connection,
|
|
236
|
+
`CREATE INDEX "FK_PRODUCT_ATTRIBUTE_GROUP" ON "product" ("group_id")`
|
|
237
|
+
);
|
|
238
|
+
await execute(
|
|
239
|
+
connection,
|
|
240
|
+
`CREATE INDEX "FK_PRODUCT_VARIANT_GROUP" ON "product" ("variant_group_id")`
|
|
241
|
+
);
|
|
242
|
+
|
|
243
|
+
await execute(
|
|
244
|
+
connection,
|
|
245
|
+
`CREATE TABLE "product_attribute_value_index" (
|
|
246
|
+
"product_attribute_value_index_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
247
|
+
"uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
|
|
248
|
+
"product_id" INT NOT NULL,
|
|
249
|
+
"attribute_id" INT NOT NULL,
|
|
250
|
+
"option_id" INT DEFAULT NULL,
|
|
251
|
+
"option_text" text DEFAULT NULL,
|
|
252
|
+
CONSTRAINT "PRODUCT_ATTRIBUTE_VALUE_UUID_UNIQUE" UNIQUE ("uuid"),
|
|
253
|
+
CONSTRAINT "OPTION_VALUE_UNIQUE" UNIQUE ("product_id","attribute_id","option_id"),
|
|
254
|
+
CONSTRAINT "FK_ATTRIBUTE_OPTION_VALUE_LINK" FOREIGN KEY ("option_id") REFERENCES "attribute_option" ("attribute_option_id") ON DELETE CASCADE,
|
|
255
|
+
CONSTRAINT "FK_ATTRIBUTE_VALUE_LINK" FOREIGN KEY ("attribute_id") REFERENCES "attribute" ("attribute_id") ON DELETE CASCADE,
|
|
256
|
+
CONSTRAINT "FK_PRODUCT_ATTRIBUTE_LINK" FOREIGN KEY ("product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
|
|
257
|
+
)`
|
|
258
|
+
);
|
|
259
|
+
await execute(
|
|
260
|
+
connection,
|
|
261
|
+
`CREATE INDEX "FK_ATTRIBUTE_VALUE_LINK" ON "product_attribute_value_index" ("attribute_id")`
|
|
262
|
+
);
|
|
263
|
+
await execute(
|
|
264
|
+
connection,
|
|
265
|
+
`CREATE INDEX "FK_ATTRIBUTE_OPTION_VALUE_LINK" ON "product_attribute_value_index" ("option_id")`
|
|
266
|
+
);
|
|
267
|
+
await execute(
|
|
268
|
+
connection,
|
|
269
|
+
`CREATE INDEX "FK_PRODUCT_ATTRIBUTE_LINK" ON "product_attribute_value_index" ("product_id")`
|
|
270
|
+
);
|
|
271
|
+
|
|
272
|
+
await execute(
|
|
273
|
+
connection,
|
|
274
|
+
`CREATE TABLE "product_custom_option" (
|
|
275
|
+
"product_custom_option_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
276
|
+
"uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
|
|
277
|
+
"product_custom_option_product_id" INT NOT NULL,
|
|
278
|
+
"option_name" varchar NOT NULL,
|
|
279
|
+
"option_type" varchar NOT NULL,
|
|
280
|
+
"is_required" boolean NOT NULL DEFAULT FALSE,
|
|
281
|
+
"sort_order" INT DEFAULT NULL,
|
|
282
|
+
CONSTRAINT "PRODUCT_CUSTOM_OPTION_UUID_UNIQUE" UNIQUE ("uuid"),
|
|
283
|
+
CONSTRAINT "FK_PRODUCT_CUSTOM_OPTION" FOREIGN KEY ("product_custom_option_product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
|
|
284
|
+
)`
|
|
285
|
+
);
|
|
286
|
+
await execute(
|
|
287
|
+
connection,
|
|
288
|
+
`CREATE INDEX "FK_PRODUCT_CUSTOM_OPTION" ON "product_custom_option" ("product_custom_option_product_id")`
|
|
289
|
+
);
|
|
290
|
+
|
|
291
|
+
await execute(
|
|
292
|
+
connection,
|
|
293
|
+
`CREATE TABLE "product_custom_option_value" (
|
|
294
|
+
"product_custom_option_value_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
295
|
+
"uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
|
|
296
|
+
"option_id" INT NOT NULL,
|
|
297
|
+
"extra_price" decimal(12,4) DEFAULT NULL,
|
|
298
|
+
"sort_order" INT DEFAULT NULL,
|
|
299
|
+
"value" varchar NOT NULL,
|
|
300
|
+
CONSTRAINT "PRODUCT_CUSTOM_OPTION_VALUE_UUID_UNIQUE" UNIQUE ("uuid"),
|
|
301
|
+
CONSTRAINT "FK_CUSTOM_OPTION_VALUE" FOREIGN KEY ("option_id") REFERENCES "product_custom_option" ("product_custom_option_id") ON DELETE CASCADE
|
|
302
|
+
)`
|
|
303
|
+
);
|
|
304
|
+
await execute(
|
|
305
|
+
connection,
|
|
306
|
+
`CREATE INDEX "FK_CUSTOM_OPTION_VALUE" ON "product_custom_option_value" ("option_id")`
|
|
307
|
+
);
|
|
308
|
+
|
|
309
|
+
await execute(
|
|
310
|
+
connection,
|
|
311
|
+
`CREATE TABLE "product_description" (
|
|
312
|
+
"product_description_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
313
|
+
"product_description_product_id" INT NOT NULL,
|
|
314
|
+
"name" varchar NOT NULL,
|
|
315
|
+
"description" text DEFAULT NULL,
|
|
316
|
+
"short_description" text DEFAULT NULL,
|
|
317
|
+
"url_key" varchar NOT NULL,
|
|
318
|
+
"meta_title" text DEFAULT NULL,
|
|
319
|
+
"meta_description" text DEFAULT NULL,
|
|
320
|
+
"meta_keywords" text DEFAULT NULL,
|
|
321
|
+
CONSTRAINT "PRODUCT_ID_UNIQUE" UNIQUE ("product_description_product_id"),
|
|
322
|
+
CONSTRAINT "PRODUCT_URL_KEY_UNIQUE" UNIQUE ("url_key"),
|
|
323
|
+
CONSTRAINT "FK_PRODUCT_DESCRIPTION" FOREIGN KEY ("product_description_product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
|
|
324
|
+
)`
|
|
325
|
+
);
|
|
326
|
+
await execute(
|
|
327
|
+
connection,
|
|
328
|
+
`CREATE INDEX "FK_PRODUCT_DESCRIPTION" ON "product_description" ("product_description_product_id")`
|
|
329
|
+
);
|
|
330
|
+
|
|
331
|
+
await execute(
|
|
332
|
+
connection,
|
|
333
|
+
`CREATE TABLE "product_image" (
|
|
334
|
+
"product_image_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
335
|
+
"uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
|
|
336
|
+
"product_image_product_id" INT NOT NULL,
|
|
337
|
+
"image" varchar NOT NULL,
|
|
338
|
+
CONSTRAINT "PRODUCT_IMAGE_UUID_UNIQUE" UNIQUE ("uuid"),
|
|
339
|
+
CONSTRAINT "FK_PRODUCT_IMAGE_LINK" FOREIGN KEY ("product_image_product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
|
|
340
|
+
)`
|
|
341
|
+
);
|
|
342
|
+
await execute(
|
|
343
|
+
connection,
|
|
344
|
+
`CREATE INDEX "FK_PRODUCT_IMAGE_LINK" ON "product_image" ("product_image_product_id")`
|
|
345
|
+
);
|
|
346
|
+
|
|
347
|
+
await execute(
|
|
348
|
+
connection,
|
|
349
|
+
`CREATE TABLE "category" (
|
|
350
|
+
"category_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
351
|
+
"uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
|
|
352
|
+
"status" boolean NOT NULL,
|
|
353
|
+
"parent_id" INT DEFAULT NULL,
|
|
354
|
+
"include_in_nav" boolean NOT NULL,
|
|
355
|
+
"position" smallint DEFAULT NULL,
|
|
356
|
+
"show_products" boolean DEFAULT TRUE,
|
|
357
|
+
"created_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
358
|
+
"updated_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
359
|
+
CONSTRAINT "CATEGORY_UUID_UNIQUE" UNIQUE ("uuid")
|
|
360
|
+
)`
|
|
361
|
+
);
|
|
362
|
+
|
|
363
|
+
await execute(
|
|
364
|
+
connection,
|
|
365
|
+
`CREATE TABLE "product_category" (
|
|
366
|
+
"product_category_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
367
|
+
"category_id" INT NOT NULL,
|
|
368
|
+
"product_id" INT NOT NULL,
|
|
369
|
+
CONSTRAINT "PRODUCT_CATEGORY_UNIQUE" UNIQUE ("category_id","product_id"),
|
|
370
|
+
CONSTRAINT "FK_CATEGORY_PRODUCT_LINK" FOREIGN KEY ("category_id") REFERENCES "category" ("category_id") ON DELETE CASCADE,
|
|
371
|
+
CONSTRAINT "FK_PRODUCT_CATEGORY_LINK" FOREIGN KEY ("product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
|
|
372
|
+
)`
|
|
373
|
+
);
|
|
374
|
+
await execute(
|
|
375
|
+
connection,
|
|
376
|
+
`CREATE INDEX "FK_CATEGORY_PRODUCT_LINK" ON "product_category" ("category_id")`
|
|
377
|
+
);
|
|
378
|
+
await execute(
|
|
379
|
+
connection,
|
|
380
|
+
`CREATE INDEX "FK_PRODUCT_CATEGORY_LINK" ON "product_category" ("product_id")`
|
|
381
|
+
);
|
|
382
|
+
|
|
383
|
+
await execute(
|
|
384
|
+
connection,
|
|
385
|
+
`CREATE TABLE "category_description" (
|
|
386
|
+
"category_description_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
387
|
+
"category_description_category_id" INT NOT NULL,
|
|
388
|
+
"name" varchar NOT NULL,
|
|
389
|
+
"short_description" text DEFAULT NULL,
|
|
390
|
+
"description" text DEFAULT NULL,
|
|
391
|
+
"image" varchar DEFAULT NULL,
|
|
392
|
+
"meta_title" text DEFAULT NULL,
|
|
393
|
+
"meta_keywords" text DEFAULT NULL,
|
|
394
|
+
"meta_description" text DEFAULT NULL,
|
|
395
|
+
"url_key" varchar NOT NULL,
|
|
396
|
+
CONSTRAINT "CATEGORY_ID_UNIQUE" UNIQUE ("category_description_category_id"),
|
|
397
|
+
CONSTRAINT "CATEGORY_URL_KEY_UNIQUE" UNIQUE ("url_key"),
|
|
398
|
+
CONSTRAINT "FK_CATEGORY_DESCRIPTION" FOREIGN KEY ("category_description_category_id") REFERENCES "category" ("category_id") ON DELETE CASCADE
|
|
399
|
+
)`
|
|
400
|
+
);
|
|
401
|
+
await execute(
|
|
402
|
+
connection,
|
|
403
|
+
`CREATE INDEX "FK_CATEGORY_DESCRIPTION" ON "category_description" ("category_description_category_id")`
|
|
404
|
+
);
|
|
405
|
+
|
|
406
|
+
// Create 3 default categories, Kids, Men, Women
|
|
407
|
+
const kids = await insert('category')
|
|
408
|
+
.given({
|
|
409
|
+
status: 1,
|
|
410
|
+
include_in_nav: 1
|
|
411
|
+
})
|
|
412
|
+
.execute(connection);
|
|
413
|
+
|
|
414
|
+
await insert('category_description')
|
|
415
|
+
.given({
|
|
416
|
+
category_description_category_id: kids.insertId,
|
|
417
|
+
name: 'Kids',
|
|
418
|
+
url_key: 'kids',
|
|
419
|
+
meta_title: 'Kids',
|
|
420
|
+
meta_description: 'Kids',
|
|
421
|
+
meta_keywords: 'Kids',
|
|
422
|
+
description: 'Kids'
|
|
423
|
+
})
|
|
424
|
+
.execute(connection);
|
|
425
|
+
|
|
426
|
+
const women = await insert('category')
|
|
427
|
+
.given({
|
|
428
|
+
status: 1,
|
|
429
|
+
include_in_nav: 1
|
|
430
|
+
})
|
|
431
|
+
.execute(connection);
|
|
432
|
+
|
|
433
|
+
await insert('category_description')
|
|
434
|
+
.given({
|
|
435
|
+
category_description_category_id: women.insertId,
|
|
436
|
+
name: 'Women',
|
|
437
|
+
url_key: 'women',
|
|
438
|
+
meta_title: 'Women',
|
|
439
|
+
meta_description: 'Women',
|
|
440
|
+
meta_keywords: 'Women',
|
|
441
|
+
description: 'Women'
|
|
442
|
+
})
|
|
443
|
+
.execute(connection);
|
|
444
|
+
|
|
445
|
+
const men = await insert('category')
|
|
446
|
+
.given({
|
|
447
|
+
status: 1,
|
|
448
|
+
include_in_nav: 1
|
|
449
|
+
})
|
|
450
|
+
.execute(connection);
|
|
451
|
+
|
|
452
|
+
await insert('category_description')
|
|
453
|
+
.given({
|
|
454
|
+
category_description_category_id: men.insertId,
|
|
455
|
+
name: 'Men',
|
|
456
|
+
url_key: 'men',
|
|
457
|
+
meta_title: 'Men',
|
|
458
|
+
meta_description: 'Men',
|
|
459
|
+
meta_keywords: 'Men',
|
|
460
|
+
description: 'Men'
|
|
461
|
+
})
|
|
462
|
+
.execute(connection);
|
|
463
|
+
|
|
464
|
+
// COLLECTION
|
|
465
|
+
await execute(
|
|
466
|
+
connection,
|
|
467
|
+
`CREATE TABLE "collection" (
|
|
468
|
+
"collection_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
469
|
+
"uuid" UUID NOT NULL DEFAULT gen_random_uuid (),
|
|
470
|
+
"name" varchar NOT NULL,
|
|
471
|
+
"description" text DEFAULT NULL,
|
|
472
|
+
"code" varchar NOT NULL,
|
|
473
|
+
"created_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
474
|
+
"updated_at" TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,
|
|
475
|
+
CONSTRAINT "COLLECTION_CODE_UNIQUE" UNIQUE ("code"),
|
|
476
|
+
CONSTRAINT "COLLECTION_UUID_UNIQUE" UNIQUE ("uuid")
|
|
477
|
+
)`
|
|
478
|
+
);
|
|
479
|
+
|
|
480
|
+
await execute(
|
|
481
|
+
connection,
|
|
482
|
+
`CREATE TABLE "product_collection" (
|
|
483
|
+
"product_collection_id" INT GENERATED ALWAYS AS IDENTITY (START WITH 1 INCREMENT BY 1) PRIMARY KEY,
|
|
484
|
+
"collection_id" INT NOT NULL,
|
|
485
|
+
"product_id" INT NOT NULL,
|
|
486
|
+
CONSTRAINT "PRODUCT_COLLECTION_UNIQUE" UNIQUE ("collection_id","product_id"),
|
|
487
|
+
CONSTRAINT "FK_COLLECTION_PRODUCT_LINK" FOREIGN KEY ("collection_id") REFERENCES "collection" ("collection_id") ON DELETE CASCADE,
|
|
488
|
+
CONSTRAINT "FK_PRODUCT_COLLECTION_LINK" FOREIGN KEY ("product_id") REFERENCES "product" ("product_id") ON DELETE CASCADE
|
|
489
|
+
)`
|
|
490
|
+
);
|
|
491
|
+
await execute(
|
|
492
|
+
connection,
|
|
493
|
+
`CREATE INDEX "FK_COLLECTION_PRODUCT_LINK" ON "product_collection" ("collection_id")`
|
|
494
|
+
);
|
|
495
|
+
await execute(
|
|
496
|
+
connection,
|
|
497
|
+
`CREATE INDEX "FK_PRODUCT_COLLECTION_LINK" ON "product_collection" ("product_id")`
|
|
498
|
+
);
|
|
499
|
+
|
|
500
|
+
/* CREATE SOME TRIGGERS */
|
|
501
|
+
// Prevent deleting a default attribute group
|
|
502
|
+
await execute(
|
|
503
|
+
connection,
|
|
504
|
+
`CREATE OR REPLACE FUNCTION prevent_delete_default_attribute_group()
|
|
505
|
+
RETURNS TRIGGER
|
|
506
|
+
LANGUAGE PLPGSQL
|
|
507
|
+
AS
|
|
508
|
+
$$
|
|
509
|
+
BEGIN
|
|
510
|
+
IF OLD.attribute_group_id = 1 THEN
|
|
511
|
+
RAISE EXCEPTION 'Cannot delete default attribute group';
|
|
512
|
+
END IF;
|
|
513
|
+
RETURN OLD;
|
|
514
|
+
END;
|
|
515
|
+
$$`
|
|
516
|
+
);
|
|
517
|
+
await execute(
|
|
518
|
+
connection,
|
|
519
|
+
`CREATE TRIGGER "PREVENT_DELETING_THE_DEFAULT_ATTRIBUTE_GROUP"
|
|
520
|
+
BEFORE DELETE ON attribute_group
|
|
521
|
+
FOR EACH ROW
|
|
522
|
+
EXECUTE PROCEDURE prevent_delete_default_attribute_group();`
|
|
523
|
+
);
|
|
524
|
+
|
|
525
|
+
// Prevent changing product attribute group if product has variants
|
|
526
|
+
await execute(
|
|
527
|
+
connection,
|
|
528
|
+
`CREATE OR REPLACE FUNCTION prevent_change_attribute_group()
|
|
529
|
+
RETURNS TRIGGER
|
|
530
|
+
LANGUAGE PLPGSQL
|
|
531
|
+
AS
|
|
532
|
+
$$
|
|
533
|
+
BEGIN
|
|
534
|
+
IF OLD.group_id != NEW.group_id AND OLD.variant_group_id IS NOT NULL THEN
|
|
535
|
+
RAISE EXCEPTION 'Cannot change attribute group of product with variants';
|
|
536
|
+
END IF;
|
|
537
|
+
RETURN NEW;
|
|
538
|
+
END;
|
|
539
|
+
$$`
|
|
540
|
+
);
|
|
541
|
+
await execute(
|
|
542
|
+
connection,
|
|
543
|
+
`CREATE TRIGGER "PREVENT_CHANGING_ATTRIBUTE_GROUP_OF_PRODUCT_WITH_VARIANTS"
|
|
544
|
+
BEFORE UPDATE ON product
|
|
545
|
+
FOR EACH ROW
|
|
546
|
+
EXECUTE PROCEDURE prevent_change_attribute_group();`
|
|
547
|
+
);
|
|
548
|
+
|
|
549
|
+
// Delete product attribute value and variant group when attribute is removed from group
|
|
550
|
+
await execute(
|
|
551
|
+
connection,
|
|
552
|
+
`CREATE OR REPLACE FUNCTION remove_attribute_from_group()
|
|
553
|
+
RETURNS TRIGGER
|
|
554
|
+
LANGUAGE PLPGSQL
|
|
555
|
+
AS
|
|
556
|
+
$$
|
|
557
|
+
BEGIN
|
|
558
|
+
DELETE FROM product_attribute_value_index WHERE product_attribute_value_index.attribute_id = OLD.attribute_id AND product_attribute_value_index.product_id IN (SELECT product.product_id FROM product WHERE product.group_id = OLD.group_id);
|
|
559
|
+
DELETE FROM variant_group WHERE variant_group.attribute_group_id = OLD.group_id AND (variant_group.attribute_one = OLD.attribute_id OR variant_group.attribute_two = OLD.attribute_id OR variant_group.attribute_three = OLD.attribute_id OR variant_group.attribute_four = OLD.attribute_id OR variant_group.attribute_five = OLD.attribute_id);
|
|
560
|
+
RETURN OLD;
|
|
561
|
+
END;
|
|
562
|
+
$$;`
|
|
563
|
+
);
|
|
564
|
+
await execute(
|
|
565
|
+
connection,
|
|
566
|
+
`CREATE TRIGGER "TRIGGER_AFTER_REMOVE_ATTRIBUTE_FROM_GROUP" AFTER DELETE ON "attribute_group_link"
|
|
567
|
+
FOR EACH ROW
|
|
568
|
+
EXECUTE PROCEDURE remove_attribute_from_group();
|
|
569
|
+
`
|
|
570
|
+
);
|
|
571
|
+
|
|
572
|
+
// Update product attribute value option text when option is updated
|
|
573
|
+
await execute(
|
|
574
|
+
connection,
|
|
575
|
+
`CREATE OR REPLACE FUNCTION update_product_attribute_option_value_text()
|
|
576
|
+
RETURNS TRIGGER
|
|
577
|
+
LANGUAGE PLPGSQL
|
|
578
|
+
AS
|
|
579
|
+
$$
|
|
580
|
+
BEGIN
|
|
581
|
+
UPDATE "product_attribute_value_index" SET "option_text" = NEW.option_text
|
|
582
|
+
WHERE "product_attribute_value_index".option_id = NEW.attribute_option_id AND "product_attribute_value_index".attribute_id = NEW.attribute_id;
|
|
583
|
+
RETURN NEW;
|
|
584
|
+
END;
|
|
585
|
+
$$;`
|
|
586
|
+
);
|
|
587
|
+
await execute(
|
|
588
|
+
connection,
|
|
589
|
+
`CREATE TRIGGER "TRIGGER_AFTER_ATTRIBUTE_OPTION_UPDATE" AFTER UPDATE ON "attribute_option" FOR EACH ROW
|
|
590
|
+
EXECUTE PROCEDURE update_product_attribute_option_value_text();
|
|
591
|
+
`
|
|
592
|
+
);
|
|
593
|
+
|
|
594
|
+
// Delete product attribute value index after option is deleted
|
|
595
|
+
await execute(
|
|
596
|
+
connection,
|
|
597
|
+
`CREATE OR REPLACE FUNCTION delete_product_attribute_value_index()
|
|
598
|
+
RETURNS TRIGGER
|
|
599
|
+
LANGUAGE PLPGSQL
|
|
600
|
+
AS
|
|
601
|
+
$$
|
|
602
|
+
BEGIN
|
|
603
|
+
DELETE FROM "product_attribute_value_index" WHERE "product_attribute_value_index".option_id = OLD.attribute_option_id AND "product_attribute_value_index"."attribute_id" = OLD.attribute_id;
|
|
604
|
+
RETURN OLD;
|
|
605
|
+
END;
|
|
606
|
+
$$;`
|
|
607
|
+
);
|
|
608
|
+
await execute(
|
|
609
|
+
connection,
|
|
610
|
+
`CREATE TRIGGER "TRIGGER_AFTER_DELETE_ATTRIBUTE_OPTION" AFTER DELETE ON "attribute_option" FOR EACH ROW
|
|
611
|
+
EXECUTE PROCEDURE delete_product_attribute_value_index();
|
|
612
|
+
`
|
|
613
|
+
);
|
|
614
|
+
|
|
615
|
+
// Update variant group visibility after new product is added
|
|
616
|
+
await execute(
|
|
617
|
+
connection,
|
|
618
|
+
`CREATE OR REPLACE FUNCTION update_variant_group_visibility()
|
|
619
|
+
RETURNS TRIGGER
|
|
620
|
+
LANGUAGE PLPGSQL
|
|
621
|
+
AS
|
|
622
|
+
$$
|
|
623
|
+
BEGIN
|
|
624
|
+
UPDATE "variant_group" SET visibility = (SELECT bool_or(visibility) FROM "product" WHERE "product"."variant_group_id" = NEW.variant_group_id AND "product"."status" = TRUE) WHERE "variant_group"."variant_group_id" = NEW.variant_group_id;
|
|
625
|
+
RETURN NEW;
|
|
626
|
+
END;
|
|
627
|
+
$$;`
|
|
628
|
+
);
|
|
629
|
+
await execute(
|
|
630
|
+
connection,
|
|
631
|
+
`CREATE CONSTRAINT TRIGGER "TRIGGER_AFTER_INSERT_PRODUCT" AFTER INSERT ON "product"
|
|
632
|
+
DEFERRABLE INITIALLY IMMEDIATE
|
|
633
|
+
FOR EACH ROW
|
|
634
|
+
EXECUTE PROCEDURE update_variant_group_visibility();`
|
|
635
|
+
);
|
|
636
|
+
|
|
637
|
+
// Update product attribute index, variant group visibility and product visibility after product is updated
|
|
638
|
+
await execute(
|
|
639
|
+
connection,
|
|
640
|
+
`CREATE OR REPLACE FUNCTION update_attribute_index_and_variant_group_visibility()
|
|
641
|
+
RETURNS TRIGGER
|
|
642
|
+
LANGUAGE PLPGSQL
|
|
643
|
+
AS
|
|
644
|
+
$$
|
|
645
|
+
BEGIN
|
|
646
|
+
DELETE FROM "product_attribute_value_index"
|
|
647
|
+
WHERE "product_attribute_value_index"."product_id" = NEW.product_id
|
|
648
|
+
AND "product_attribute_value_index"."attribute_id" NOT IN (SELECT "attribute_group_link"."attribute_id" FROM "attribute_group_link" WHERE "attribute_group_link"."group_id" = NEW.group_id);
|
|
649
|
+
UPDATE "variant_group" SET visibility = (SELECT bool_or(visibility) FROM "product" WHERE "product"."variant_group_id" = NEW.variant_group_id AND "product"."status" = TRUE GROUP BY "product"."variant_group_id") WHERE "variant_group"."variant_group_id" = NEW.variant_group_id;
|
|
650
|
+
RETURN NEW;
|
|
651
|
+
END;
|
|
652
|
+
$$;`
|
|
653
|
+
);
|
|
654
|
+
await execute(
|
|
655
|
+
connection,
|
|
656
|
+
`CREATE CONSTRAINT TRIGGER "TRIGGER_PRODUCT_AFTER_UPDATE" AFTER UPDATE ON "product"
|
|
657
|
+
DEFERRABLE INITIALLY DEFERRED
|
|
658
|
+
FOR EACH ROW
|
|
659
|
+
EXECUTE PROCEDURE update_attribute_index_and_variant_group_visibility();
|
|
660
|
+
`
|
|
661
|
+
);
|
|
662
|
+
|
|
663
|
+
// Delete variant group when attribute type is changed from select to something else
|
|
664
|
+
await execute(
|
|
665
|
+
connection,
|
|
666
|
+
`CREATE OR REPLACE FUNCTION delete_variant_group_after_attribute_type_changed()
|
|
667
|
+
RETURNS TRIGGER
|
|
668
|
+
LANGUAGE PLPGSQL
|
|
669
|
+
AS
|
|
670
|
+
$$
|
|
671
|
+
BEGIN
|
|
672
|
+
IF (OLD.type = 'select' AND NEW.type <> 'select') THEN
|
|
673
|
+
DELETE FROM "variant_group" WHERE ("variant_group".attribute_one = OLD.attribute_id OR "variant_group".attribute_two = OLD.attribute_id OR "variant_group".attribute_three = OLD.attribute_id OR "variant_group".attribute_four = OLD.attribute_id OR "variant_group".attribute_five = OLD.attribute_id);
|
|
674
|
+
END IF;
|
|
675
|
+
RETURN NEW;
|
|
676
|
+
END
|
|
677
|
+
$$;`
|
|
678
|
+
);
|
|
679
|
+
await execute(
|
|
680
|
+
connection,
|
|
681
|
+
`CREATE TRIGGER "TRIGGER_AFTER_UPDATE_ATTRIBUTE" AFTER UPDATE ON "attribute" FOR EACH ROW
|
|
682
|
+
EXECUTE PROCEDURE delete_variant_group_after_attribute_type_changed();
|
|
683
|
+
`
|
|
684
|
+
);
|
|
685
|
+
};
|