Compare commits
1 Commits
product-pr
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1ea50af96a |
@@ -1,6 +1,8 @@
|
|||||||
package restricted
|
package restricted
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"strconv"
|
||||||
|
|
||||||
"git.ma-al.com/goc_daniel/b2b/app/config"
|
"git.ma-al.com/goc_daniel/b2b/app/config"
|
||||||
"git.ma-al.com/goc_daniel/b2b/app/service/listProductsService"
|
"git.ma-al.com/goc_daniel/b2b/app/service/listProductsService"
|
||||||
"git.ma-al.com/goc_daniel/b2b/app/utils/i18n"
|
"git.ma-al.com/goc_daniel/b2b/app/utils/i18n"
|
||||||
@@ -50,7 +52,20 @@ func (h *ListProductsHandler) GetListing(c fiber.Ctx) error {
|
|||||||
// "override_currency": c.Query("override_currency", ""),
|
// "override_currency": c.Query("override_currency", ""),
|
||||||
// }
|
// }
|
||||||
|
|
||||||
listing, err := h.listProductsService.GetListing(paging, filters)
|
id_shop_attribute := c.Query("shopID")
|
||||||
|
id_shop, err := strconv.Atoi(id_shop_attribute)
|
||||||
|
if err != nil {
|
||||||
|
return c.Status(responseErrors.GetErrorStatus(responseErrors.ErrBadAttribute)).
|
||||||
|
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, responseErrors.ErrBadAttribute)))
|
||||||
|
}
|
||||||
|
|
||||||
|
id_lang, err := strconv.Atoi(c.Cookies("lang_id", "2"))
|
||||||
|
if err != nil {
|
||||||
|
return c.Status(responseErrors.GetErrorStatus(responseErrors.ErrBadAttribute)).
|
||||||
|
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, responseErrors.ErrBadAttribute)))
|
||||||
|
}
|
||||||
|
|
||||||
|
listing, err := h.listProductsService.GetListing(uint(id_shop), uint(id_lang), paging, filters)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return c.Status(responseErrors.GetErrorStatus(err)).
|
return c.Status(responseErrors.GetErrorStatus(err)).
|
||||||
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, err)))
|
JSON(response.Make(nullable.GetNil(""), 0, responseErrors.GetErrorCode(c, err)))
|
||||||
|
|||||||
@@ -61,6 +61,13 @@ type Product struct {
|
|||||||
State uint `gorm:"column:state" json:"state" form:"state"`
|
State uint `gorm:"column:state" json:"state" form:"state"`
|
||||||
DeliveryDays uint `gorm:"column:delivery_days" json:"delivery_days" form:"delivery_days"`
|
DeliveryDays uint `gorm:"column:delivery_days" json:"delivery_days" form:"delivery_days"`
|
||||||
}
|
}
|
||||||
|
type ProductInList struct {
|
||||||
|
ID uint `gorm:"column:id_product;primaryKey" json:"product_id" form:"product_id"`
|
||||||
|
Name string `gorm:"column:name;default:'no name'" json:"name" form:"name"`
|
||||||
|
Price float64 `gorm:"column:price;default:0.0" json:"price" form:"price"`
|
||||||
|
ActiveAsProduct uint `gorm:"column:active;default:0" json:"active_as_product" form:"active_as_product"`
|
||||||
|
ActiveInShop uint `gorm:"column:active;default:0" json:"active_in_shop" form:"active_in_shop"`
|
||||||
|
}
|
||||||
|
|
||||||
type ProductFilters struct {
|
type ProductFilters struct {
|
||||||
Sort string `json:"sort,omitempty" query:"sort,omitempty" example:"price,asc;name,desc"` // sort rule
|
Sort string `json:"sort,omitempty" query:"sort,omitempty" example:"price,asc;name,desc"` // sort rule
|
||||||
|
|||||||
@@ -17,8 +17,8 @@ func New() *ListProductsService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *ListProductsService) GetListing(p find.Paging, filters *filters.FiltersList) (find.Found[model.Product], error) {
|
func (s *ListProductsService) GetListing(id_shop uint, id_lang uint, p find.Paging, filters *filters.FiltersList) (find.Found[model.ProductInList], error) {
|
||||||
var products find.Found[model.Product]
|
var products find.Found[model.ProductInList]
|
||||||
|
|
||||||
// currencyIso := c.Cookies("currency_iso", "")
|
// currencyIso := c.Cookies("currency_iso", "")
|
||||||
// countryIso := c.Cookies("country_iso", "")
|
// countryIso := c.Cookies("country_iso", "")
|
||||||
@@ -30,7 +30,7 @@ func (s *ListProductsService) GetListing(p find.Paging, filters *filters.Filters
|
|||||||
// countryIso = overrides["override_country"]
|
// countryIso = overrides["override_country"]
|
||||||
// }
|
// }
|
||||||
|
|
||||||
products, err := s.listProductsRepo.GetListing(p, filters)
|
products, err := s.listProductsRepo.GetListing(id_shop, id_lang, p, filters)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return products, err
|
return products, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,224 +0,0 @@
|
|||||||
-- +goose Up
|
|
||||||
DELIMITER //
|
|
||||||
|
|
||||||
DROP PROCEDURE IF EXISTS get_full_product //
|
|
||||||
|
|
||||||
CREATE PROCEDURE get_full_product(
|
|
||||||
IN p_id_product INT UNSIGNED,
|
|
||||||
IN p_id_shop INT UNSIGNED,
|
|
||||||
IN p_id_lang INT UNSIGNED,
|
|
||||||
IN p_id_customer INT UNSIGNED,
|
|
||||||
IN p_id_group INT UNSIGNED,
|
|
||||||
IN p_id_currency INT UNSIGNED,
|
|
||||||
IN p_id_country INT UNSIGNED,
|
|
||||||
IN p_quantity INT UNSIGNED
|
|
||||||
)
|
|
||||||
BEGIN
|
|
||||||
|
|
||||||
DECLARE v_tax_rate DECIMAL(10,4) DEFAULT 0;
|
|
||||||
|
|
||||||
SELECT COALESCE(t.rate, 0.0000) INTO v_tax_rate
|
|
||||||
FROM ps_tax_rule tr
|
|
||||||
INNER JOIN ps_tax t
|
|
||||||
ON t.id_tax = tr.id_tax
|
|
||||||
WHERE tr.id_tax_rules_group = (
|
|
||||||
SELECT ps.id_tax_rules_group
|
|
||||||
FROM ps_product_shop ps
|
|
||||||
WHERE ps.id_product = p_id_product
|
|
||||||
AND ps.id_shop = p_id_shop
|
|
||||||
LIMIT 1
|
|
||||||
)
|
|
||||||
AND tr.id_country = p_id_country
|
|
||||||
ORDER BY
|
|
||||||
tr.id_state DESC,
|
|
||||||
tr.zipcode_from != '' DESC,
|
|
||||||
tr.id_tax_rule DESC
|
|
||||||
LIMIT 1;
|
|
||||||
|
|
||||||
/* FINAL JSON */
|
|
||||||
SELECT JSON_OBJECT(
|
|
||||||
|
|
||||||
/* ================= PRODUCT ================= */
|
|
||||||
'id_product', p.id_product,
|
|
||||||
'reference', p.reference,
|
|
||||||
'name', pl.name,
|
|
||||||
'description', pl.description,
|
|
||||||
'short_description', pl.description_short,
|
|
||||||
|
|
||||||
/* ================= PRICE ================= */
|
|
||||||
'price', JSON_OBJECT(
|
|
||||||
'base', COALESCE(ps.price, p.price),
|
|
||||||
|
|
||||||
'final_tax_excl',
|
|
||||||
(
|
|
||||||
COALESCE(ps.price, p.price)
|
|
||||||
- IFNULL(
|
|
||||||
CASE
|
|
||||||
WHEN sp.reduction_type = 'amount' THEN sp.reduction
|
|
||||||
WHEN sp.reduction_type = 'percentage' THEN COALESCE(ps.price, p.price) * sp.reduction
|
|
||||||
ELSE 0
|
|
||||||
END, 0
|
|
||||||
)
|
|
||||||
),
|
|
||||||
|
|
||||||
'final_tax_incl',
|
|
||||||
(
|
|
||||||
(
|
|
||||||
COALESCE(ps.price, p.price)
|
|
||||||
- IFNULL(
|
|
||||||
CASE
|
|
||||||
WHEN sp.reduction_type = 'amount' THEN sp.reduction
|
|
||||||
WHEN sp.reduction_type = 'percentage' THEN COALESCE(ps.price, p.price) * sp.reduction
|
|
||||||
ELSE 0
|
|
||||||
END, 0
|
|
||||||
)
|
|
||||||
) * (1 + v_tax_rate / 100)
|
|
||||||
)
|
|
||||||
),
|
|
||||||
|
|
||||||
/* ================= META ================= */
|
|
||||||
'active', COALESCE(ps.active, p.active),
|
|
||||||
'visibility', COALESCE(ps.visibility, p.visibility),
|
|
||||||
'manufacturer', m.name,
|
|
||||||
'category', cl.name,
|
|
||||||
|
|
||||||
/* ================= IMAGE ================= */
|
|
||||||
'cover_image', JSON_OBJECT(
|
|
||||||
'id', i.id_image,
|
|
||||||
'legend', il.legend
|
|
||||||
),
|
|
||||||
|
|
||||||
/* ================= FEATURES ================= */
|
|
||||||
'features', (
|
|
||||||
SELECT JSON_ARRAYAGG(
|
|
||||||
JSON_OBJECT(
|
|
||||||
'name', fl.name,
|
|
||||||
'value', fvl.value
|
|
||||||
)
|
|
||||||
)
|
|
||||||
FROM ps_feature_product fp
|
|
||||||
JOIN ps_feature_lang fl
|
|
||||||
ON fl.id_feature = fp.id_feature AND fl.id_lang = p_id_lang
|
|
||||||
JOIN ps_feature_value_lang fvl
|
|
||||||
ON fvl.id_feature_value = fp.id_feature_value AND fvl.id_lang = p_id_lang
|
|
||||||
WHERE fp.id_product = p.id_product
|
|
||||||
),
|
|
||||||
|
|
||||||
/* ================= COMBINATIONS ================= */
|
|
||||||
'combinations', (
|
|
||||||
SELECT JSON_ARRAYAGG(
|
|
||||||
JSON_OBJECT(
|
|
||||||
'id_product_attribute', pa.id_product_attribute,
|
|
||||||
'reference', pa.reference,
|
|
||||||
|
|
||||||
'price', JSON_OBJECT(
|
|
||||||
'impact', COALESCE(pas.price, pa.price),
|
|
||||||
|
|
||||||
'final_tax_excl',
|
|
||||||
(
|
|
||||||
COALESCE(ps.price, p.price)
|
|
||||||
+ COALESCE(pas.price, pa.price)
|
|
||||||
),
|
|
||||||
|
|
||||||
'final_tax_incl',
|
|
||||||
(
|
|
||||||
(
|
|
||||||
COALESCE(ps.price, p.price)
|
|
||||||
+ COALESCE(pas.price, pa.price)
|
|
||||||
) * (1 + v_tax_rate / 100)
|
|
||||||
)
|
|
||||||
),
|
|
||||||
|
|
||||||
'stock', IFNULL(sa.quantity, 0),
|
|
||||||
|
|
||||||
'default_on', pas.default_on,
|
|
||||||
|
|
||||||
/* ATTRIBUTES JSON */
|
|
||||||
'attributes', (
|
|
||||||
SELECT JSON_ARRAYAGG(
|
|
||||||
JSON_OBJECT(
|
|
||||||
'group', agl.name,
|
|
||||||
'attribute', al.name
|
|
||||||
)
|
|
||||||
)
|
|
||||||
FROM ps_product_attribute_combination pac
|
|
||||||
JOIN ps_attribute a ON a.id_attribute = pac.id_attribute
|
|
||||||
JOIN ps_attribute_lang al
|
|
||||||
ON al.id_attribute = a.id_attribute AND al.id_lang = p_id_lang
|
|
||||||
JOIN ps_attribute_group_lang agl
|
|
||||||
ON agl.id_attribute_group = a.id_attribute_group AND agl.id_lang = p_id_lang
|
|
||||||
WHERE pac.id_product_attribute = pa.id_product_attribute
|
|
||||||
),
|
|
||||||
|
|
||||||
/* IMAGES */
|
|
||||||
'images', (
|
|
||||||
SELECT JSON_ARRAYAGG(img.id_image)
|
|
||||||
FROM ps_product_attribute_image pai
|
|
||||||
JOIN ps_image img ON img.id_image = pai.id_image
|
|
||||||
WHERE pai.id_product_attribute = pa.id_product_attribute
|
|
||||||
)
|
|
||||||
|
|
||||||
)
|
|
||||||
)
|
|
||||||
FROM ps_product_attribute pa
|
|
||||||
JOIN ps_product_attribute_shop pas
|
|
||||||
ON pas.id_product_attribute = pa.id_product_attribute
|
|
||||||
AND pas.id_shop = p_id_shop
|
|
||||||
LEFT JOIN ps_stock_available sa
|
|
||||||
ON sa.id_product = pa.id_product
|
|
||||||
AND sa.id_product_attribute = pa.id_product_attribute
|
|
||||||
AND sa.id_shop = p_id_shop
|
|
||||||
WHERE pa.id_product = p.id_product
|
|
||||||
)
|
|
||||||
|
|
||||||
) AS product_json
|
|
||||||
|
|
||||||
FROM ps_product p
|
|
||||||
|
|
||||||
LEFT JOIN ps_product_shop ps
|
|
||||||
ON ps.id_product = p.id_product AND ps.id_shop = p_id_shop
|
|
||||||
|
|
||||||
LEFT JOIN ps_product_lang pl
|
|
||||||
ON pl.id_product = p.id_product
|
|
||||||
AND pl.id_lang = p_id_lang
|
|
||||||
AND pl.id_shop = p_id_shop
|
|
||||||
|
|
||||||
LEFT JOIN ps_category_lang cl
|
|
||||||
ON cl.id_category = COALESCE(ps.id_category_default, p.id_category_default)
|
|
||||||
AND cl.id_lang = p_id_lang
|
|
||||||
AND cl.id_shop = p_id_shop
|
|
||||||
|
|
||||||
LEFT JOIN ps_manufacturer m
|
|
||||||
ON m.id_manufacturer = p.id_manufacturer
|
|
||||||
|
|
||||||
LEFT JOIN ps_image i
|
|
||||||
ON i.id_product = p.id_product AND i.cover = 1
|
|
||||||
|
|
||||||
LEFT JOIN ps_image_lang il
|
|
||||||
ON il.id_image = i.id_image AND il.id_lang = p_id_lang
|
|
||||||
|
|
||||||
/* SPECIFIC PRICE */
|
|
||||||
LEFT JOIN (
|
|
||||||
SELECT sp1.*
|
|
||||||
FROM ps_specific_price sp1
|
|
||||||
WHERE sp1.id_product = p_id_product
|
|
||||||
AND (sp1.id_customer = 0 OR sp1.id_customer = p_id_customer)
|
|
||||||
AND (sp1.id_group = 0 OR sp1.id_group = p_id_group)
|
|
||||||
AND (sp1.id_currency = 0 OR sp1.id_currency = p_id_currency)
|
|
||||||
AND sp1.from_quantity <= p_quantity
|
|
||||||
ORDER BY
|
|
||||||
sp1.id_customer DESC,
|
|
||||||
sp1.id_group DESC,
|
|
||||||
sp1.from_quantity DESC,
|
|
||||||
sp1.id_specific_price DESC
|
|
||||||
LIMIT 1
|
|
||||||
) sp ON sp.id_product = p.id_product
|
|
||||||
|
|
||||||
WHERE p.id_product = p_id_product
|
|
||||||
|
|
||||||
LIMIT 1;
|
|
||||||
|
|
||||||
END //
|
|
||||||
|
|
||||||
DELIMITER ;
|
|
||||||
-- +goose Down
|
|
||||||
431
package-lock.json
generated
431
package-lock.json
generated
@@ -4,6 +4,7 @@
|
|||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
|
"name": "b2b",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@nuxt/ui": "^4.5.1",
|
"@nuxt/ui": "^4.5.1",
|
||||||
"chart.js": "^4.5.1",
|
"chart.js": "^4.5.1",
|
||||||
@@ -1006,6 +1007,395 @@
|
|||||||
"integrity": "sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==",
|
"integrity": "sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
|
"node_modules/@rollup/rollup-android-arm-eabi": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-upnNBkA6ZH2VKGcBj9Fyl9IGNPULcjXRlg0LLeaioQWueH30p6IXtJEbKAgvyv+mJaMxSm1l6xwDXYjpEMiLMg==",
|
||||||
|
"cpu": [
|
||||||
|
"arm"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"android"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-android-arm64": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-hZ+Zxj3SySm4A/DylsDKZAeVg0mvi++0PYVceVyX7hemkw7OreKdCvW2oQ3T1FMZvCaQXqOTHb8qmBShoqk69Q==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"android"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-darwin-arm64": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-W2Psnbh1J8ZJw0xKAd8zdNgF9HRLkdWwwdWqubSVk0pUuQkoHnv7rx4GiF9rT4t5DIZGAsConRE3AxCdJ4m8rg==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"darwin"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-darwin-x64": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-ZW2KkwlS4lwTv7ZVsYDiARfFCnSGhzYPdiOU4IM2fDbL+QGlyAbjgSFuqNRbSthybLbIJ915UtZBtmuLrQAT/w==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"darwin"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-freebsd-arm64": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-EsKaJ5ytAu9jI3lonzn3BgG8iRBjV4LxZexygcQbpiU0wU0ATxhNVEpXKfUa0pS05gTcSDMKpn3Sx+QB9RlTTA==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"freebsd"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-freebsd-x64": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-d3DuZi2KzTMjImrxoHIAODUZYoUUMsuUiY4SRRcJy6NJoZ6iIqWnJu9IScV9jXysyGMVuW+KNzZvBLOcpdl3Vg==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"freebsd"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-t4ONHboXi/3E0rT6OZl1pKbl2Vgxf9vJfWgmUoCEVQVxhW6Cw/c8I6hbbu7DAvgp82RKiH7TpLwxnJeKv2pbsw==",
|
||||||
|
"cpu": [
|
||||||
|
"arm"
|
||||||
|
],
|
||||||
|
"libc": [
|
||||||
|
"glibc"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-CikFT7aYPA2ufMD086cVORBYGHffBo4K8MQ4uPS/ZnY54GKj36i196u8U+aDVT2LX4eSMbyHtyOh7D7Zvk2VvA==",
|
||||||
|
"cpu": [
|
||||||
|
"arm"
|
||||||
|
],
|
||||||
|
"libc": [
|
||||||
|
"musl"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-linux-arm64-gnu": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-jYgUGk5aLd1nUb1CtQ8E+t5JhLc9x5WdBKew9ZgAXg7DBk0ZHErLHdXM24rfX+bKrFe+Xp5YuJo54I5HFjGDAA==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"libc": [
|
||||||
|
"glibc"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-linux-arm64-musl": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-peZRVEdnFWZ5Bh2KeumKG9ty7aCXzzEsHShOZEFiCQlDEepP1dpUl/SrUNXNg13UmZl+gzVDPsiCwnV1uI0RUA==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"libc": [
|
||||||
|
"musl"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-linux-loong64-gnu": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-gbUSW/97f7+r4gHy3Jlup8zDG190AuodsWnNiXErp9mT90iCy9NKKU0Xwx5k8VlRAIV2uU9CsMnEFg/xXaOfXg==",
|
||||||
|
"cpu": [
|
||||||
|
"loong64"
|
||||||
|
],
|
||||||
|
"libc": [
|
||||||
|
"glibc"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-linux-loong64-musl": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-yTRONe79E+o0FWFijasoTjtzG9EBedFXJMl888NBEDCDV9I2wGbFFfJQQe63OijbFCUZqxpHz1GzpbtSFikJ4Q==",
|
||||||
|
"cpu": [
|
||||||
|
"loong64"
|
||||||
|
],
|
||||||
|
"libc": [
|
||||||
|
"musl"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-linux-ppc64-gnu": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-sw1o3tfyk12k3OEpRddF68a1unZ5VCN7zoTNtSn2KndUE+ea3m3ROOKRCZxEpmT9nsGnogpFP9x6mnLTCaoLkA==",
|
||||||
|
"cpu": [
|
||||||
|
"ppc64"
|
||||||
|
],
|
||||||
|
"libc": [
|
||||||
|
"glibc"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-linux-ppc64-musl": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-+2kLtQ4xT3AiIxkzFVFXfsmlZiG5FXYW7ZyIIvGA7Bdeuh9Z0aN4hVyXS/G1E9bTP/vqszNIN/pUKCk/BTHsKA==",
|
||||||
|
"cpu": [
|
||||||
|
"ppc64"
|
||||||
|
],
|
||||||
|
"libc": [
|
||||||
|
"musl"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-NDYMpsXYJJaj+I7UdwIuHHNxXZ/b/N2hR15NyH3m2qAtb/hHPA4g4SuuvrdxetTdndfj9b1WOmy73kcPRoERUg==",
|
||||||
|
"cpu": [
|
||||||
|
"riscv64"
|
||||||
|
],
|
||||||
|
"libc": [
|
||||||
|
"glibc"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-linux-riscv64-musl": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-nLckB8WOqHIf1bhymk+oHxvM9D3tyPndZH8i8+35p/1YiVoVswPid2yLzgX7ZJP0KQvnkhM4H6QZ5m0LzbyIAg==",
|
||||||
|
"cpu": [
|
||||||
|
"riscv64"
|
||||||
|
],
|
||||||
|
"libc": [
|
||||||
|
"musl"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-linux-s390x-gnu": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-oF87Ie3uAIvORFBpwnCvUzdeYUqi2wY6jRFWJAy1qus/udHFYIkplYRW+wo+GRUP4sKzYdmE1Y3+rY5Gc4ZO+w==",
|
||||||
|
"cpu": [
|
||||||
|
"s390x"
|
||||||
|
],
|
||||||
|
"libc": [
|
||||||
|
"glibc"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-linux-x64-gnu": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-3AHmtQq/ppNuUspKAlvA8HtLybkDflkMuLK4DPo77DfthRb71V84/c4MlWJXixZz4uruIH4uaa07IqoAkG64fg==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"libc": [
|
||||||
|
"glibc"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-linux-x64-musl": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-2UdiwS/9cTAx7qIUZB/fWtToJwvt0Vbo0zmnYt7ED35KPg13Q0ym1g442THLC7VyI6JfYTP4PiSOWyoMdV2/xg==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"libc": [
|
||||||
|
"musl"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"linux"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-openbsd-x64": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-M3bLRAVk6GOwFlPTIxVBSYKUaqfLrn8l0psKinkCFxl4lQvOSz8ZrKDz2gxcBwHFpci0B6rttydI4IpS4IS/jQ==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"openbsd"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-openharmony-arm64": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-tt9KBJqaqp5i5HUZzoafHZX8b5Q2Fe7UjYERADll83O4fGqJ49O1FsL6LpdzVFQcpwvnyd0i+K/VSwu/o/nWlA==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"openharmony"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-win32-arm64-msvc": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-V5B6mG7OrGTwnxaNUzZTDTjDS7F75PO1ae6MJYdiMu60sq0CqN5CVeVsbhPxalupvTX8gXVSU9gq+Rx1/hvu6A==",
|
||||||
|
"cpu": [
|
||||||
|
"arm64"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"win32"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-win32-ia32-msvc": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-UKFMHPuM9R0iBegwzKF4y0C4J9u8C6MEJgFuXTBerMk7EJ92GFVFYBfOZaSGLu6COf7FxpQNqhNS4c4icUPqxA==",
|
||||||
|
"cpu": [
|
||||||
|
"ia32"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"win32"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-win32-x64-gnu": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-laBkYlSS1n2L8fSo1thDNGrCTQMmxjYY5G0WFWjFFYZkKPjsMBsgJfGf4TLxXrF6RyhI60L8TMOjBMvXiTcxeA==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"win32"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
|
"node_modules/@rollup/rollup-win32-x64-msvc": {
|
||||||
|
"version": "4.59.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.59.0.tgz",
|
||||||
|
"integrity": "sha512-2HRCml6OztYXyJXAvdDXPKcawukWY2GpR5/nxKp4iBgiO3wcoEGkAaqctIbZcNB6KlUQBIqt8VYkNSj2397EfA==",
|
||||||
|
"cpu": [
|
||||||
|
"x64"
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"win32"
|
||||||
|
],
|
||||||
|
"peer": true
|
||||||
|
},
|
||||||
"node_modules/@standard-schema/spec": {
|
"node_modules/@standard-schema/spec": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
|
||||||
@@ -1975,13 +2365,13 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@unhead/vue": {
|
"node_modules/@unhead/vue": {
|
||||||
"version": "2.1.10",
|
"version": "2.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-2.1.10.tgz",
|
"resolved": "https://registry.npmjs.org/@unhead/vue/-/vue-2.1.12.tgz",
|
||||||
"integrity": "sha512-VP78Onh2HNezLPfhYjfHqn4dxlcQsE6PJgTTs61NksO/thvilNswtgBq0N0MWCLtn43N5akEPGW2y2zxM3PWgQ==",
|
"integrity": "sha512-zEWqg0nZM8acpuTZE40wkeUl8AhIe0tU0OkilVi1D4fmVjACrwoh5HP6aNqJ8kUnKsoy6D+R3Vi/O+fmdNGO7g==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"hookable": "^6.0.1",
|
"hookable": "^6.0.1",
|
||||||
"unhead": "2.1.10"
|
"unhead": "2.1.12"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"url": "https://github.com/sponsors/harlan-zw"
|
"url": "https://github.com/sponsors/harlan-zw"
|
||||||
@@ -2801,6 +3191,21 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/fsevents": {
|
||||||
|
"version": "2.3.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
|
||||||
|
"integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"os": [
|
||||||
|
"darwin"
|
||||||
|
],
|
||||||
|
"peer": true,
|
||||||
|
"engines": {
|
||||||
|
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/fuse.js": {
|
"node_modules/fuse.js": {
|
||||||
"version": "7.1.0",
|
"version": "7.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/fuse.js/-/fuse.js-7.1.0.tgz",
|
||||||
@@ -2846,9 +3251,9 @@
|
|||||||
"license": "ISC"
|
"license": "ISC"
|
||||||
},
|
},
|
||||||
"node_modules/h3": {
|
"node_modules/h3": {
|
||||||
"version": "1.15.5",
|
"version": "1.15.8",
|
||||||
"resolved": "https://registry.npmjs.org/h3/-/h3-1.15.5.tgz",
|
"resolved": "https://registry.npmjs.org/h3/-/h3-1.15.8.tgz",
|
||||||
"integrity": "sha512-xEyq3rSl+dhGX2Lm0+eFQIAzlDN6Fs0EcC4f7BNUmzaRX/PTzeuM+Tr2lHB8FoXggsQIeXLj8EDVgs5ywxyxmg==",
|
"integrity": "sha512-iOH6Vl8mGd9nNfu9C0IZ+GuOAfJHcyf3VriQxWaSWIB76Fg4BnFuk4cxBxjmQSSxJS664+pgjP6e7VBnUzFfcg==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cookie-es": "^1.2.2",
|
"cookie-es": "^1.2.2",
|
||||||
@@ -4257,9 +4662,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/unhead": {
|
"node_modules/unhead": {
|
||||||
"version": "2.1.10",
|
"version": "2.1.12",
|
||||||
"resolved": "https://registry.npmjs.org/unhead/-/unhead-2.1.10.tgz",
|
"resolved": "https://registry.npmjs.org/unhead/-/unhead-2.1.12.tgz",
|
||||||
"integrity": "sha512-We8l9uNF8zz6U8lfQaVG70+R/QBfQx1oPIgXin4BtZnK2IQpz6yazQ0qjMNVBDw2ADgF2ea58BtvSK+XX5AS7g==",
|
"integrity": "sha512-iTHdWD9ztTunOErtfUFk6Wr11BxvzumcYJ0CzaSCBUOEtg+DUZ9+gnE99i8QkLFT2q1rZD48BYYGXpOZVDLYkA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"hookable": "^6.0.1"
|
"hookable": "^6.0.1"
|
||||||
@@ -4269,9 +4674,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/unhead/node_modules/hookable": {
|
"node_modules/unhead/node_modules/hookable": {
|
||||||
"version": "6.0.1",
|
"version": "6.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/hookable/-/hookable-6.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/hookable/-/hookable-6.1.0.tgz",
|
||||||
"integrity": "sha512-uKGyY8BuzN/a5gvzvA+3FVWo0+wUjgtfSdnmjtrOVwQCZPHpHDH2WRO3VZSOeluYrHoDCiXFffZXs8Dj1ULWtw==",
|
"integrity": "sha512-ZoKZSJgu8voGK2geJS+6YtYjvIzu9AOM/KZXsBxr83uhLL++e9pEv/dlgwgy3dvHg06kTz6JOh1hk3C8Ceiymw==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/unifont": {
|
"node_modules/unifont": {
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type UIListProductsRepo interface {
|
type UIListProductsRepo interface {
|
||||||
GetListing(p find.Paging, filt *filters.FiltersList) (find.Found[model.Product], error)
|
GetListing(id_shop uint, id_lang uint, p find.Paging, filt *filters.FiltersList) (find.Found[model.ProductInList], error)
|
||||||
}
|
}
|
||||||
|
|
||||||
type ListProductsRepo struct{}
|
type ListProductsRepo struct{}
|
||||||
@@ -17,12 +17,18 @@ func New() UIListProductsRepo {
|
|||||||
return &ListProductsRepo{}
|
return &ListProductsRepo{}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (repo *ListProductsRepo) GetListing(p find.Paging, filt *filters.FiltersList) (find.Found[model.Product], error) {
|
func (repo *ListProductsRepo) GetListing(id_shop uint, id_lang uint, p find.Paging, filt *filters.FiltersList) (find.Found[model.ProductInList], error) {
|
||||||
var listing []model.Product
|
var listing []model.ProductInList
|
||||||
var total int64
|
var total int64
|
||||||
|
|
||||||
// Apply filters here
|
// Apply filters here
|
||||||
q := db.DB.Table("ps_product")
|
q := db.DB.Table("ps_product").
|
||||||
|
Select("ps_product.id_product AS id_product", "ps_product_lang.name AS name", "ps_product_shop.price AS price", "ps_product.active AS active_as_product", "ps_product_shop.active AS active_in_shop").
|
||||||
|
Joins("LEFT JOIN ps_product_shop ON ps_product.id_product = ps_product_shop.id_product").
|
||||||
|
Joins("LEFT JOIN ps_product_lang ON ps_product.id_product = ps_product_lang.id_product").
|
||||||
|
Where("ps_product_shop.id_shop = ?", id_shop).
|
||||||
|
Where("ps_product_lang.id_shop = ?", id_shop).
|
||||||
|
Where("ps_product_lang.id_lang = ?", id_lang)
|
||||||
|
|
||||||
// var resultIDs []uint
|
// var resultIDs []uint
|
||||||
// q := db.DB.
|
// q := db.DB.
|
||||||
@@ -40,7 +46,7 @@ func (repo *ListProductsRepo) GetListing(p find.Paging, filt *filters.FiltersLis
|
|||||||
|
|
||||||
err := q.Count(&total).Error
|
err := q.Count(&total).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return find.Found[model.Product]{}, err
|
return find.Found[model.ProductInList]{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
err = q.
|
err = q.
|
||||||
@@ -48,10 +54,10 @@ func (repo *ListProductsRepo) GetListing(p find.Paging, filt *filters.FiltersLis
|
|||||||
Offset(p.Offset()).
|
Offset(p.Offset()).
|
||||||
Scan(&listing).Error
|
Scan(&listing).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return find.Found[model.Product]{}, err
|
return find.Found[model.ProductInList]{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return find.Found[model.Product]{
|
return find.Found[model.ProductInList]{
|
||||||
Items: listing,
|
Items: listing,
|
||||||
Count: uint(total),
|
Count: uint(total),
|
||||||
}, nil
|
}, nil
|
||||||
|
|||||||
Reference in New Issue
Block a user