diff --git a/.gitignore b/.gitignore index 917c0b2..1b4ed1a 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,4 @@ yarn-error.log* # local .env files .env.local* +api/.env diff --git a/.vscode/settings.json b/.vscode/settings.json index 336c3a7..4ebbc22 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -74,5 +74,8 @@ "workbench.tree.indent": 16, "window.zoomLevel": 0, "git.ignoreRebaseWarning": true, - "editor.largeFileOptimizations": false + "editor.largeFileOptimizations": false, + "[javascript]": { + "editor.defaultFormatter": "vscode.typescript-language-features" + } } diff --git a/api/.env.example b/api/.env.example new file mode 100644 index 0000000..5418d4b --- /dev/null +++ b/api/.env.example @@ -0,0 +1,5 @@ +HOST="127.0.0.1" +DB_USER="root" +DB_PASSWORD="root" +PORT ="3306" +DATABASE="floranet" \ No newline at end of file diff --git a/api/controller/product.controller.js b/api/controller/product.controller.js index dff060a..67403d6 100644 --- a/api/controller/product.controller.js +++ b/api/controller/product.controller.js @@ -1,46 +1,117 @@ +const db = require("../db/db"); const productsJson = require("./products.json") + class ProductController { - findAll(req, res) { + async findAll(req, res) { + + + const _products = await db.getProducts(); + const mapedProducts = await _products[0].map(function (item) { + return { + id: item.id, + name: item.name, + description: item.description, + type: item.type, + price: item.size, + specialPrice: item.specialPrice, + isNew: item.isNew, + slug: item.slug, + category: item.category, + postalCode: item.postalCode, + dateExpired: item.dateExpired, + images: [item.image], + featured: item.featured, + } + }) + //Gerar produtos fake /* const fakeProducts = generateFlowers(50) console.log(fakeProducts); */ const params = req.query; - let productsFilter = productsJson + let productsFilter = mapedProducts + console.log(params); if (Number(params.featured)) { productsFilter = productsFilter.filter(item => item.featured === Number(params.featured)) } - /*let productsFilterPages = [] - - const totalItens = params?.itens ? Number(params.itens) : 200 - const productFilterItens = params?.itens ? products.slice(0, totalItens) : products - - - if (Number(params.itensPerPage) > 1) { - const itensPerPage = Number(params.itensPerPage) - const totalPages = Math.ceil(productFilterItens.length / itensPerPage) - for (let i = 1; i <= totalPages; i++) { - const startIndex = (i - 1) * itensPerPage; - const endIndex = i * itensPerPage; - const lastestIndex = endIndex > totalItens ? totalItens : endIndex - productsFilterPages.push({ - page: i, - itensPerProduct: lastestIndex - startIndex, - products: productFilterItens.slice(startIndex, lastestIndex) - }) - } + if (params.category) { + productsFilter = productsFilter.filter(item => item.category === Number(params.category)) } - else { - productsFilterPages.push({ - page: 1, - itensPerProduct: totalItens, - products: productFilterItens + if (params.postalCode) { + productsFilter = productsFilter.filter(item => item.postalCode === params.postalCode) + } + if (params.minPrice && !params.maxPrice) { + productsFilter = productsFilter.filter(item => { + const price = Number(item.price.replace(/€/g, '')) + if (price >= Number(params.minPrice)) { + return item + } }) - } */ + } + if (params.maxPrice && !params.minPrice) { + productsFilter = productsFilter.filter(item => { + const price = Number(item.price.replace(/€/g, '')) + if (price <= Number(params.maxPrice)) { + return item + } + }) + } + if (params.maxPrice && params.minPrice) { + productsFilter = productsFilter.filter(item => { + const price = Number(item.price.replace(/€/g, '')) + if (price >= Number(params.minPrice) && price <= Number(params.maxPrice)) { + console.log(price); + return item + } + }) + } + if (params.dateExpired) { + const [day, month, year] = params.dateExpired.split("/"); + const dateSearch = new Date(year, month - 1, day); + productsFilter = productsFilter.filter(item => { + const [day, month, year] = item.dateExpired.split("/"); + const dateProduct = new Date(year, month - 1, day); + if (dateProduct >= dateSearch) { + return item + } + }) + } + + if (Number(params.bigPrice)) { + productsFilter.sort((a, b) => { + const itemA = Number(a.price.replace(/€/g, '')) + const itemB = Number(b.price.replace(/€/g, '')) + return itemB - itemA; + }) + } + + if (Number(params.lowPrice)) { + productsFilter.sort((a, b) => { + const itemA = Number(a.price.replace(/€/g, '')) + const itemB = Number(b.price.replace(/€/g, '')) + return itemA - itemB; + }) + } + + if (params.isNew) { + productsFilter = productsFilter.filter(item => item.isNew === true) + } + + let productsFilterPages = [] + const totalItens = params?.itens ? Number(params.itens) : 200 + const page = params.page ? Number(params.page) : 1 + const startIndex = (totalItens * page) - totalItens + const lastIndex = (totalItens * page) + const products = productsFilter.slice(startIndex, lastIndex) + productsFilterPages.push({ + page: page, + productsPerPage: products.length, + products: products + }) return res.status(200).send({ - data: productsFilter + data: productsFilterPages }) } diff --git a/api/controller/products.json b/api/controller/products.json index 516a6c2..3840e9b 100644 --- a/api/controller/products.json +++ b/api/controller/products.json @@ -1,1657 +1,1974 @@ [ { "id": 1, - "name": "Ergonómico Algodón Pelota", - "description": "The Football Is Good For Training And Recreational Purposes", - "price": "€113", - "specialPrice": "€37", - "slug": "978-0-330-96578-1", - "category": "Granito", + "name": "Increible Metal Gorro", + "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals", + "price": "€200", + "specialPrice": "€54", + "isNew": false, + "slug": "978-1-348-64648-8", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/JH9dPie/640/480", - "https://picsum.photos/seed/h2KQG6yc/640/480", - "https://picsum.photos/seed/WFwyX/640/480" + "https://picsum.photos/seed/efCSfe/640/480", + "https://picsum.photos/seed/cJ5zEC/640/480" ], - "featured": 1, - "position": 1 + "featured": 1 }, { "id": 2, - "name": "Refinado Metal Pollo", + "name": "Inteligente Ladrillo Atún", "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support", - "price": "€126", - "specialPrice": "€53", - "slug": "978-0-9844558-6-7", - "category": "Plástico", + "price": "€59", + "specialPrice": "€36", + "isNew": true, + "slug": "978-0-8481-8892-4", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/yKV3gyI80/640/480", - "https://picsum.photos/seed/unHLnqP/640/480", - "https://picsum.photos/seed/53FPGjTYT/640/480", - "https://picsum.photos/seed/IFxZB6GXV/640/480", - "https://picsum.photos/seed/WPmRkW/640/480" + "https://picsum.photos/seed/aqCUrLS/640/480", + "https://picsum.photos/seed/AyGVwTCkAI/640/480", + "https://picsum.photos/seed/N0kuFal/640/480" ], - "featured": 1, + "featured": 0, "position": 2 }, { "id": 3, - "name": "Práctico Madera Ensalada", - "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support", - "price": "€200", + "name": "Sabroso Madera Camiseta", + "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive", + "price": "€67", "specialPrice": "€25", - "slug": "978-1-154-04862-9", - "category": "Metal", + "isNew": true, + "slug": "978-0-319-77499-1", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/2vUEN/640/480", - "https://picsum.photos/seed/961SDjaXH/640/480" + "https://picsum.photos/seed/hLvGjJ/640/480", + "https://picsum.photos/seed/NcOmpIJw/640/480" ], - "featured": 0 + "featured": 1, + "position": 3 }, { "id": 4, - "name": "Increible Hormigon Camiseta", - "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality", - "price": "€93", - "specialPrice": "€56", - "slug": "978-1-213-72072-5", - "category": "Algodón", + "name": "Genérico Algodón Coche", + "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design", + "price": "€128", + "specialPrice": "€34", + "isNew": false, + "slug": "978-0-431-46161-8", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/GBasmlrOV/640/480", - "https://picsum.photos/seed/LN6joo2/640/480", - "https://picsum.photos/seed/wWzbx4j/640/480", - "https://picsum.photos/seed/1Nz4ysU/640/480" + "https://picsum.photos/seed/knVoCgN/640/480", + "https://picsum.photos/seed/5yGO2h/640/480" ], - "featured": 1 + "featured": 1, + "position": 4, + "discount": "5" }, { "id": 5, - "name": "Sorprendente Algodón Mesa", - "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive", - "price": "€34", - "specialPrice": "€49", - "slug": "978-0-7392-6231-3", - "category": "Ladrillo", + "name": "Ergonómico Algodón Pantalones", + "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J", + "price": "€193", + "specialPrice": "€54", + "isNew": false, + "slug": "978-1-342-63425-2", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/dUJLXmr0/640/480", - "https://picsum.photos/seed/yjPwsBW/640/480", - "https://picsum.photos/seed/8ZgcpeSB/640/480", - "https://picsum.photos/seed/8o9RQxgUMX/640/480", - "https://picsum.photos/seed/SBoKu/640/480", - "https://picsum.photos/seed/Vyw7g0bpx2/640/480" + "https://picsum.photos/seed/YD3k3/640/480", + "https://picsum.photos/seed/jkGhjeZ00/640/480", + "https://picsum.photos/seed/gSNZGN/640/480", + "https://picsum.photos/seed/AEJnS/640/480" + ], + "featured": 1, + "discount": "14" + }, + { + "id": 6, + "name": "Increible Hormigon Sopa", + "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals", + "price": "€77", + "specialPrice": "€40", + "isNew": true, + "slug": "978-1-268-28760-0", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", + "images": [ + "https://picsum.photos/seed/xntRUHQ/640/480", + "https://picsum.photos/seed/Hu4oY/640/480", + "https://picsum.photos/seed/590BcM/640/480", + "https://picsum.photos/seed/HsVfl/640/480" ], "featured": 1 }, - { - "id": 6, - "name": "Rústico Madera Ensalada", - "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart", - "price": "€194", - "specialPrice": "€40", - "slug": "978-1-284-04063-0", - "category": "Acero", - "images": [ - "https://picsum.photos/seed/mQVUrz65d/640/480", - "https://picsum.photos/seed/igrWSfSZ/640/480", - "https://picsum.photos/seed/ciRaPt3/640/480", - "https://picsum.photos/seed/CuAhLLVWl/640/480", - "https://picsum.photos/seed/t0teUjmTTo/640/480" - ], - "featured": 0 - }, { "id": 7, - "name": "Rústico Hormigon Mesa", - "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support", - "price": "€27", - "specialPrice": "€53", - "slug": "978-1-6690-4562-5", - "category": "Ladrillo", + "name": "Sorprendente Metal Teclado", + "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design", + "price": "€84", + "specialPrice": "€42", + "isNew": true, + "slug": "978-0-7079-1378-0", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/TSj7zu/640/480", - "https://picsum.photos/seed/JNzgCUxLj6/640/480", - "https://picsum.photos/seed/SkdNDb/640/480" + "https://picsum.photos/seed/oVPFFWAPa/640/480", + "https://picsum.photos/seed/DAsBOLDk/640/480", + "https://picsum.photos/seed/WyZIkkU999/640/480", + "https://picsum.photos/seed/qQ5llz2/640/480", + "https://picsum.photos/seed/Neug42/640/480" ], - "featured": 0 + "featured": 1, + "position": 7, + "discount": "8" }, { "id": 8, - "name": "Rústico Metal Coche", - "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality", - "price": "€26", - "specialPrice": "€21", - "slug": "978-0-09-885523-2", - "category": "Madera", + "name": "Práctico Plástico Patatas fritas", + "description": "The Football Is Good For Training And Recreational Purposes", + "price": "€91", + "specialPrice": "€44", + "isNew": false, + "slug": "978-1-295-54883-5", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/0EGrrUV/640/480", - "https://picsum.photos/seed/u3mrd3X/640/480" + "https://picsum.photos/seed/6enb1U/640/480", + "https://picsum.photos/seed/wLiKA/640/480", + "https://picsum.photos/seed/7BHZ8KnK0J/640/480", + "https://picsum.photos/seed/ZswFH/640/480" ], - "featured": 0 + "featured": 1, + "position": 8, + "discount": "12" }, { "id": 9, - "name": "Práctico Metal Zapatos", - "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles", - "price": "€188", - "specialPrice": "€47", - "slug": "978-0-640-37623-9", - "category": "Ladrillo", + "name": "Sabroso Ladrillo Pollo", + "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit", + "price": "€179", + "specialPrice": "€48", + "isNew": false, + "slug": "978-1-63125-580-9", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/MXwOY54Ry/640/480", - "https://picsum.photos/seed/m6pqab/640/480" + "https://picsum.photos/seed/rtWLLUs/640/480", + "https://picsum.photos/seed/84YmSjI/640/480", + "https://picsum.photos/seed/8mfl0k/640/480", + "https://picsum.photos/seed/FXbll/640/480" ], - "featured": 1, - "position": 9 + "featured": 0, + "discount": "12" }, { "id": 10, - "name": "Artesanal Granito Silla", - "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016", - "price": "€172", - "specialPrice": "€56", - "slug": "978-0-311-92573-5", - "category": "Granito", + "name": "Genérico Plástico Gorro", + "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J", + "price": "€50", + "specialPrice": "€32", + "isNew": true, + "slug": "978-1-76312-403-5", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/oHexBP/640/480", - "https://picsum.photos/seed/8UiGRV9/640/480", - "https://picsum.photos/seed/zjDG05/640/480", - "https://picsum.photos/seed/KAMweQmv/640/480", - "https://picsum.photos/seed/XGkjTtJz11/640/480", - "https://picsum.photos/seed/EHj8KWsq/640/480" + "https://picsum.photos/seed/FB6ThP/640/480", + "https://picsum.photos/seed/9KZh5I/640/480" + ], + "featured": 0, + "position": 10, + "discount": "15" + }, + { + "id": 11, + "name": "Ergonómico Plástico Raton", + "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles", + "price": "€108", + "specialPrice": "€54", + "isNew": true, + "slug": "978-1-82301-801-4", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", + "images": [ + "https://picsum.photos/seed/AQBLZ/640/480", + "https://picsum.photos/seed/luBRfDE3N/640/480", + "https://picsum.photos/seed/lDgqkF7FZ/640/480", + "https://picsum.photos/seed/hZC5b3hFzC/640/480", + "https://picsum.photos/seed/LdmTkN/640/480", + "https://picsum.photos/seed/1vhVw/640/480" ], "featured": 0 }, { - "id": 11, - "name": "Guapo Acero Toallas", - "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart", - "price": "€29", - "specialPrice": "€30", - "slug": "978-1-130-35237-5", - "category": "Algodón", + "id": 12, + "name": "Guapo Acero Mesa", + "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016", + "price": "€56", + "specialPrice": "€28", + "isNew": false, + "slug": "978-1-965192-91-7", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/YJaac93xt/640/480", - "https://picsum.photos/seed/A4EZfX/640/480", - "https://picsum.photos/seed/T1MpekqR6/640/480", - "https://picsum.photos/seed/zMkYSk/640/480" + "https://picsum.photos/seed/j1ViMIl/640/480", + "https://picsum.photos/seed/GlmDi/640/480", + "https://picsum.photos/seed/fYbvd6t/640/480" ], "featured": 1, - "position": 11 - }, - { - "id": 12, - "name": "Rústico Granito Ordenador", - "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit", - "price": "€29", - "specialPrice": "€55", - "slug": "978-1-5038-9221-7", - "category": "Granito", - "images": [ - "https://picsum.photos/seed/PdHPjQ4/640/480", - "https://picsum.photos/seed/GgLv2V/640/480" - ], - "featured": 0, "position": 12 }, { "id": 13, - "name": "Pequeño Metal Zapatos", - "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016", - "price": "€189", - "specialPrice": "€52", - "slug": "978-0-925111-78-4", - "category": "Hormigon", + "name": "Genérico Ladrillo Pizza", + "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive", + "price": "€130", + "specialPrice": "€50", + "isNew": false, + "slug": "978-0-87287-519-7", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/hkFCx8pbe/640/480", - "https://picsum.photos/seed/Qfsgnonns/640/480", - "https://picsum.photos/seed/AqZQ4TaOUR/640/480", - "https://picsum.photos/seed/HAmupz5Nbt/640/480", - "https://picsum.photos/seed/ffq8pt/640/480", - "https://picsum.photos/seed/l3lPOlDBK4/640/480" + "https://picsum.photos/seed/MeJEmW0/640/480", + "https://picsum.photos/seed/HzpbywR2D/640/480", + "https://picsum.photos/seed/tJBVf/640/480", + "https://picsum.photos/seed/pMCEmn38/640/480", + "https://picsum.photos/seed/oLjn2o/640/480" ], "featured": 1, - "position": 13 + "discount": "7" }, { "id": 14, - "name": "Increible Plástico Ensalada", - "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients", - "price": "€128", - "specialPrice": "€44", - "slug": "978-0-688-36649-0", - "category": "Algodón", + "name": "Refinado Madera Teclado", + "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support", + "price": "€95", + "specialPrice": "€31", + "isNew": true, + "slug": "978-1-7991-7993-1", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/CVrt1Jr/640/480", - "https://picsum.photos/seed/2jXRVLjSW/640/480", - "https://picsum.photos/seed/AMjUQJD1CY/640/480", - "https://picsum.photos/seed/zoB2zfp3/640/480", - "https://picsum.photos/seed/6kBBSUUlw/640/480", - "https://picsum.photos/seed/P4JlwffPH1/640/480" + "https://picsum.photos/seed/jake6b/640/480", + "https://picsum.photos/seed/Bv3GD/640/480", + "https://picsum.photos/seed/NjEk2s/640/480" ], - "featured": 1 + "featured": 0 }, { "id": 15, - "name": "Refinado Madera Ordenador", - "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals", - "price": "€39", - "specialPrice": "€44", - "slug": "978-0-409-27658-9", - "category": "Metal", + "name": "Ergonómico Granito Gorro", + "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients", + "price": "€178", + "specialPrice": "€58", + "isNew": true, + "slug": "978-1-236-05968-0", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/s29CAI/640/480", - "https://picsum.photos/seed/jsZcD55W0/640/480", - "https://picsum.photos/seed/tUdhhDdC/640/480", - "https://picsum.photos/seed/guPuEND/640/480", - "https://picsum.photos/seed/0viAY2KY/640/480", - "https://picsum.photos/seed/VYaIS/640/480" + "https://picsum.photos/seed/NUjeWD/640/480", + "https://picsum.photos/seed/FXcWKarPgR/640/480", + "https://picsum.photos/seed/teETy/640/480", + "https://picsum.photos/seed/xU40Wwc/640/480", + "https://picsum.photos/seed/nYXPBqk/640/480", + "https://picsum.photos/seed/8MIPl/640/480" ], "featured": 0, - "position": 15 + "discount": "11" }, { "id": 16, - "name": "Rústico Hormigon Raton", - "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality", - "price": "€106", - "specialPrice": "€57", - "slug": "978-0-02-263607-4", - "category": "Madera", + "name": "Inteligente Algodón Toallas", + "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals", + "price": "€88", + "specialPrice": "€30", + "isNew": false, + "slug": "978-1-06-472991-5", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/CkrAPMN9g/640/480", - "https://picsum.photos/seed/zEuKn/640/480", - "https://picsum.photos/seed/7hM2lmPbO/640/480" + "https://picsum.photos/seed/3QgBNrISB/640/480", + "https://picsum.photos/seed/w26O8t4dU/640/480", + "https://picsum.photos/seed/LcunJq/640/480", + "https://picsum.photos/seed/wsxF0MFH/640/480", + "https://picsum.photos/seed/qCaawO/640/480" ], - "featured": 0 + "featured": 0, + "discount": "7" }, { "id": 17, - "name": "Inteligente Ladrillo Bicicleta", - "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart", - "price": "€55", - "specialPrice": "€40", - "slug": "978-1-7355901-4-1", - "category": "Plástico", + "name": "Sabroso Granito Atún", + "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design", + "price": "€21", + "specialPrice": "€60", + "isNew": false, + "slug": "978-1-57118-965-3", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/diRuMR/640/480", - "https://picsum.photos/seed/fttiI/640/480", - "https://picsum.photos/seed/ki1VfE/640/480", - "https://picsum.photos/seed/TAMSlnz/640/480", - "https://picsum.photos/seed/wdLpNEP4/640/480", - "https://picsum.photos/seed/RsdLp8/640/480" + "https://picsum.photos/seed/SN0IW/640/480", + "https://picsum.photos/seed/Ajbvmw3/640/480", + "https://picsum.photos/seed/ZNquT4J50/640/480" ], - "featured": 1 + "featured": 0, + "position": 17, + "discount": "11" }, { "id": 18, - "name": "Artesanal Metal Coche", - "description": "The Football Is Good For Training And Recreational Purposes", - "price": "€99", - "specialPrice": "€45", - "slug": "978-1-906950-21-7", - "category": "Plástico", + "name": "Genérico Plástico Camiseta", + "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit", + "price": "€149", + "specialPrice": "€40", + "isNew": false, + "slug": "978-1-932110-67-8", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/RysYC4/640/480", - "https://picsum.photos/seed/5ZcMhN19/640/480", - "https://picsum.photos/seed/ZyBDo/640/480" + "https://picsum.photos/seed/Ib02oSlkv/640/480", + "https://picsum.photos/seed/j7IHn0WcKp/640/480", + "https://picsum.photos/seed/T8heZoClH/640/480", + "https://picsum.photos/seed/oAzVU/640/480", + "https://picsum.photos/seed/lf0N4j/640/480" ], - "featured": 1 + "featured": 0 }, { "id": 19, - "name": "Genérico Plástico Ensalada", - "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit", - "price": "€30", - "specialPrice": "€47", - "slug": "978-0-86565-724-3", - "category": "Hormigon", + "name": "Genérico Metal Queso", + "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J", + "price": "€27", + "specialPrice": "€26", + "isNew": true, + "slug": "978-1-324-94811-7", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/NXofCcE87X/640/480", - "https://picsum.photos/seed/ksr2mqYZD/640/480", - "https://picsum.photos/seed/ezFMFEJ/640/480", - "https://picsum.photos/seed/Y56O06H8P/640/480" + "https://picsum.photos/seed/H9uB5/640/480", + "https://picsum.photos/seed/SoANcSxyac/640/480", + "https://picsum.photos/seed/KLSOpBF9kh/640/480", + "https://picsum.photos/seed/pLNNSDd/640/480", + "https://picsum.photos/seed/6ogPVwRn/640/480" ], - "featured": 0 + "featured": 0, + "position": 19 }, { "id": 20, - "name": "Inteligente Plástico Pescado", - "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals", - "price": "€88", - "specialPrice": "€35", - "slug": "978-1-59240-842-9", - "category": "Madera", + "name": "Hecho a mano Plástico Salchichas", + "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support", + "price": "€152", + "specialPrice": "€32", + "isNew": false, + "slug": "978-1-310-91779-0", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/OiDjBii/640/480", - "https://picsum.photos/seed/hIjShLf/640/480", - "https://picsum.photos/seed/aqAtUHkQx/640/480", - "https://picsum.photos/seed/CRLEeLr/640/480" + "https://picsum.photos/seed/FEfDF6tnF/640/480", + "https://picsum.photos/seed/eTmq5a/640/480", + "https://picsum.photos/seed/SMULME/640/480", + "https://picsum.photos/seed/t11SEBl6/640/480" ], - "featured": 1 + "featured": 0 }, { "id": 21, - "name": "Guapa Madera Teclado", - "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive", - "price": "€35", - "specialPrice": "€53", - "slug": "978-1-9860-7915-0", - "category": "Madera", + "name": "Inteligente Algodón Atún", + "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit", + "price": "€21", + "specialPrice": "€50", + "isNew": true, + "slug": "978-0-7133-9383-5", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/XEj5b15z/640/480", - "https://picsum.photos/seed/KAY5NGL/640/480" + "https://picsum.photos/seed/hW3tkRcqCI/640/480", + "https://picsum.photos/seed/t7NHO/640/480", + "https://picsum.photos/seed/V3gdDgxD0/640/480", + "https://picsum.photos/seed/cqgpbHa/640/480", + "https://picsum.photos/seed/jNZ62FSKc/640/480" ], - "featured": 0, - "position": 21 + "featured": 1, + "position": 21, + "discount": "14" }, { "id": 22, - "name": "Artesanal Acero Bacon", - "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design", - "price": "€24", - "specialPrice": "€42", - "slug": "978-0-574-04018-3", - "category": "Plástico", + "name": "Sabroso Algodón Pollo", + "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit", + "price": "€102", + "specialPrice": "€36", + "isNew": false, + "slug": "978-0-288-35801-7", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/80cdm/640/480", - "https://picsum.photos/seed/XxeWG/640/480", - "https://picsum.photos/seed/dZdQhi3/640/480", - "https://picsum.photos/seed/ta9294/640/480", - "https://picsum.photos/seed/FJUDA1wZE/640/480", - "https://picsum.photos/seed/70zs5/640/480" + "https://picsum.photos/seed/z7odxwHu/640/480", + "https://picsum.photos/seed/RaGAjX8R/640/480", + "https://picsum.photos/seed/Hmj1KFPpO/640/480", + "https://picsum.photos/seed/uianxlSxSf/640/480", + "https://picsum.photos/seed/zYhooqjS/640/480" ], - "featured": 1 + "featured": 1, + "position": 22 }, { "id": 23, - "name": "Guapo Granito Teclado", - "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive", - "price": "€127", - "specialPrice": "€43", - "slug": "978-0-8248-0927-0", - "category": "Ladrillo", + "name": "Refinado Granito Coche", + "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design", + "price": "€81", + "specialPrice": "€26", + "isNew": true, + "slug": "978-0-8275-2208-4", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/1rYlrjKoZ/640/480", - "https://picsum.photos/seed/0BM4LLulDs/640/480", - "https://picsum.photos/seed/ckxYxdCV/640/480" + "https://picsum.photos/seed/XFcxz0YY/640/480", + "https://picsum.photos/seed/bRx77e/640/480", + "https://picsum.photos/seed/eMxcy371u/640/480" ], - "featured": 1 + "featured": 1, + "position": 23 }, { "id": 24, - "name": "Sabroso Madera Ordenador", - "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive", - "price": "€130", - "specialPrice": "€25", - "slug": "978-0-7920-5668-3", - "category": "Algodón", + "name": "Increible Metal Pizza", + "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients", + "price": "€188", + "specialPrice": "€56", + "isNew": true, + "slug": "978-1-55027-664-0", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/URiMV6t8/640/480", - "https://picsum.photos/seed/nUgoe/640/480", - "https://picsum.photos/seed/1SAkJtnKW/640/480", - "https://picsum.photos/seed/JJ8wc/640/480" + "https://picsum.photos/seed/qMu6FQzt/640/480", + "https://picsum.photos/seed/cslc2/640/480", + "https://picsum.photos/seed/F4wKdsI51V/640/480" ], - "featured": 1 + "featured": 0, + "position": 24, + "discount": "8" }, { "id": 25, - "name": "Sabroso Granito Pantalones", - "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart", - "price": "€125", - "specialPrice": "€60", - "slug": "978-1-59233-540-4", - "category": "Hormigon", + "name": "Fantástico Metal Teclado", + "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J", + "price": "€89", + "specialPrice": "€22", + "isNew": true, + "slug": "978-1-140-19874-1", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/eLxBcR/640/480", - "https://picsum.photos/seed/VsocYDcUz/640/480", - "https://picsum.photos/seed/xixdY8Z/640/480", - "https://picsum.photos/seed/Xrc7x2tZh/640/480" + "https://picsum.photos/seed/61xoHbbj3/640/480", + "https://picsum.photos/seed/jvlNP/640/480", + "https://picsum.photos/seed/xciRM7qd3B/640/480", + "https://picsum.photos/seed/rmfcz75sV/640/480" ], - "featured": 0 + "featured": 0, + "position": 25 }, { "id": 26, - "name": "Genérico Plástico Pescado", - "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive", - "price": "€35", - "specialPrice": "€26", - "slug": "978-0-7237-0947-3", - "category": "Granito", + "name": "Increible Plástico Pelota", + "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals", + "price": "€59", + "specialPrice": "€45", + "isNew": false, + "slug": "978-1-048-57120-2", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/0yzhikOlJ/640/480", - "https://picsum.photos/seed/08jlh/640/480", - "https://picsum.photos/seed/vtGSBFCJ/640/480", - "https://picsum.photos/seed/Stxuzcu/640/480", - "https://picsum.photos/seed/da2w0/640/480", - "https://picsum.photos/seed/Gl25k/640/480" + "https://picsum.photos/seed/Kv2pHL/640/480", + "https://picsum.photos/seed/8nMjd6TU2/640/480", + "https://picsum.photos/seed/Spcwv/640/480", + "https://picsum.photos/seed/OTyjd/640/480", + "https://picsum.photos/seed/YVbDFheA/640/480" ], - "featured": 0 + "featured": 1, + "position": 26, + "discount": "15" }, { "id": 27, - "name": "Pequeño Granito Pelota", - "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016", - "price": "€77", - "specialPrice": "€52", - "slug": "978-1-4765-9706-5", - "category": "Acero", + "name": "Genérico Acero Coche", + "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals", + "price": "€59", + "specialPrice": "€44", + "isNew": true, + "slug": "978-0-15-326573-0", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/pdyXAHaTc/640/480", - "https://picsum.photos/seed/B0hEG/640/480", - "https://picsum.photos/seed/Otjhh1gHnP/640/480", - "https://picsum.photos/seed/PdriXTv5Sy/640/480", - "https://picsum.photos/seed/eIKDx/640/480", - "https://picsum.photos/seed/THcaI3/640/480" + "https://picsum.photos/seed/WSkuyujFa/640/480", + "https://picsum.photos/seed/WmuRvQx/640/480", + "https://picsum.photos/seed/kb0vcOf/640/480", + "https://picsum.photos/seed/uH0xXb/640/480", + "https://picsum.photos/seed/4MzyV3/640/480" ], - "featured": 1 + "featured": 1, + "position": 27 }, { "id": 28, - "name": "Guapa Ladrillo Salchichas", - "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles", - "price": "€146", - "specialPrice": "€20", - "slug": "978-1-05-528016-6", - "category": "Metal", + "name": "Hecho a mano Hormigon Zapatos", + "description": "The Football Is Good For Training And Recreational Purposes", + "price": "€45", + "specialPrice": "€45", + "isNew": true, + "slug": "978-0-7563-2842-9", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/e4IPBmvS0B/640/480", - "https://picsum.photos/seed/hD6xKn/640/480" + "https://picsum.photos/seed/cYKbw/640/480", + "https://picsum.photos/seed/IYFq9N/640/480", + "https://picsum.photos/seed/UvSVZ78/640/480", + "https://picsum.photos/seed/INrOs/640/480", + "https://picsum.photos/seed/dEhAEZrv/640/480", + "https://picsum.photos/seed/cMjA3Z/640/480" + ], + "featured": 1, + "position": 28 + }, + { + "id": 29, + "name": "Refinado Granito Pollo", + "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit", + "price": "€191", + "specialPrice": "€44", + "isNew": true, + "slug": "978-1-3988-7301-8", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", + "images": [ + "https://picsum.photos/seed/qePoXP6K/640/480", + "https://picsum.photos/seed/h3p0l6/640/480", + "https://picsum.photos/seed/G2EpUubO/640/480" ], "featured": 1 }, { - "id": 29, - "name": "Práctico Plástico Bacon", - "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive", - "price": "€72", - "specialPrice": "€51", - "slug": "978-1-01-345029-7", - "category": "Algodón", + "id": 30, + "name": "Inteligente Madera Salchichas", + "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support", + "price": "€126", + "specialPrice": "€20", + "isNew": true, + "slug": "978-1-331-75743-6", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/ZPev9Tpky/640/480", - "https://picsum.photos/seed/g7fB4EV4/640/480", - "https://picsum.photos/seed/QKeDRA/640/480" + "https://picsum.photos/seed/dBTrE/640/480", + "https://picsum.photos/seed/JA4Cw/640/480", + "https://picsum.photos/seed/2q5if/640/480", + "https://picsum.photos/seed/2ih0CRO/640/480", + "https://picsum.photos/seed/8fCncPfW/640/480" ], "featured": 0, - "position": 29 - }, - { - "id": 30, - "name": "Increible Granito Mesa", - "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles", - "price": "€170", - "specialPrice": "€21", - "slug": "978-0-523-20890-9", - "category": "Algodón", - "images": [ - "https://picsum.photos/seed/duQVQ4/640/480", - "https://picsum.photos/seed/2mePIdCq/640/480", - "https://picsum.photos/seed/q6v0mpw9u/640/480", - "https://picsum.photos/seed/GiGOF7zpC/640/480", - "https://picsum.photos/seed/mzyVdeWqo4/640/480" - ], - "featured": 1, - "position": 30 + "discount": "5" }, { "id": 31, - "name": "Refinado Hormigon Camiseta", - "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support", - "price": "€155", - "specialPrice": "€32", - "slug": "978-0-454-04945-9", - "category": "Ladrillo", + "name": "Rústico Hormigon Bicicleta", + "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals", + "price": "€63", + "specialPrice": "€40", + "isNew": true, + "slug": "978-0-11-989468-4", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/k574ZF/640/480", - "https://picsum.photos/seed/UFA26bigFx/640/480", - "https://picsum.photos/seed/oBgKK81j38/640/480", - "https://picsum.photos/seed/nTJHUM5y/640/480", - "https://picsum.photos/seed/QnMFukw8D/640/480", - "https://picsum.photos/seed/Z6YcL/640/480" + "https://picsum.photos/seed/EwzFjj8/640/480", + "https://picsum.photos/seed/Ne0GuwEU6/640/480" ], "featured": 1 }, { "id": 32, - "name": "Genérico Madera Bicicleta", - "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients", - "price": "€132", - "specialPrice": "€38", - "slug": "978-1-86557-977-1", - "category": "Acero", + "name": "Genérico Algodón Raton", + "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design", + "price": "€95", + "specialPrice": "€20", + "isNew": false, + "slug": "978-1-4452-7592-5", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/MbKHRq8T/640/480", - "https://picsum.photos/seed/msQwQJx/640/480", - "https://picsum.photos/seed/JXEas/640/480", - "https://picsum.photos/seed/NN3adg7L/640/480", - "https://picsum.photos/seed/qikAoPBvO1/640/480" + "https://picsum.photos/seed/JzEKDZ/640/480", + "https://picsum.photos/seed/ofYhP4/640/480", + "https://picsum.photos/seed/psUTjl0o/640/480" ], - "featured": 1, - "position": 32 + "featured": 1 }, { "id": 33, - "name": "Práctico Madera Queso", - "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality", - "price": "€34", - "specialPrice": "€56", - "slug": "978-0-356-07329-3", - "category": "Algodón", + "name": "Guapa Ladrillo Teclado", + "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support", + "price": "€168", + "specialPrice": "€28", + "isNew": false, + "slug": "978-1-8380507-5-7", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/A6WRMpPu2/640/480", - "https://picsum.photos/seed/ncQLYI/640/480", - "https://picsum.photos/seed/vChXR1xG7/640/480", - "https://picsum.photos/seed/Z8EVc6QGGU/640/480" + "https://picsum.photos/seed/MvlUAg/640/480", + "https://picsum.photos/seed/kJ6aZe/640/480", + "https://picsum.photos/seed/vG2qiqZrI/640/480" ], - "featured": 0 + "featured": 1, + "discount": "14" }, { "id": 34, - "name": "Inteligente Algodón Guantes", - "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support", - "price": "€55", - "specialPrice": "€37", - "slug": "978-0-04-972352-8", - "category": "Granito", + "name": "Guapa Acero Ensalada", + "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles", + "price": "€199", + "specialPrice": "€51", + "isNew": false, + "slug": "978-0-515-08362-0", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/TOSHa5/640/480", - "https://picsum.photos/seed/BNZhhu6/640/480", - "https://picsum.photos/seed/HDZoRLb/640/480", - "https://picsum.photos/seed/ZgKkO2PpJ/640/480" + "https://picsum.photos/seed/ktlHFZa7T/640/480", + "https://picsum.photos/seed/zGj5G1f/640/480", + "https://picsum.photos/seed/cGn3F/640/480" ], - "featured": 0, - "position": 34 + "featured": 1 }, { "id": 35, - "name": "Ergonómico Acero Salchichas", - "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles", - "price": "€141", - "specialPrice": "€27", - "slug": "978-0-08-608001-1", - "category": "Plástico", + "name": "Hecho a mano Algodón Pelota", + "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals", + "price": "€164", + "specialPrice": "€49", + "isNew": true, + "slug": "978-1-377-81139-0", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/oxH2yAf/640/480", - "https://picsum.photos/seed/FAQ5A5r/640/480", - "https://picsum.photos/seed/MFncPF/640/480" + "https://picsum.photos/seed/jTkM6B/640/480", + "https://picsum.photos/seed/1bMD1mgLJ/640/480", + "https://picsum.photos/seed/Ho4E1yc/640/480", + "https://picsum.photos/seed/rFUM8gZxsK/640/480", + "https://picsum.photos/seed/9PQ51cFnX/640/480" ], "featured": 0, - "position": 35 + "discount": "9" }, { "id": 36, - "name": "Artesanal Granito Gorro", - "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016", - "price": "€57", - "specialPrice": "€25", - "slug": "978-0-9921971-3-1", - "category": "Algodón", + "name": "Guapo Metal Pescado", + "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart", + "price": "€187", + "specialPrice": "€51", + "isNew": false, + "slug": "978-0-314-22100-1", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/6zhKBTYMN/640/480", - "https://picsum.photos/seed/tCCkWoRr7/640/480" + "https://picsum.photos/seed/mcSNVcAt/640/480", + "https://picsum.photos/seed/YgXJEOkF/640/480", + "https://picsum.photos/seed/e3fkI67F/640/480" ], "featured": 1, "position": 36 }, { "id": 37, - "name": "Práctico Plástico Pescado", - "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support", - "price": "€99", + "name": "Fantástico Madera Pollo", + "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J", + "price": "€195", "specialPrice": "€39", - "slug": "978-0-501-95656-3", - "category": "Hormigon", + "isNew": true, + "slug": "978-1-84460-628-3", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/mCm0n0y/640/480", - "https://picsum.photos/seed/MUnxdH/640/480", - "https://picsum.photos/seed/9p9aBGLmP/640/480", - "https://picsum.photos/seed/MlHX6K/640/480", - "https://picsum.photos/seed/CG4E6Q/640/480" + "https://picsum.photos/seed/PuObBpl/640/480", + "https://picsum.photos/seed/D6XW1XMhuR/640/480", + "https://picsum.photos/seed/XaZsN/640/480" ], - "featured": 0 + "featured": 0, + "discount": "11" }, { "id": 38, - "name": "Guapa Ladrillo Bacon", + "name": "Rústico Algodón Queso", "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design", - "price": "€135", - "specialPrice": "€34", - "slug": "978-1-7243-9214-5", - "category": "Algodón", + "price": "€124", + "specialPrice": "€26", + "isNew": true, + "slug": "978-1-309-55513-2", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/Ds9sWe/640/480", - "https://picsum.photos/seed/WSVQQu6/640/480", - "https://picsum.photos/seed/MeMyYy5YDF/640/480", - "https://picsum.photos/seed/PEXYiKp/640/480", - "https://picsum.photos/seed/eBq22t/640/480" + "https://picsum.photos/seed/8g9ga6K/640/480", + "https://picsum.photos/seed/er1R20/640/480", + "https://picsum.photos/seed/W05nMAmO/640/480", + "https://picsum.photos/seed/NGjAmte4C/640/480" ], "featured": 0, - "position": 38 + "discount": "10" }, { "id": 39, - "name": "Sabroso Madera Pollo", - "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart", - "price": "€139", - "specialPrice": "€22", - "slug": "978-1-879998-53-7", - "category": "Granito", + "name": "Sorprendente Ladrillo Mesa", + "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles", + "price": "€103", + "specialPrice": "€53", + "isNew": true, + "slug": "978-1-6599-5199-8", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/Whxgwy/640/480", - "https://picsum.photos/seed/anXq6D/640/480", - "https://picsum.photos/seed/Tj11xyyg/640/480", - "https://picsum.photos/seed/6Xljd/640/480", - "https://picsum.photos/seed/SFUXc/640/480" + "https://picsum.photos/seed/Kbdw1/640/480", + "https://picsum.photos/seed/pEemudoDJ/640/480", + "https://picsum.photos/seed/R9F4r1E/640/480" ], - "featured": 0, - "position": 39 + "featured": 0 }, { "id": 40, - "name": "Ergonómico Ladrillo Camiseta", - "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive", - "price": "€141", - "specialPrice": "€43", - "slug": "978-0-9698137-8-1", - "category": "Acero", + "name": "Genérico Madera Teclado", + "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016", + "price": "€27", + "specialPrice": "€44", + "isNew": true, + "slug": "978-0-00-710592-2", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/7vD0Q5PW/640/480", - "https://picsum.photos/seed/7P2pqCEW93/640/480", - "https://picsum.photos/seed/WmW1I31fP/640/480", - "https://picsum.photos/seed/6wzLMm/640/480" + "https://picsum.photos/seed/qsKyfaxQ4g/640/480", + "https://picsum.photos/seed/RbYRZBXlm/640/480", + "https://picsum.photos/seed/ZNVJ25dE0X/640/480", + "https://picsum.photos/seed/Mc0Sc/640/480", + "https://picsum.photos/seed/KwPFis3Jh/640/480", + "https://picsum.photos/seed/rShUr0Fxp/640/480" ], - "featured": 0 + "featured": 1, + "discount": "14" }, { "id": 41, - "name": "Refinado Plástico Coche", + "name": "Genérico Granito Pantalones", "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality", - "price": "€102", - "specialPrice": "€33", - "slug": "978-1-133-53369-6", - "category": "Algodón", + "price": "€38", + "specialPrice": "€48", + "isNew": false, + "slug": "978-1-4176-3485-9", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/0OR9k/640/480", - "https://picsum.photos/seed/kjIEOLUzQ/640/480", - "https://picsum.photos/seed/p8thZFYeSp/640/480", - "https://picsum.photos/seed/Hb8bx4f/640/480", - "https://picsum.photos/seed/81XIMa/640/480", - "https://picsum.photos/seed/LaE8OGZ9a/640/480" + "https://picsum.photos/seed/zLjAl3/640/480", + "https://picsum.photos/seed/t7lzKsc/640/480", + "https://picsum.photos/seed/EdEpBs2n3/640/480" ], - "featured": 0, - "position": 41 + "featured": 0 }, { "id": 42, - "name": "Ergonómico Granito Ensalada", - "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support", - "price": "€103", - "specialPrice": "€29", - "slug": "978-0-09-633154-7", - "category": "Plástico", + "name": "Guapo Madera Raton", + "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive", + "price": "€160", + "specialPrice": "€22", + "isNew": true, + "slug": "978-0-940197-17-6", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/imIuNqd/640/480", - "https://picsum.photos/seed/2RmRIXY/640/480", - "https://picsum.photos/seed/0KciB/640/480", - "https://picsum.photos/seed/3dzqm/640/480", - "https://picsum.photos/seed/jhHsUu/640/480" + "https://picsum.photos/seed/bB5fh/640/480", + "https://picsum.photos/seed/4z8LC3hXF/640/480", + "https://picsum.photos/seed/KhHhYT/640/480", + "https://picsum.photos/seed/Fg8pI/640/480", + "https://picsum.photos/seed/Uj5w7I3V/640/480" ], - "featured": 1 + "featured": 1, + "position": 42, + "discount": "7" }, { "id": 43, - "name": "Guapa Metal Silla", - "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality", - "price": "€31", - "specialPrice": "€50", - "slug": "978-1-0380-4389-4", - "category": "Acero", + "name": "Artesanal Plástico Gorro", + "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit", + "price": "€154", + "specialPrice": "€56", + "isNew": true, + "slug": "978-1-318-64981-5", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/DC182cBdF/640/480", - "https://picsum.photos/seed/M7tGNzV/640/480", - "https://picsum.photos/seed/efurDAA/640/480", - "https://picsum.photos/seed/0Xzzdjm/640/480" + "https://picsum.photos/seed/QVRhLvAY7/640/480", + "https://picsum.photos/seed/JAM43Cq3qz/640/480", + "https://picsum.photos/seed/g1CG1BOr/640/480", + "https://picsum.photos/seed/g5Gpd/640/480" ], - "featured": 0 + "featured": 1, + "position": 43 }, { "id": 44, - "name": "Fantástico Ladrillo Camiseta", - "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J", - "price": "€103", - "specialPrice": "€33", - "slug": "978-1-4693-6281-6", - "category": "Acero", + "name": "Refinado Algodón Camiseta", + "description": "The Football Is Good For Training And Recreational Purposes", + "price": "€32", + "specialPrice": "€28", + "isNew": false, + "slug": "978-0-89872-374-8", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/Yt4cYSCxv/640/480", - "https://picsum.photos/seed/ZkxwK1/640/480", - "https://picsum.photos/seed/mPWqzNqec0/640/480" + "https://picsum.photos/seed/l97X5/640/480", + "https://picsum.photos/seed/e5a8U/640/480", + "https://picsum.photos/seed/3ID5gT/640/480", + "https://picsum.photos/seed/Fv91Wp2/640/480" ], "featured": 1, - "position": 44 + "discount": "14" }, { "id": 45, - "name": "Artesanal Hormigon Zapatos", - "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients", - "price": "€63", - "specialPrice": "€23", - "slug": "978-1-4218-4339-1", - "category": "Metal", + "name": "Refinado Plástico Zapatos", + "description": "The Football Is Good For Training And Recreational Purposes", + "price": "€106", + "specialPrice": "€34", + "isNew": true, + "slug": "978-0-217-22380-5", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/kwQSxn/640/480", - "https://picsum.photos/seed/iTyV0EB/640/480" + "https://picsum.photos/seed/cSzf4H/640/480", + "https://picsum.photos/seed/yuUm9XD8o/640/480", + "https://picsum.photos/seed/zRg0Tof/640/480" ], - "featured": 0 + "featured": 1 }, { "id": 46, - "name": "Pequeño Ladrillo Pescado", - "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart", - "price": "€34", - "specialPrice": "€57", - "slug": "978-0-8149-0652-1", - "category": "Ladrillo", + "name": "Increible Madera Ordenador", + "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit", + "price": "€111", + "specialPrice": "€35", + "isNew": true, + "slug": "978-0-909996-40-6", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/qb7Ay/640/480", - "https://picsum.photos/seed/ZOZvZYM/640/480", - "https://picsum.photos/seed/E7b3w5PKLH/640/480", - "https://picsum.photos/seed/hBT9v/640/480", - "https://picsum.photos/seed/fGexUqzE6z/640/480" + "https://picsum.photos/seed/8CNBVztO/640/480", + "https://picsum.photos/seed/Xrp987/640/480", + "https://picsum.photos/seed/8uaxkeTHO/640/480" ], - "featured": 0, - "position": 46 + "featured": 1 }, { "id": 47, - "name": "Hecho a mano Metal Teclado", + "name": "Fantástico Acero Queso", "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J", - "price": "€161", - "specialPrice": "€35", - "slug": "978-1-5024-1777-0", - "category": "Hormigon", + "price": "€123", + "specialPrice": "€23", + "isNew": false, + "slug": "978-1-64697-271-5", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/FG2OSE56/640/480", - "https://picsum.photos/seed/59oCcFx/640/480", - "https://picsum.photos/seed/UkLPf/640/480", - "https://picsum.photos/seed/flqpbUJdwD/640/480", - "https://picsum.photos/seed/L6EriVd/640/480" + "https://picsum.photos/seed/wCp2KM/640/480", + "https://picsum.photos/seed/nnBEvn/640/480", + "https://picsum.photos/seed/t5y9qSOx/640/480", + "https://picsum.photos/seed/IwucQ3tPf/640/480", + "https://picsum.photos/seed/Jb0yX4/640/480", + "https://picsum.photos/seed/6e7xniBLbp/640/480" + ], + "featured": 1, + "position": 47 + }, + { + "id": 48, + "name": "Rústico Plástico Teclado", + "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit", + "price": "€72", + "specialPrice": "€48", + "isNew": true, + "slug": "978-0-937555-33-0", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", + "images": [ + "https://picsum.photos/seed/hg9HMXJ4l/640/480", + "https://picsum.photos/seed/PCA1uHX/640/480", + "https://picsum.photos/seed/JFRCbMQO/640/480", + "https://picsum.photos/seed/j5oP44i/640/480", + "https://picsum.photos/seed/8ltyUC/640/480", + "https://picsum.photos/seed/rJMEG/640/480" + ], + "featured": 1 + }, + { + "id": 49, + "name": "Guapa Acero Gorro", + "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality", + "price": "€41", + "specialPrice": "€35", + "isNew": false, + "slug": "978-1-238-68808-6", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", + "images": [ + "https://picsum.photos/seed/mWU235G/640/480", + "https://picsum.photos/seed/ZCinUiiwZ/640/480", + "https://picsum.photos/seed/yJo5MOPK/640/480", + "https://picsum.photos/seed/29OaIyJ/640/480" + ], + "featured": 0, + "discount": "15" + }, + { + "id": 50, + "name": "Genérico Algodón Bicicleta", + "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design", + "price": "€190", + "specialPrice": "€20", + "isNew": false, + "slug": "978-1-56675-720-1", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", + "images": [ + "https://picsum.photos/seed/EaDjCiqk/640/480", + "https://picsum.photos/seed/nGNbbNc/640/480" + ], + "featured": 1, + "discount": "15" + }, + { + "id": 51, + "name": "Refinado Metal Pollo", + "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J", + "price": "€20", + "specialPrice": "€56", + "isNew": true, + "slug": "978-1-257-37902-6", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", + "images": [ + "https://picsum.photos/seed/s8zjP0/640/480", + "https://picsum.photos/seed/9zEZt/640/480", + "https://picsum.photos/seed/V7zVU/640/480" + ], + "featured": 0, + "discount": "13" + }, + { + "id": 52, + "name": "Fantástico Plástico Ensalada", + "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016", + "price": "€194", + "specialPrice": "€38", + "isNew": true, + "slug": "978-1-933903-90-3", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", + "images": [ + "https://picsum.photos/seed/HTev9LlW/640/480", + "https://picsum.photos/seed/SUxtP5cT/640/480", + "https://picsum.photos/seed/T4487xS9DG/640/480" + ], + "featured": 0, + "position": 52 + }, + { + "id": 53, + "name": "Artesanal Madera Ordenador", + "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016", + "price": "€29", + "specialPrice": "€34", + "isNew": false, + "slug": "978-0-7736-7108-9", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", + "images": [ + "https://picsum.photos/seed/B6rfb/640/480", + "https://picsum.photos/seed/k3JYiBQRx/640/480", + "https://picsum.photos/seed/gnntwG1BX/640/480", + "https://picsum.photos/seed/A9Wd3/640/480", + "https://picsum.photos/seed/bptxrVNRiz/640/480", + "https://picsum.photos/seed/HbLRfW/640/480" + ], + "featured": 1 + }, + { + "id": 54, + "name": "Pequeño Metal Ordenador", + "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive", + "price": "€51", + "specialPrice": "€32", + "isNew": true, + "slug": "978-0-675-04894-1", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", + "images": [ + "https://picsum.photos/seed/DD2MtGS8/640/480", + "https://picsum.photos/seed/vERlc/640/480", + "https://picsum.photos/seed/ljRUIx1/640/480", + "https://picsum.photos/seed/1lYn2Xcr1g/640/480", + "https://picsum.photos/seed/od7uZ0Hy/640/480", + "https://picsum.photos/seed/eotkUn/640/480" + ], + "featured": 1, + "position": 54 + }, + { + "id": 55, + "name": "Sabroso Ladrillo Pizza", + "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive", + "price": "€104", + "specialPrice": "€50", + "isNew": false, + "slug": "978-0-7105-6291-3", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", + "images": [ + "https://picsum.photos/seed/9N7ink7krJ/640/480", + "https://picsum.photos/seed/7s4aYaneZg/640/480", + "https://picsum.photos/seed/2nhD8DhqKq/640/480" + ], + "featured": 0, + "position": 55, + "discount": "5" + }, + { + "id": 56, + "name": "Artesanal Metal Toallas", + "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients", + "price": "€117", + "specialPrice": "€53", + "isNew": false, + "slug": "978-0-18-757443-3", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", + "images": [ + "https://picsum.photos/seed/wNA60wdyxq/640/480", + "https://picsum.photos/seed/86jeF/640/480", + "https://picsum.photos/seed/2Ix8CKO0/640/480", + "https://picsum.photos/seed/08QHc5F/640/480" + ], + "featured": 1 + }, + { + "id": 57, + "name": "Ergonómico Acero Pescado", + "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J", + "price": "€176", + "specialPrice": "€58", + "isNew": true, + "slug": "978-0-538-86677-4", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", + "images": [ + "https://picsum.photos/seed/vFAtUVdhTQ/640/480", + "https://picsum.photos/seed/27vewh/640/480" ], "featured": 0 }, - { - "id": 48, - "name": "Práctico Algodón Mesa", - "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive", - "price": "€84", - "specialPrice": "€36", - "slug": "978-0-7038-8227-1", - "category": "Granito", - "images": [ - "https://picsum.photos/seed/pgB553/640/480", - "https://picsum.photos/seed/ARKR3t8qi0/640/480", - "https://picsum.photos/seed/rmpuznUaGy/640/480" - ], - "featured": 0, - "position": 48 - }, - { - "id": 49, - "name": "Ergonómico Metal Guantes", - "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality", - "price": "€155", - "specialPrice": "€24", - "slug": "978-1-122-52014-0", - "category": "Madera", - "images": [ - "https://picsum.photos/seed/3sbOBdZ8sJ/640/480", - "https://picsum.photos/seed/ni0yXqnnXd/640/480", - "https://picsum.photos/seed/1jylbk/640/480", - "https://picsum.photos/seed/jpSoMNFK/640/480" - ], - "featured": 1 - }, - { - "id": 50, - "name": "Genérico Granito Gorro", - "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J", - "price": "€173", - "specialPrice": "€26", - "slug": "978-1-63419-529-4", - "category": "Acero", - "images": [ - "https://picsum.photos/seed/ZGDcLErJ/640/480", - "https://picsum.photos/seed/cxJx8a/640/480", - "https://picsum.photos/seed/x6v2z/640/480" - ], - "featured": 1, - "position": 50 - }, - { - "id": 51, - "name": "Sorprendente Acero Raton", - "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design", - "price": "€149", - "specialPrice": "€35", - "slug": "978-1-324-75375-9", - "category": "Madera", - "images": [ - "https://picsum.photos/seed/M2xs9P62sl/640/480", - "https://picsum.photos/seed/CRa7ExrLU/640/480", - "https://picsum.photos/seed/xgnpN/640/480", - "https://picsum.photos/seed/Sp1T7xgMt/640/480", - "https://picsum.photos/seed/2qSQxPrW/640/480" - ], - "featured": 1 - }, - { - "id": 52, - "name": "Increible Ladrillo Salchichas", - "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016", - "price": "€81", - "specialPrice": "€52", - "slug": "978-1-77863-300-3", - "category": "Hormigon", - "images": [ - "https://picsum.photos/seed/kjzU5MY/640/480", - "https://picsum.photos/seed/y1UFM8/640/480", - "https://picsum.photos/seed/81diG0J7aS/640/480" - ], - "featured": 1 - }, - { - "id": 53, - "name": "Rústico Ladrillo Gorro", - "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J", - "price": "€193", - "specialPrice": "€23", - "slug": "978-1-86340-267-5", - "category": "Hormigon", - "images": [ - "https://picsum.photos/seed/6iCZbb/640/480", - "https://picsum.photos/seed/ylPLAL/640/480", - "https://picsum.photos/seed/gdxzNIfU2/640/480" - ], - "featured": 0, - "position": 53 - }, - { - "id": 54, - "name": "Hecho a mano Hormigon Guantes", - "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles", - "price": "€159", - "specialPrice": "€28", - "slug": "978-1-3996-9414-8", - "category": "Plástico", - "images": [ - "https://picsum.photos/seed/8WAmX/640/480", - "https://picsum.photos/seed/bnIeqQPA/640/480", - "https://picsum.photos/seed/Ksxetz/640/480" - ], - "featured": 1 - }, - { - "id": 55, - "name": "Sorprendente Granito Salchichas", - "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality", - "price": "€134", - "specialPrice": "€29", - "slug": "978-1-56934-754-6", - "category": "Algodón", - "images": [ - "https://picsum.photos/seed/8BkyWVEm/640/480", - "https://picsum.photos/seed/cGBzP/640/480", - "https://picsum.photos/seed/fowsh6YxI/640/480", - "https://picsum.photos/seed/E6YjYtzON/640/480" - ], - "featured": 1, - "position": 55 - }, - { - "id": 56, - "name": "Fantástico Granito Pescado", - "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016", - "price": "€125", - "specialPrice": "€32", - "slug": "978-0-905647-64-7", - "category": "Acero", - "images": [ - "https://picsum.photos/seed/uW2tjq/640/480", - "https://picsum.photos/seed/fpx0K2hClm/640/480", - "https://picsum.photos/seed/G2gAmZl1/640/480" - ], - "featured": 1, - "position": 56 - }, - { - "id": 57, - "name": "Sabroso Algodón Pizza", - "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support", - "price": "€186", - "specialPrice": "€33", - "slug": "978-1-972153-22-2", - "category": "Hormigon", - "images": [ - "https://picsum.photos/seed/ygZhwPZi8y/640/480", - "https://picsum.photos/seed/pWOwZnYloo/640/480", - "https://picsum.photos/seed/TQ6r2/640/480", - "https://picsum.photos/seed/1Zqd64/640/480", - "https://picsum.photos/seed/Is00Ch/640/480" - ], - "featured": 0, - "position": 57 - }, { "id": 58, - "name": "Guapa Plástico Pollo", - "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart", - "price": "€135", - "specialPrice": "€21", - "slug": "978-1-182-41595-0", - "category": "Acero", + "name": "Inteligente Granito Guantes", + "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality", + "price": "€151", + "specialPrice": "€33", + "isNew": false, + "slug": "978-1-61481-833-5", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/pjiW2/640/480", - "https://picsum.photos/seed/WJ9BV/640/480", - "https://picsum.photos/seed/CbsJe/640/480", - "https://picsum.photos/seed/KjckmCzV8s/640/480", - "https://picsum.photos/seed/eskOEZdU/640/480", - "https://picsum.photos/seed/ErZTlTk/640/480" + "https://picsum.photos/seed/4MsN1O/640/480", + "https://picsum.photos/seed/UdYQ9p/640/480" ], - "featured": 1, - "position": 58 + "featured": 1 }, { "id": 59, - "name": "Guapa Plástico Silla", - "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality", - "price": "€164", - "specialPrice": "€40", - "slug": "978-1-931439-56-5", - "category": "Plástico", + "name": "Ergonómico Algodón Pizza", + "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit", + "price": "€87", + "specialPrice": "€45", + "isNew": false, + "slug": "978-1-716-77358-7", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/J3OPDtC/640/480", - "https://picsum.photos/seed/NmYYYFQ/640/480", - "https://picsum.photos/seed/IoFUC/640/480", - "https://picsum.photos/seed/c2cyddMfl/640/480", - "https://picsum.photos/seed/eFrB6qIjUW/640/480", - "https://picsum.photos/seed/WGPPJRAA/640/480" + "https://picsum.photos/seed/YXrh4TJhn/640/480", + "https://picsum.photos/seed/qJ3IS/640/480", + "https://picsum.photos/seed/vZTLJBiSs/640/480", + "https://picsum.photos/seed/yWwpqd9uRR/640/480", + "https://picsum.photos/seed/1oPusQ9Q3/640/480", + "https://picsum.photos/seed/Q6kSK6/640/480" + ], + "featured": 0, + "position": 59 + }, + { + "id": 60, + "name": "Sorprendente Acero Salchichas", + "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016", + "price": "€59", + "specialPrice": "€60", + "isNew": false, + "slug": "978-0-7694-2909-0", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", + "images": [ + "https://picsum.photos/seed/98Nx8Mi/640/480", + "https://picsum.photos/seed/BwjmGy6VB/640/480" + ], + "featured": 0, + "discount": "6" + }, + { + "id": 61, + "name": "Increible Hormigon Pollo", + "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support", + "price": "€57", + "specialPrice": "€50", + "isNew": true, + "slug": "978-0-619-91892-7", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", + "images": [ + "https://picsum.photos/seed/kxRaIrj5/640/480", + "https://picsum.photos/seed/QAIRpl/640/480" + ], + "featured": 1, + "position": 61, + "discount": "5" + }, + { + "id": 62, + "name": "Guapa Plástico Pizza", + "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive", + "price": "€194", + "specialPrice": "€33", + "isNew": false, + "slug": "978-1-377-08792-4", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", + "images": [ + "https://picsum.photos/seed/t70NVE/640/480", + "https://picsum.photos/seed/WCDGPADT7M/640/480" + ], + "featured": 0 + }, + { + "id": 63, + "name": "Guapo Plástico Patatas fritas", + "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J", + "price": "€140", + "specialPrice": "€31", + "isNew": false, + "slug": "978-0-7734-2463-0", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", + "images": [ + "https://picsum.photos/seed/ibhRMBMJ/640/480", + "https://picsum.photos/seed/7fNck/640/480", + "https://picsum.photos/seed/esXzS36A2/640/480", + "https://picsum.photos/seed/Zyx0R/640/480", + "https://picsum.photos/seed/gyUEYTFw/640/480" ], "featured": 1 }, - { - "id": 60, - "name": "Práctico Hormigon Ordenador", - "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality", - "price": "€49", - "specialPrice": "€55", - "slug": "978-1-341-37261-2", - "category": "Algodón", - "images": [ - "https://picsum.photos/seed/nVqFbeY4x/640/480", - "https://picsum.photos/seed/lKI8qAQ/640/480", - "https://picsum.photos/seed/JD5TJaIjQ/640/480" - ], - "featured": 1, - "position": 60 - }, - { - "id": 61, - "name": "Sabroso Metal Bicicleta", - "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality", - "price": "€128", - "specialPrice": "€32", - "slug": "978-0-394-68287-7", - "category": "Madera", - "images": [ - "https://picsum.photos/seed/Pop9JS/640/480", - "https://picsum.photos/seed/OFEHeOa/640/480", - "https://picsum.photos/seed/M8ERCNt/640/480", - "https://picsum.photos/seed/YPfgIzBS/640/480", - "https://picsum.photos/seed/9Na65C/640/480", - "https://picsum.photos/seed/sPSDNTA/640/480" - ], - "featured": 1, - "position": 61 - }, - { - "id": 62, - "name": "Pequeño Granito Toallas", - "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support", - "price": "€98", - "specialPrice": "€50", - "slug": "978-1-297-18741-4", - "category": "Ladrillo", - "images": [ - "https://picsum.photos/seed/8EHPFzjYLH/640/480", - "https://picsum.photos/seed/w5oufa3I7/640/480" - ], - "featured": 0, - "position": 62 - }, - { - "id": 63, - "name": "Refinado Algodón Raton", - "description": "The Football Is Good For Training And Recreational Purposes", - "price": "€188", - "specialPrice": "€52", - "slug": "978-1-248-31968-0", - "category": "Granito", - "images": [ - "https://picsum.photos/seed/PClre/640/480", - "https://picsum.photos/seed/Z0uDbtB7JZ/640/480", - "https://picsum.photos/seed/OUfrTW70Vx/640/480", - "https://picsum.photos/seed/VHiyb2g1cW/640/480", - "https://picsum.photos/seed/NzyF4/640/480" - ], - "featured": 0, - "position": 63 - }, { "id": 64, - "name": "Inteligente Hormigon Mesa", - "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality", - "price": "€108", - "specialPrice": "€49", - "slug": "978-1-75861-031-4", - "category": "Algodón", + "name": "Genérico Algodón Coche", + "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016", + "price": "€137", + "specialPrice": "€47", + "isNew": false, + "slug": "978-1-77867-791-5", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/XHdVeBnj/640/480", - "https://picsum.photos/seed/kZSCq/640/480", - "https://picsum.photos/seed/vQTDdeXd/640/480", - "https://picsum.photos/seed/cOH7BtlSf/640/480", - "https://picsum.photos/seed/zlrJQRM/640/480", - "https://picsum.photos/seed/uqFiQEoI/640/480" + "https://picsum.photos/seed/AsMDYHf3/640/480", + "https://picsum.photos/seed/tCkf3/640/480", + "https://picsum.photos/seed/8ZnlYxm/640/480", + "https://picsum.photos/seed/a4eViqq8y0/640/480", + "https://picsum.photos/seed/VowNo/640/480" ], "featured": 1, "position": 64 }, { "id": 65, - "name": "Guapa Ladrillo Bicicleta", + "name": "Inteligente Hormigon Atún", "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles", - "price": "€181", - "specialPrice": "€45", - "slug": "978-1-900795-68-5", - "category": "Madera", + "price": "€39", + "specialPrice": "€44", + "isNew": true, + "slug": "978-1-926748-33-7", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/zSs9gnFWLK/640/480", - "https://picsum.photos/seed/J6TtOvU/640/480", - "https://picsum.photos/seed/NDSwG8/640/480" + "https://picsum.photos/seed/vzOKt7Ss/640/480", + "https://picsum.photos/seed/cvHL8wo/640/480", + "https://picsum.photos/seed/SSNTk/640/480", + "https://picsum.photos/seed/DXRIbXn/640/480", + "https://picsum.photos/seed/eBegt2U/640/480", + "https://picsum.photos/seed/WTaw713G/640/480" ], "featured": 0 }, { "id": 66, - "name": "Artesanal Granito Ordenador", - "description": "The Football Is Good For Training And Recreational Purposes", - "price": "€135", - "specialPrice": "€30", - "slug": "978-1-4837-9777-9", - "category": "Algodón", + "name": "Inteligente Metal Pizza", + "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit", + "price": "€177", + "specialPrice": "€31", + "isNew": false, + "slug": "978-1-229-86164-1", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/VqZN8f/640/480", - "https://picsum.photos/seed/gpPzgr9GI/640/480", - "https://picsum.photos/seed/NkV5la64/640/480" - ], - "featured": 0 - }, - { - "id": 67, - "name": "Inteligente Acero Ordenador", - "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality", - "price": "€71", - "specialPrice": "€29", - "slug": "978-0-7356-8288-7", - "category": "Ladrillo", - "images": [ - "https://picsum.photos/seed/kOyE3a/640/480", - "https://picsum.photos/seed/C6vjXTxc/640/480", - "https://picsum.photos/seed/UcgTO/640/480", - "https://picsum.photos/seed/OpgakRKqy/640/480", - "https://picsum.photos/seed/OOAntuhFI/640/480" + "https://picsum.photos/seed/6EIye/640/480", + "https://picsum.photos/seed/mKRPxDHnqH/640/480" ], "featured": 1 }, { - "id": 68, - "name": "Hecho a mano Metal Ordenador", - "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016", - "price": "€96", - "specialPrice": "€41", - "slug": "978-1-78363-216-9", - "category": "Madera", + "id": 67, + "name": "Fantástico Algodón Pizza", + "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals", + "price": "€25", + "specialPrice": "€36", + "isNew": false, + "slug": "978-0-299-87026-3", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/tp3YatJ/640/480", - "https://picsum.photos/seed/FLOHDmkMu8/640/480" + "https://picsum.photos/seed/iGfs1/640/480", + "https://picsum.photos/seed/mxA3uTj/640/480", + "https://picsum.photos/seed/f3Y9Y/640/480" ], "featured": 0, + "position": 67 + }, + { + "id": 68, + "name": "Práctico Plástico Mesa", + "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support", + "price": "€28", + "specialPrice": "€32", + "isNew": true, + "slug": "978-0-8453-9085-6", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", + "images": [ + "https://picsum.photos/seed/pZHuRWv1V/640/480", + "https://picsum.photos/seed/P22AtCz7/640/480", + "https://picsum.photos/seed/wKO6C6VO/640/480", + "https://picsum.photos/seed/z86STX25O/640/480" + ], + "featured": 1, "position": 68 }, { "id": 69, - "name": "Pequeño Madera Patatas fritas", - "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart", - "price": "€127", - "specialPrice": "€59", - "slug": "978-0-03-001557-1", - "category": "Ladrillo", + "name": "Refinado Granito Queso", + "description": "The Football Is Good For Training And Recreational Purposes", + "price": "€173", + "specialPrice": "€45", + "isNew": true, + "slug": "978-0-19-050936-1", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/xO3HsGJA/640/480", - "https://picsum.photos/seed/IFWQSQM5/640/480" + "https://picsum.photos/seed/CQ84sbVM/640/480", + "https://picsum.photos/seed/XOEr59/640/480" ], - "featured": 0, - "position": 69 + "featured": 1, + "discount": "15" }, { "id": 70, - "name": "Ergonómico Madera Bacon", - "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality", - "price": "€161", - "specialPrice": "€49", - "slug": "978-0-594-66216-7", - "category": "Madera", + "name": "Hecho a mano Granito Pescado", + "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart", + "price": "€57", + "specialPrice": "€40", + "isNew": false, + "slug": "978-0-533-86437-9", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/DPbyAPR/640/480", - "https://picsum.photos/seed/8ncEc/640/480", - "https://picsum.photos/seed/XLuu6Y/640/480" + "https://picsum.photos/seed/oUdfbU/640/480", + "https://picsum.photos/seed/53aGSoCV/640/480", + "https://picsum.photos/seed/TAj3bbm/640/480" ], - "featured": 0 + "featured": 1, + "discount": "7" }, { "id": 71, - "name": "Hecho a mano Metal Patatas fritas", - "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals", - "price": "€46", - "specialPrice": "€60", - "slug": "978-1-81286-751-7", - "category": "Algodón", + "name": "Práctico Madera Zapatos", + "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit", + "price": "€26", + "specialPrice": "€34", + "isNew": false, + "slug": "978-1-959637-80-6", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/UAzkHS/640/480", - "https://picsum.photos/seed/AAdVugUL/640/480", - "https://picsum.photos/seed/lSmOoZBn/640/480" - ], - "featured": 1, - "position": 71 - }, - { - "id": 72, - "name": "Artesanal Plástico Mesa", - "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J", - "price": "€38", - "specialPrice": "€41", - "slug": "978-1-57541-212-2", - "category": "Acero", - "images": [ - "https://picsum.photos/seed/yD0k3/640/480", - "https://picsum.photos/seed/MlD5NtKd/640/480", - "https://picsum.photos/seed/u9lFXo/640/480", - "https://picsum.photos/seed/8l3UAYUE7j/640/480", - "https://picsum.photos/seed/25wmeS4cZ/640/480", - "https://picsum.photos/seed/tFAXpIwgTE/640/480" + "https://picsum.photos/seed/n5HnJveOa/640/480", + "https://picsum.photos/seed/74riXk3/640/480", + "https://picsum.photos/seed/qVXXnHpTSJ/640/480", + "https://picsum.photos/seed/Pka9uIQyEL/640/480", + "https://picsum.photos/seed/LcQaJud/640/480" ], "featured": 1 }, { - "id": 73, - "name": "Ergonómico Acero Zapatos", - "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles", - "price": "€68", - "specialPrice": "€46", - "slug": "978-1-005-35954-6", - "category": "Granito", + "id": 72, + "name": "Guapo Granito Pelota", + "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals", + "price": "€116", + "specialPrice": "€42", + "isNew": true, + "slug": "978-1-57149-992-9", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/mbwCRFAew/640/480", - "https://picsum.photos/seed/ta8ijA2MN/640/480", - "https://picsum.photos/seed/R8Pib/640/480", - "https://picsum.photos/seed/dQqKGqD8f7/640/480", - "https://picsum.photos/seed/5GDDu4/640/480", - "https://picsum.photos/seed/0hi1MXbLO/640/480" + "https://picsum.photos/seed/jEUBH4QZke/640/480", + "https://picsum.photos/seed/erI72LXH/640/480", + "https://picsum.photos/seed/23TyWqZQ/640/480", + "https://picsum.photos/seed/b4GfqzlUKx/640/480" ], - "featured": 1, - "position": 73 + "featured": 0, + "discount": "15" + }, + { + "id": 73, + "name": "Hecho a mano Ladrillo Ordenador", + "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit", + "price": "€53", + "specialPrice": "€24", + "isNew": true, + "slug": "978-1-249-08425-9", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", + "images": [ + "https://picsum.photos/seed/mBopp/640/480", + "https://picsum.photos/seed/kFK1V/640/480" + ], + "featured": 1 }, { "id": 74, - "name": "Guapa Granito Ordenador", - "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016", - "price": "€66", - "specialPrice": "€50", - "slug": "978-1-123-88585-9", - "category": "Algodón", + "name": "Genérico Algodón Atún", + "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit", + "price": "€157", + "specialPrice": "€23", + "isNew": true, + "slug": "978-0-447-47968-3", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/LZf92bGP/640/480", - "https://picsum.photos/seed/2uz8Dpzd5/640/480", - "https://picsum.photos/seed/sEeBljThC8/640/480", - "https://picsum.photos/seed/1gRLel745/640/480", - "https://picsum.photos/seed/vtCnxcK/640/480" - ], - "featured": 0, - "position": 74 - }, - { - "id": 75, - "name": "Inteligente Algodón Pescado", - "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients", - "price": "€100", - "specialPrice": "€51", - "slug": "978-1-05-905419-0", - "category": "Algodón", - "images": [ - "https://picsum.photos/seed/IxIVn/640/480", - "https://picsum.photos/seed/BF0VlxE/640/480", - "https://picsum.photos/seed/oapFmVBF/640/480", - "https://picsum.photos/seed/paJHu7/640/480" - ], - "featured": 0, - "position": 75 - }, - { - "id": 76, - "name": "Guapo Acero Coche", - "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design", - "price": "€90", - "specialPrice": "€42", - "slug": "978-0-583-06252-7", - "category": "Algodón", - "images": [ - "https://picsum.photos/seed/XnB4aWpz/640/480", - "https://picsum.photos/seed/myJ7f/640/480", - "https://picsum.photos/seed/PcFcEsb/640/480", - "https://picsum.photos/seed/SrIJi/640/480" + "https://picsum.photos/seed/cLwQaL/640/480", + "https://picsum.photos/seed/cgRbBDr2K/640/480", + "https://picsum.photos/seed/e2AkbcrrbQ/640/480", + "https://picsum.photos/seed/WHu0N5/640/480", + "https://picsum.photos/seed/NY7Yv/640/480" ], "featured": 0 }, { - "id": 77, - "name": "Sabroso Hormigon Gorro", - "description": "The Football Is Good For Training And Recreational Purposes", - "price": "€108", - "specialPrice": "€38", - "slug": "978-0-944577-98-1", - "category": "Hormigon", + "id": 75, + "name": "Guapa Plástico Pizza", + "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support", + "price": "€109", + "specialPrice": "€30", + "isNew": false, + "slug": "978-0-927854-44-3", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/y6lzJkKkuG/640/480", - "https://picsum.photos/seed/zRhN87T7/640/480" + "https://picsum.photos/seed/SKOcqLfbL/640/480", + "https://picsum.photos/seed/3wqPKL9P/640/480", + "https://picsum.photos/seed/A0UPk/640/480" ], - "featured": 1, - "position": 77 + "featured": 0, + "position": 75, + "discount": "10" }, { - "id": 78, - "name": "Genérico Hormigon Guantes", - "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality", - "price": "€119", - "specialPrice": "€55", - "slug": "978-0-02-315165-1", - "category": "Ladrillo", + "id": 76, + "name": "Ergonómico Metal Ordenador", + "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients", + "price": "€81", + "specialPrice": "€40", + "isNew": true, + "slug": "978-0-448-94113-4", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/KWa9XIZ/640/480", - "https://picsum.photos/seed/6pyMtw/640/480", - "https://picsum.photos/seed/e6qodt/640/480", - "https://picsum.photos/seed/FgKc77VYNJ/640/480" + "https://picsum.photos/seed/aVQJJ/640/480", + "https://picsum.photos/seed/AT7nQkM45Z/640/480", + "https://picsum.photos/seed/FBgbD60/640/480", + "https://picsum.photos/seed/CV2zoRUDiA/640/480", + "https://picsum.photos/seed/TBWP8RW/640/480" ], "featured": 1 }, { - "id": 79, - "name": "Genérico Hormigon Patatas fritas", - "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016", - "price": "€89", - "specialPrice": "€21", - "slug": "978-1-183-99370-9", - "category": "Metal", + "id": 77, + "name": "Increible Acero Mesa", + "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive", + "price": "€148", + "specialPrice": "€25", + "isNew": true, + "slug": "978-0-251-50209-6", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/4bsms/640/480", - "https://picsum.photos/seed/7zX3VnnFLc/640/480", - "https://picsum.photos/seed/MRSBKn16/640/480", - "https://picsum.photos/seed/gT8HAbfozo/640/480", - "https://picsum.photos/seed/kmGYj4uX/640/480", - "https://picsum.photos/seed/ujVI1Jtr/640/480" + "https://picsum.photos/seed/4PCEsZUNV8/640/480", + "https://picsum.photos/seed/BLIbPNoqbc/640/480", + "https://picsum.photos/seed/nhtFOy0L/640/480", + "https://picsum.photos/seed/uIOse8YZV/640/480", + "https://picsum.photos/seed/alDhaxN/640/480" ], "featured": 1, - "position": 79 + "position": 77, + "discount": "10" + }, + { + "id": 78, + "name": "Sorprendente Madera Bicicleta", + "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive", + "price": "€93", + "specialPrice": "€59", + "isNew": true, + "slug": "978-0-346-58774-8", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", + "images": [ + "https://picsum.photos/seed/zJ0aWOHm/640/480", + "https://picsum.photos/seed/xZ3Cb/640/480" + ], + "featured": 0, + "position": 78 + }, + { + "id": 79, + "name": "Sorprendente Metal Atún", + "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals", + "price": "€126", + "specialPrice": "€48", + "isNew": false, + "slug": "978-0-7900-3519-2", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", + "images": [ + "https://picsum.photos/seed/DuYVyZ4V/640/480", + "https://picsum.photos/seed/C1MqeUSve/640/480", + "https://picsum.photos/seed/HSxWo4kxAH/640/480", + "https://picsum.photos/seed/oyfF2q/640/480" + ], + "featured": 0, + "discount": "5" }, { "id": 80, - "name": "Fantástico Hormigon Salchichas", - "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles", - "price": "€149", - "specialPrice": "€50", - "slug": "978-1-9737-1486-6", - "category": "Ladrillo", + "name": "Rústico Granito Ensalada", + "description": "The Football Is Good For Training And Recreational Purposes", + "price": "€192", + "specialPrice": "€44", + "isNew": false, + "slug": "978-0-7068-0264-1", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/A5WYCJbA/640/480", - "https://picsum.photos/seed/1QDFgoiz/640/480", - "https://picsum.photos/seed/SWjsy/640/480", - "https://picsum.photos/seed/nFaBD/640/480" + "https://picsum.photos/seed/TDHd4l5/640/480", + "https://picsum.photos/seed/AlODLgF/640/480", + "https://picsum.photos/seed/xIqLgU/640/480", + "https://picsum.photos/seed/vfsbUDfC/640/480" ], "featured": 0, - "position": 80 + "position": 80, + "discount": "12" }, { "id": 81, - "name": "Genérico Acero Ordenador", - "description": "The Football Is Good For Training And Recreational Purposes", - "price": "€172", + "name": "Refinado Hormigon Silla", + "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality", + "price": "€124", "specialPrice": "€22", - "slug": "978-1-6975-6930-8", - "category": "Algodón", + "isNew": true, + "slug": "978-1-82028-222-7", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/HqJlb/640/480", - "https://picsum.photos/seed/hmesQ2rjLz/640/480", - "https://picsum.photos/seed/s6Mor/640/480", - "https://picsum.photos/seed/Trthhmo1J4/640/480" + "https://picsum.photos/seed/7rQSVsud9y/640/480", + "https://picsum.photos/seed/v503sK/640/480", + "https://picsum.photos/seed/9Yzs3A3x/640/480", + "https://picsum.photos/seed/JeLrcZtW/640/480" ], "featured": 1, - "position": 81 + "position": 81, + "discount": "9" }, { "id": 82, - "name": "Sorprendente Granito Sopa", - "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles", - "price": "€21", - "specialPrice": "€37", - "slug": "978-0-08-728984-0", - "category": "Granito", + "name": "Artesanal Madera Pelota", + "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J", + "price": "€63", + "specialPrice": "€33", + "isNew": false, + "slug": "978-0-8045-0032-6", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/hGiUg/640/480", - "https://picsum.photos/seed/cglme/640/480", - "https://picsum.photos/seed/HRFf6n5/640/480", - "https://picsum.photos/seed/SQ2Tfv2FZ/640/480" + "https://picsum.photos/seed/apkynsM/640/480", + "https://picsum.photos/seed/x8TxsLqWq/640/480", + "https://picsum.photos/seed/QCvTJm2Vw/640/480", + "https://picsum.photos/seed/Lc2uPnFVd/640/480", + "https://picsum.photos/seed/ZzPt5jVh/640/480" ], "featured": 0 }, { "id": 83, - "name": "Fantástico Ladrillo Pantalones", - "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients", - "price": "€47", - "specialPrice": "€53", - "slug": "978-1-218-66481-9", - "category": "Madera", + "name": "Ergonómico Algodón Bacon", + "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit", + "price": "€64", + "specialPrice": "€46", + "isNew": false, + "slug": "978-0-06-018240-3", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/3iNKb47jVR/640/480", - "https://picsum.photos/seed/jojjveYE/640/480", - "https://picsum.photos/seed/tj5eAM5rT/640/480", - "https://picsum.photos/seed/gCsMt/640/480" + "https://picsum.photos/seed/zY0e2vmO9O/640/480", + "https://picsum.photos/seed/wSoCzSaP/640/480", + "https://picsum.photos/seed/hx6X2MM/640/480", + "https://picsum.photos/seed/RKj2y/640/480" ], - "featured": 0, - "position": 83 + "featured": 1, + "position": 83, + "discount": "15" }, { "id": 84, - "name": "Ergonómico Madera Teclado", - "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality", - "price": "€169", - "specialPrice": "€22", - "slug": "978-0-679-81348-4", - "category": "Acero", + "name": "Rústico Hormigon Bicicleta", + "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support", + "price": "€150", + "specialPrice": "€24", + "isNew": true, + "slug": "978-0-503-25299-1", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/UtjQy/640/480", - "https://picsum.photos/seed/1KCHfF6tuf/640/480", - "https://picsum.photos/seed/ZAGrr5U/640/480", - "https://picsum.photos/seed/OqQaNND/640/480", - "https://picsum.photos/seed/VzdyH/640/480" + "https://picsum.photos/seed/7GgcI3O/640/480", + "https://picsum.photos/seed/QJd06EZD/640/480", + "https://picsum.photos/seed/UUZtuR0/640/480", + "https://picsum.photos/seed/uNnFeax/640/480" ], "featured": 0, - "position": 84 + "discount": "11" }, { "id": 85, - "name": "Guapo Acero Sopa", - "description": "The slim & simple Maple Gaming Keyboard from Dev Byte comes with a sleek body and 7- Color RGB LED Back-lighting for smart functionality", - "price": "€165", - "specialPrice": "€39", - "slug": "978-1-4971-9271-3", - "category": "Algodón", + "name": "Práctico Acero Ensalada", + "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals", + "price": "€140", + "specialPrice": "€59", + "isNew": true, + "slug": "978-1-83978-799-7", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/7cJAXY7YgC/640/480", - "https://picsum.photos/seed/j1hxqljXd/640/480" + "https://picsum.photos/seed/gghO9FeS/640/480", + "https://picsum.photos/seed/spn5I6R/640/480", + "https://picsum.photos/seed/zgqFt9/640/480", + "https://picsum.photos/seed/MA9RK/640/480" ], - "featured": 0 + "featured": 1 }, { "id": 86, - "name": "Artesanal Hormigon Pizza", - "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J", - "price": "€146", - "specialPrice": "€59", - "slug": "978-1-208-99565-7", - "category": "Plástico", + "name": "Hecho a mano Plástico Teclado", + "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients", + "price": "€184", + "specialPrice": "€35", + "isNew": true, + "slug": "978-0-609-43686-8", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/TwcwlqBRs/640/480", - "https://picsum.photos/seed/wjVVcxqpE/640/480", - "https://picsum.photos/seed/b3jqK1QxSo/640/480", - "https://picsum.photos/seed/i9EKiBjLS/640/480", - "https://picsum.photos/seed/JFj1G/640/480", - "https://picsum.photos/seed/jpHibCB0/640/480" + "https://picsum.photos/seed/JbXS1/640/480", + "https://picsum.photos/seed/0nBtkn8/640/480", + "https://picsum.photos/seed/JNyR9bbz/640/480", + "https://picsum.photos/seed/SjGh0AlcFr/640/480", + "https://picsum.photos/seed/KDUniZvZQ/640/480" ], - "featured": 1 + "featured": 0, + "discount": "13" }, { "id": 87, - "name": "Pequeño Ladrillo Queso", - "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients", - "price": "€81", - "specialPrice": "€20", - "slug": "978-0-85268-200-5", - "category": "Acero", + "name": "Ergonómico Metal Salchichas", + "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive", + "price": "€71", + "specialPrice": "€45", + "isNew": false, + "slug": "978-0-527-38222-3", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/Tk0ky3b/640/480", - "https://picsum.photos/seed/ykM95k0/640/480" + "https://picsum.photos/seed/kqMq4IbI/640/480", + "https://picsum.photos/seed/V5kJzsX4Qq/640/480" ], - "featured": 1 + "featured": 0, + "position": 87 }, { "id": 88, - "name": "Sabroso Granito Pelota", - "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive", - "price": "€137", - "specialPrice": "€53", - "slug": "978-1-139-33774-8", - "category": "Acero", + "name": "Artesanal Acero Toallas", + "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart", + "price": "€20", + "specialPrice": "€36", + "isNew": false, + "slug": "978-1-106-45123-1", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/FS46tC/640/480", - "https://picsum.photos/seed/VKVWlzG/640/480", - "https://picsum.photos/seed/JCupotSG4/640/480", - "https://picsum.photos/seed/ZgMcaWQ/640/480", - "https://picsum.photos/seed/rxDJdZ5YhG/640/480", - "https://picsum.photos/seed/YBSbF52/640/480" + "https://picsum.photos/seed/ZAUKGmZoH8/640/480", + "https://picsum.photos/seed/b4E2a/640/480" ], - "featured": 0 + "featured": 1, + "position": 88 }, { "id": 89, - "name": "Artesanal Plástico Pollo", - "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles", - "price": "€113", - "specialPrice": "€24", - "slug": "978-0-622-48993-3", - "category": "Acero", + "name": "Inteligente Plástico Ensalada", + "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit", + "price": "€186", + "specialPrice": "€23", + "isNew": true, + "slug": "978-0-09-262953-2", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/I1Hdq/640/480", - "https://picsum.photos/seed/gml38gVes9/640/480" + "https://picsum.photos/seed/yi0wdYVFd/640/480", + "https://picsum.photos/seed/N6x8TCI37/640/480", + "https://picsum.photos/seed/LdnWmnU/640/480", + "https://picsum.photos/seed/ZvJVU7yIs0/640/480", + "https://picsum.photos/seed/CuJshkx/640/480", + "https://picsum.photos/seed/K4BYL/640/480" ], - "featured": 0 + "featured": 0, + "position": 89 }, { "id": 90, - "name": "Refinado Algodón Pollo", - "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design", - "price": "€159", - "specialPrice": "€54", - "slug": "978-0-212-43855-6", - "category": "Metal", + "name": "Ergonómico Ladrillo Guantes", + "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles", + "price": "€144", + "specialPrice": "€26", + "isNew": false, + "slug": "978-0-08-218659-5", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/OYtsqcLt/640/480", - "https://picsum.photos/seed/dIR0VA/640/480", - "https://picsum.photos/seed/j2VMki/640/480", - "https://picsum.photos/seed/oAUJizLD/640/480" + "https://picsum.photos/seed/r3f9zy6s/640/480", + "https://picsum.photos/seed/geSHZ/640/480", + "https://picsum.photos/seed/0BzdL5/640/480", + "https://picsum.photos/seed/wmspiYqEs/640/480" ], - "featured": 0, - "position": 90 + "featured": 1, + "position": 90, + "discount": "5" }, { "id": 91, - "name": "Refinado Ladrillo Salchichas", - "description": "The Football Is Good For Training And Recreational Purposes", - "price": "€111", - "specialPrice": "€52", - "slug": "978-1-58184-209-8", - "category": "Plástico", + "name": "Sorprendente Madera Zapatos", + "description": "Ergonomic executive chair upholstered in bonded black leather and PVC padded seat and back for all-day comfort and support", + "price": "€146", + "specialPrice": "€33", + "isNew": false, + "slug": "978-1-0925-8381-7", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/PnFv2dXxa/640/480", - "https://picsum.photos/seed/Gpg2EX/640/480", - "https://picsum.photos/seed/x7Mttzp/640/480", - "https://picsum.photos/seed/q8umE1g/640/480", - "https://picsum.photos/seed/ottxxTr/640/480", - "https://picsum.photos/seed/U1uxYH/640/480" + "https://picsum.photos/seed/uFgCLHRlu/640/480", + "https://picsum.photos/seed/09IFrW/640/480", + "https://picsum.photos/seed/9lYlf4bME/640/480", + "https://picsum.photos/seed/dXedo8jO/640/480", + "https://picsum.photos/seed/1mnxTIVfpl/640/480" ], - "featured": 1, - "position": 91 + "featured": 0, + "discount": "12" }, { "id": 92, - "name": "Genérico Granito Pescado", - "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design", - "price": "€193", - "specialPrice": "€47", - "slug": "978-1-78675-491-2", - "category": "Hormigon", + "name": "Increible Hormigon Pizza", + "description": "The Football Is Good For Training And Recreational Purposes", + "price": "€123", + "specialPrice": "€20", + "isNew": false, + "slug": "978-1-6760-4609-7", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/T7zknDEA81/640/480", - "https://picsum.photos/seed/Uz7r9gmFw/640/480", - "https://picsum.photos/seed/C7QnK74d/640/480", - "https://picsum.photos/seed/rTme53M/640/480", - "https://picsum.photos/seed/hGLAv0xx/640/480" + "https://picsum.photos/seed/q5RDIKF/640/480", + "https://picsum.photos/seed/gftwcvjbrE/640/480" ], - "featured": 0, + "featured": 1, "position": 92 }, { "id": 93, - "name": "Guapa Granito Raton", - "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit", - "price": "€59", - "specialPrice": "€49", - "slug": "978-0-206-27519-8", - "category": "Algodón", + "name": "Genérico Algodón Teclado", + "description": "The Apollotech B340 is an affordable wireless mouse with reliable connectivity, 12 months battery life and modern design", + "price": "€119", + "specialPrice": "€38", + "isNew": false, + "slug": "978-1-4015-3538-4", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/U0yNxq/640/480", - "https://picsum.photos/seed/MqxI1kFPH/640/480", - "https://picsum.photos/seed/9TbIUTpQ/640/480" + "https://picsum.photos/seed/Gc2nBOYHS/640/480", + "https://picsum.photos/seed/7MZtu75Zc/640/480", + "https://picsum.photos/seed/SDqw9obku/640/480", + "https://picsum.photos/seed/xAdLYxsae/640/480", + "https://picsum.photos/seed/epyeMo/640/480", + "https://picsum.photos/seed/g2Ub09a8/640/480" ], - "featured": 1 + "featured": 0, + "discount": "5" }, { "id": 94, - "name": "Artesanal Granito Silla", - "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive", - "price": "€99", - "specialPrice": "€59", - "slug": "978-1-78829-362-4", - "category": "Hormigon", + "name": "Artesanal Metal Bacon", + "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit", + "price": "€89", + "specialPrice": "€47", + "isNew": true, + "slug": "978-1-043-52433-3", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/HWnLPO/640/480", - "https://picsum.photos/seed/jErkSvs0/640/480", - "https://picsum.photos/seed/lG2KTjTLZ/640/480", - "https://picsum.photos/seed/Qy4pmwoT/640/480", - "https://picsum.photos/seed/WJhaFYsz5/640/480", - "https://picsum.photos/seed/vTCrquOUM/640/480" + "https://picsum.photos/seed/lSX3wnBP/640/480", + "https://picsum.photos/seed/LUOu8/640/480" ], "featured": 1, - "position": 94 + "position": 94, + "discount": "11" }, { "id": 95, - "name": "Inteligente Ladrillo Guantes", - "description": "The Football Is Good For Training And Recreational Purposes", - "price": "€66", - "specialPrice": "€31", - "slug": "978-0-437-28956-8", - "category": "Plástico", + "name": "Genérico Metal Sopa", + "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals", + "price": "€110", + "specialPrice": "€51", + "isNew": false, + "slug": "978-1-006-62105-5", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/e9QdJFx/640/480", - "https://picsum.photos/seed/HrzhF/640/480", - "https://picsum.photos/seed/6S53na76/640/480" + "https://picsum.photos/seed/JD4XtJf/640/480", + "https://picsum.photos/seed/KE0iL/640/480", + "https://picsum.photos/seed/x0wxQjAyB/640/480", + "https://picsum.photos/seed/3uWlXw9Oa9/640/480", + "https://picsum.photos/seed/NSuo2fRTJ/640/480" ], - "featured": 1 + "featured": 0, + "position": 95, + "discount": "6" }, { "id": 96, - "name": "Guapo Ladrillo Silla", - "description": "The Football Is Good For Training And Recreational Purposes", - "price": "€194", - "specialPrice": "€32", - "slug": "978-0-555-46871-5", - "category": "Plástico", + "name": "Hecho a mano Ladrillo Zapatos", + "description": "The automobile layout consists of a front-engine design, with transaxle-type transmissions mounted at the rear of the engine and four wheel drive", + "price": "€76", + "specialPrice": "€47", + "isNew": true, + "slug": "978-0-553-62311-6", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/zVLi6Awq/640/480", - "https://picsum.photos/seed/aVIdXP1h/640/480" + "https://picsum.photos/seed/tY5Oe7H6T/640/480", + "https://picsum.photos/seed/IFg1o/640/480", + "https://picsum.photos/seed/b3WiU7yw/640/480" ], - "featured": 1, - "position": 96 + "featured": 0 }, { "id": 97, - "name": "Genérico Madera Silla", - "description": "New ABC 13 9370, 13.3, 5th Gen CoreA5-8250U, 8GB RAM, 256GB SSD, power UHD Graphics, OS 10 Home, OS Office A & J 2016", - "price": "€140", - "specialPrice": "€20", - "slug": "978-0-89331-225-1", - "category": "Hormigon", + "name": "Guapo Granito Toallas", + "description": "Boston's most advanced compression wear technology increases muscle oxygenation, stabilizes active muscles", + "price": "€178", + "specialPrice": "€31", + "isNew": false, + "slug": "978-0-270-99429-2", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/ECO5c5NqX/640/480", - "https://picsum.photos/seed/v6JZqsJ/640/480", - "https://picsum.photos/seed/5OOyP1KCf/640/480", - "https://picsum.photos/seed/KS2cvX8tt/640/480" + "https://picsum.photos/seed/SKaIE/640/480", + "https://picsum.photos/seed/U4Dl1e/640/480" ], "featured": 1, "position": 97 }, { "id": 98, - "name": "Hecho a mano Algodón Ordenador", - "description": "Andy shoes are designed to keeping in mind durability as well as trends, the most stylish range of shoes & sandals", - "price": "€150", - "specialPrice": "€48", - "slug": "978-1-05-994044-8", - "category": "Granito", + "name": "Ergonómico Ladrillo Pizza", + "description": "The Nagasaki Lander is the trademarked name of several series of Nagasaki sport bikes, that started with the 1984 ABC800J", + "price": "€32", + "specialPrice": "€58", + "isNew": false, + "slug": "978-0-316-30967-7", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/piI5lsx0nd/640/480", - "https://picsum.photos/seed/7ku9MSBNDN/640/480" + "https://picsum.photos/seed/I55ldG/640/480", + "https://picsum.photos/seed/BLzJ5HyqJf/640/480", + "https://picsum.photos/seed/df7KM/640/480", + "https://picsum.photos/seed/wdjnNMXiAS/640/480", + "https://picsum.photos/seed/zVNn3S/640/480" ], "featured": 0, "position": 98 }, { "id": 99, - "name": "Sorprendente Hormigon Raton", - "description": "New range of formal shirts are designed keeping you in mind. With fits and styling that will make you stand apart", - "price": "€182", - "specialPrice": "€48", - "slug": "978-1-964085-45-6", - "category": "Ladrillo", + "name": "Sabroso Metal Ensalada", + "description": "The beautiful range of Apple Naturalé that has an exciting mix of natural ingredients. With the Goodness of 100% Natural Ingredients", + "price": "€188", + "specialPrice": "€59", + "isNew": true, + "slug": "978-0-212-16286-4", + "category": 2, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/oarOs3BBU/640/480", - "https://picsum.photos/seed/KmjYN/640/480" + "https://picsum.photos/seed/V8MtVycBt/640/480", + "https://picsum.photos/seed/Tu33LX/640/480", + "https://picsum.photos/seed/uGXR6B5VgF/640/480" ], - "featured": 1, - "position": 99 + "featured": 0, + "discount": "11" }, { "id": 100, - "name": "Hecho a mano Algodón Queso", - "description": "Carbonite web goalkeeper gloves are ergonomically designed to give easy fit", - "price": "€184", - "specialPrice": "€26", - "slug": "978-0-05-016160-9", - "category": "Ladrillo", + "name": "Sorprendente Ladrillo Pizza", + "description": "The Football Is Good For Training And Recreational Purposes", + "price": "€20", + "specialPrice": "€53", + "isNew": true, + "slug": "978-1-9793-4598-9", + "category": 1, + "postalCode": "12345", + "dateExpired": "30/01/2024", "images": [ - "https://picsum.photos/seed/ACC1SNHN/640/480", - "https://picsum.photos/seed/sOGtUVhZ/640/480", - "https://picsum.photos/seed/13uqWnh/640/480", - "https://picsum.photos/seed/MtIkBUG4/640/480" + "https://picsum.photos/seed/Q5rFD/640/480", + "https://picsum.photos/seed/gObhsXJgT/640/480", + "https://picsum.photos/seed/eD2kNo/640/480" ], - "featured": 1 + "featured": 0, + "position": 100, + "discount": "8" } ] diff --git a/api/db/db.js b/api/db/db.js new file mode 100644 index 0000000..49bfb23 --- /dev/null +++ b/api/db/db.js @@ -0,0 +1,28 @@ +async function connect() { + if (global.connection && global.connection.state !== 'disconnected') + return global.connection; + + const host = process.env.HOST; + const port = process.env.PORT; + const database = process.env.DATABASE; + const user = process.env.DB_USER; + const password = process.env.DB_PASSWORD; + + + + const mysql = require("mysql2/promise"); + const connection = await mysql.createConnection("mysql://" + user + ":" + password + "@" + host + ":" + port + "/" + database + ""); + console.log("Conectou no MySQL!"); + global.connection = connection; + return connection; +} + +async function getProducts() { + const conn = await connect(); + const [rows] = await conn.query('CALL getProduct("2024-01-30", "08001")'); + + return rows; +} + + +module.exports = { getProducts } \ No newline at end of file diff --git a/api/package-lock.json b/api/package-lock.json index 68a648d..179324c 100644 --- a/api/package-lock.json +++ b/api/package-lock.json @@ -1,127 +1,17 @@ { - "name": "api", + "name": "backend", "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "api", + "name": "backend", "version": "1.0.0", "license": "ISC", "dependencies": { - "@faker-js/faker": "^8.3.1", - "class-validator": "^0.14.0", - "cors": "^2.8.5", - "dotenv": "^16.3.1", - "express": "^4.18.2", - "reflect-metadata": "^0.2.1" - }, - "devDependencies": { - "@types/cors": "^2.8.17", - "@types/node": "^20.10.7", - "ts-node": "^10.9.2", - "typescript": "^5.3.3" + "express": "^4.18.2" } }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dev": true, - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@faker-js/faker": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/@faker-js/faker/-/faker-8.3.1.tgz", - "integrity": "sha512-FdgpFxY6V6rLZE9mmIBb9hM0xpfvQOSNOLnzolzKwsE1DH+gC7lEKV1p1IbR0lAYyvYd5a4u3qWJzowUkw1bIw==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/fakerjs" - } - ], - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0", - "npm": ">=6.14.13" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", - "dev": true - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dev": true, - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", - "dev": true - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", - "dev": true - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", - "dev": true - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz", - "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==", - "dev": true - }, - "node_modules/@types/cors": { - "version": "2.8.17", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", - "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/node": { - "version": "20.10.8", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.8.tgz", - "integrity": "sha512-f8nQs3cLxbAFc00vEU59yf9UyGUftkPaLGfvbVOIDdx2i1b8epBqj2aNGyP19fiyXWvlmZ7qC1XLjAzw/OKIeA==", - "dev": true, - "dependencies": { - "undici-types": "~5.26.4" - } - }, - "node_modules/@types/validator": { - "version": "13.11.7", - "resolved": "https://registry.npmjs.org/@types/validator/-/validator-13.11.7.tgz", - "integrity": "sha512-q0JomTsJ2I5Mv7dhHhQLGjMvX0JJm5dyZ1DXQySIUzU1UlwzB8bt+R6+LODUbz0UDIOvEzGc28tk27gBJw2N8Q==" - }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -134,33 +24,6 @@ "node": ">= 0.6" } }, - "node_modules/acorn": { - "version": "8.11.3", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", - "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz", - "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", @@ -210,16 +73,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/class-validator": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.14.0.tgz", - "integrity": "sha512-ct3ltplN8I9fOwUd8GrP8UQixwff129BkEtuWDKL5W45cQuLd19xqmTLu5ge78YDm/fdje6FMt0hGOhl0lii3A==", - "dependencies": { - "@types/validator": "^13.7.10", - "libphonenumber-js": "^1.10.14", - "validator": "^13.7.0" - } - }, "node_modules/content-disposition": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", @@ -252,24 +105,6 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, - "node_modules/cors": { - "version": "2.8.5", - "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", - "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", - "dependencies": { - "object-assign": "^4", - "vary": "^1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", - "dev": true - }, "node_modules/debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -308,26 +143,6 @@ "npm": "1.2.8000 || >= 1.4.16" } }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dotenv": { - "version": "16.3.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", - "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" - } - }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -544,17 +359,6 @@ "node": ">= 0.10" } }, - "node_modules/libphonenumber-js": { - "version": "1.10.53", - "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.10.53.tgz", - "integrity": "sha512-sDTnnqlWK4vH4AlDQuswz3n4Hx7bIQWTpIcScJX+Sp7St3LXHmfiax/ZFfyYxHmkdCvydOLSuvtAO/XpXiSySw==" - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, "node_modules/media-typer": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", @@ -619,14 +423,6 @@ "node": ">= 0.6" } }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/object-inspect": { "version": "1.13.1", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", @@ -707,11 +503,6 @@ "node": ">= 0.8" } }, - "node_modules/reflect-metadata": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.2.1.tgz", - "integrity": "sha512-i5lLI6iw9AU3Uu4szRNPPEkomnkjRTaVt9hy/bn5g/oSzekBSMeLZblcjP74AW0vBabqERLLIrz+gR8QYR54Tw==" - }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -826,49 +617,6 @@ "node": ">=0.6" } }, - "node_modules/ts-node": { - "version": "10.9.2", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", - "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==", - "dev": true, - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, "node_modules/type-is": { "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", @@ -881,25 +629,6 @@ "node": ">= 0.6" } }, - "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", - "dev": true - }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -916,20 +645,6 @@ "node": ">= 0.4.0" } }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", - "dev": true - }, - "node_modules/validator": { - "version": "13.11.0", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.11.0.tgz", - "integrity": "sha512-Ii+sehpSfZy+At5nPdnyMhx78fEoPDkR2XW/zimHEL3MyGJQOCQ7WeP20jPYRz7ZCpcKLB21NxuXHF3bxjStBQ==", - "engines": { - "node": ">= 0.10" - } - }, "node_modules/vary": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", @@ -937,15 +652,6 @@ "engines": { "node": ">= 0.8" } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } } } } diff --git a/index.html b/index.html index 15b9fbc..28232dc 100644 --- a/index.html +++ b/index.html @@ -51,6 +51,7 @@ src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-element-bundle.min.js" defer > +
diff --git a/package-lock.json b/package-lock.json index c6a94a2..b22f23e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,8 @@ "@vue-stripe/vue-stripe": "^4.5.0", "@vueuse/core": "^10.7.0", "axios": "^1.2.1", + "express": "^4.18.2", + "mysql2": "^3.7.0", "pinia": "^2.0.11", "quasar": "^2.6.0", "vee-validate": "^4.12.2", @@ -888,7 +890,6 @@ "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", - "dev": true, "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -1085,8 +1086,7 @@ "node_modules/array-flatten": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", - "dev": true + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, "node_modules/astral-regex": { "version": "2.0.0", @@ -1217,7 +1217,6 @@ "version": "1.20.1", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==", - "dev": true, "dependencies": { "bytes": "3.1.2", "content-type": "~1.0.4", @@ -1241,7 +1240,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, "engines": { "node": ">= 0.8" } @@ -1250,7 +1248,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "dependencies": { "ms": "2.0.0" } @@ -1258,8 +1255,7 @@ "node_modules/body-parser/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/boolbase": { "version": "1.0.0", @@ -1367,7 +1363,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", - "dev": true, "dependencies": { "function-bind": "^1.1.2", "get-intrinsic": "^1.2.1", @@ -1693,7 +1688,6 @@ "version": "0.5.4", "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", - "dev": true, "dependencies": { "safe-buffer": "5.2.1" }, @@ -1705,7 +1699,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, "funding": [ { "type": "github", @@ -1725,7 +1718,6 @@ "version": "1.0.5", "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz", "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -1734,7 +1726,6 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -1742,8 +1733,7 @@ "node_modules/cookie-signature": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", - "dev": true + "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==" }, "node_modules/core-util-is": { "version": "1.0.3", @@ -1865,7 +1855,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", - "dev": true, "dependencies": { "get-intrinsic": "^1.2.1", "gopd": "^1.0.1", @@ -1892,11 +1881,18 @@ "node": ">=0.4.0" } }, + "node_modules/denque": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/denque/-/denque-2.1.0.tgz", + "integrity": "sha512-HVQE3AAb/pxF8fQAoiqpvg9i3evqug3hoiwakOyZAwJm+6vZehbkYXZ0l4JxS+I3QxM97v5aaRNhj8v5oBhekw==", + "engines": { + "node": ">=0.10" + } + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, "engines": { "node": ">= 0.8" } @@ -1905,7 +1901,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", - "dev": true, "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -1950,8 +1945,7 @@ "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" }, "node_modules/electron-to-chromium": { "version": "1.4.625", @@ -1981,7 +1975,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true, "engines": { "node": ">= 0.8" } @@ -2386,8 +2379,7 @@ "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==" }, "node_modules/escape-string-regexp": { "version": "4.0.0", @@ -2621,7 +2613,6 @@ "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -2630,7 +2621,6 @@ "version": "4.18.2", "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz", "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==", - "dev": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -2697,7 +2687,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "dependencies": { "ms": "2.0.0" } @@ -2705,14 +2694,12 @@ "node_modules/express/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/express/node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, "funding": [ { "type": "github", @@ -2837,7 +2824,6 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, "dependencies": { "debug": "2.6.9", "encodeurl": "~1.0.2", @@ -2855,7 +2841,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "dependencies": { "ms": "2.0.0" } @@ -2863,8 +2848,7 @@ "node_modules/finalhandler/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/find-up": { "version": "5.0.0", @@ -2947,7 +2931,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -2969,7 +2952,6 @@ "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -3018,11 +3000,18 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/generate-function": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.3.1.tgz", + "integrity": "sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==", + "dependencies": { + "is-property": "^1.0.2" + } + }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", @@ -3036,7 +3025,6 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", - "dev": true, "dependencies": { "function-bind": "^1.1.2", "has-proto": "^1.0.1", @@ -3110,7 +3098,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", - "dev": true, "dependencies": { "get-intrinsic": "^1.1.3" }, @@ -3143,7 +3130,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", - "dev": true, "dependencies": { "get-intrinsic": "^1.2.2" }, @@ -3155,7 +3141,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -3167,7 +3152,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -3179,7 +3163,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", - "dev": true, "dependencies": { "function-bind": "^1.1.2" }, @@ -3221,7 +3204,6 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", - "dev": true, "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -3237,7 +3219,6 @@ "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -3318,8 +3299,7 @@ "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "node_modules/inquirer": { "version": "8.2.6", @@ -3351,7 +3331,6 @@ "version": "1.9.1", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, "engines": { "node": ">= 0.10" } @@ -3479,6 +3458,11 @@ "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", "dev": true }, + "node_modules/is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==" + }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -3847,6 +3831,11 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, "node_modules/lowdb": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz", @@ -3902,7 +3891,6 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -3910,8 +3898,7 @@ "node_modules/merge-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==", - "dev": true + "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w==" }, "node_modules/merge2": { "version": "1.4.1", @@ -3956,7 +3943,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -3978,7 +3964,6 @@ "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, "bin": { "mime": "cli.js" }, @@ -4090,6 +4075,62 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, + "node_modules/mysql2": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/mysql2/-/mysql2-3.7.0.tgz", + "integrity": "sha512-c45jA3Jc1X8yJKzrWu1GpplBKGwv/wIV6ITZTlCSY7npF2YfJR+6nMP5e+NTQhUeJPSyOQAbGDCGEHbAl8HN9w==", + "dependencies": { + "denque": "^2.1.0", + "generate-function": "^2.3.1", + "iconv-lite": "^0.6.3", + "long": "^5.2.1", + "lru-cache": "^8.0.0", + "named-placeholders": "^1.1.3", + "seq-queue": "^0.0.5", + "sqlstring": "^2.3.2" + }, + "engines": { + "node": ">= 8.0" + } + }, + "node_modules/mysql2/node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mysql2/node_modules/lru-cache": { + "version": "8.0.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-8.0.5.tgz", + "integrity": "sha512-MhWWlVnuab1RG5/zMRRcVGXZLCXrZTgfwMikgzCegsPnG62yDQo5JnqKkrK4jO5iKqDAZGItAqN5CtKBCBWRUA==", + "engines": { + "node": ">=16.14" + } + }, + "node_modules/named-placeholders": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/named-placeholders/-/named-placeholders-1.1.3.tgz", + "integrity": "sha512-eLoBxg6wE/rZkJPhU/xRX1WTpkFEwDJEN96oxFrTsqBdbT5ec295Q+CoHrL9IT0DipqKhmGcaZmwOt8OON5x1w==", + "dependencies": { + "lru-cache": "^7.14.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/named-placeholders/node_modules/lru-cache": { + "version": "7.18.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", + "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", + "engines": { + "node": ">=12" + } + }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", @@ -4117,7 +4158,6 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -4180,7 +4220,6 @@ "version": "1.13.1", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -4189,7 +4228,6 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, "dependencies": { "ee-first": "1.1.1" }, @@ -4351,7 +4389,6 @@ "version": "1.3.3", "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, "engines": { "node": ">= 0.8" } @@ -4392,8 +4429,7 @@ "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==", - "dev": true + "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ==" }, "node_modules/picocolors": { "version": "1.0.0", @@ -4569,7 +4605,6 @@ "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", - "dev": true, "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -4596,7 +4631,6 @@ "version": "6.11.0", "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, "dependencies": { "side-channel": "^1.0.4" }, @@ -4654,7 +4688,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, "engines": { "node": ">= 0.6" } @@ -4663,7 +4696,6 @@ "version": "2.5.1", "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", - "dev": true, "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", @@ -4678,7 +4710,6 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", - "dev": true, "engines": { "node": ">= 0.8" } @@ -4936,8 +4967,7 @@ "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/sass": { "version": "1.69.7", @@ -4987,7 +5017,6 @@ "version": "0.18.0", "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", - "dev": true, "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -5011,7 +5040,6 @@ "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, "dependencies": { "ms": "2.0.0" } @@ -5019,14 +5047,17 @@ "node_modules/send/node_modules/debug/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==" }, "node_modules/send/node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/seq-queue": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/seq-queue/-/seq-queue-0.0.5.tgz", + "integrity": "sha512-hr3Wtp/GZIc/6DAGPDcV4/9WoZhjrkXsi5B/07QgX8tsdc6ilr7BFM6PM6rbdAX1kFSDYeZGLipIZZKyQP0O5Q==" }, "node_modules/serialize-javascript": { "version": "6.0.2", @@ -5041,7 +5072,6 @@ "version": "1.15.0", "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", - "dev": true, "dependencies": { "encodeurl": "~1.0.2", "escape-html": "~1.0.3", @@ -5062,7 +5092,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", - "dev": true, "dependencies": { "define-data-property": "^1.1.1", "get-intrinsic": "^1.2.1", @@ -5076,8 +5105,7 @@ "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, "node_modules/shallow-clone": { "version": "3.0.1", @@ -5116,7 +5144,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -5166,6 +5193,14 @@ "node": ">=0.10.0" } }, + "node_modules/sqlstring": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", + "integrity": "sha512-qC9iz2FlN7DQl3+wjwn3802RTyjCx7sDvfQEXchwa6CWOx07/WVfh91gBmQ9fahw8snwGEWU3xGzOt4tFyHLxg==", + "engines": { + "node": ">= 0.6" + } + }, "node_modules/stack-trace": { "version": "1.0.0-pre2", "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-1.0.0-pre2.tgz", @@ -5179,7 +5214,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true, "engines": { "node": ">= 0.8" } @@ -5378,7 +5412,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "dev": true, "engines": { "node": ">=0.6" } @@ -5459,7 +5492,6 @@ "version": "1.6.18", "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -5512,7 +5544,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true, "engines": { "node": ">= 0.8" } @@ -5572,7 +5603,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", - "dev": true, "engines": { "node": ">= 0.4.0" } @@ -5587,7 +5617,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", - "dev": true, "engines": { "node": ">= 0.8" } diff --git a/package.json b/package.json index effa109..57dd062 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "lint": "eslint --ext .js,.vue ./", "format": "prettier --write \"**/*.{js,vue,scss,html,md,json}\" --ignore-path .gitignore", "dev": "quasar dev -m ssr", - "api": "cd api && node index.js", + "api": "cd api && node --env-file .env index.js ", "build": "quasar build -m ssr", "build:api": "cd api && tsc", "start:build": "npm run build && cd dist/ssr && npm i && npm run start", @@ -22,6 +22,7 @@ "@vueuse/core": "^10.7.0", "axios": "^1.2.1", "express": "^4.18.2", + "mysql2": "^3.7.0", "pinia": "^2.0.11", "quasar": "^2.6.0", "vee-validate": "^4.12.2", diff --git a/quasar.config.js b/quasar.config.js index 5f185bc..65fdc62 100644 --- a/quasar.config.js +++ b/quasar.config.js @@ -28,7 +28,7 @@ module.exports = configure(function (/* ctx */) { // app boot file (/src/boot) // --> boot files are part of "main.js" // https://v2.quasar.dev/quasar-cli-vite/boot-files - boot: ["i18n", "axios"], + boot: ["i18n", "axios" /* , "stripe" */], // https://v2.quasar.dev/quasar-cli-vite/quasar-config-js#css css: ["app.scss"], diff --git a/src/boot/axios.js b/src/boot/axios.js index ecd3624..b1d4769 100644 --- a/src/boot/axios.js +++ b/src/boot/axios.js @@ -8,7 +8,7 @@ import { boot } from "quasar/wrappers"; // "export default () => {}" function below (which runs individually // for each client) const api = axios.create({ baseURL: "http://localhost:3000/jsonServer/" }); -const apiBack = axios.create({ baseURL: "http://localhost:5000/api/" }); +const apiBack = axios.create({ baseURL: "http://localhost:9999/api/" }); export default boot(({ app }) => { // for use inside Vue files (Options API) through this.$axios and this.$api diff --git a/src/boot/stripe.js b/src/boot/stripe.js new file mode 100644 index 0000000..4fd688b --- /dev/null +++ b/src/boot/stripe.js @@ -0,0 +1,17 @@ +import { StripePlugin } from "@vue-stripe/vue-stripe"; +import { boot } from "quasar/wrappers"; + +// "async" is optional; +// more info on params: https://v2.quasar.dev/quasar-cli/boot-files +export default boot(async ({ app, router, store }) => { + if (typeof window === "undefined") return; + + const options = { + pk: process.env.STRIPE_PUBLISHABLE_KEY, + stripeAccount: process.env.STRIPE_ACCOUNT, + apiVersion: process.env.API_VERSION, + locale: process.env.LOCALE, + }; + + app.use(StripePlugin, options); +}); diff --git a/src/components/@inputs/Calendar.vue b/src/components/@inputs/Calendar.vue index e88bbef..241affe 100644 --- a/src/components/@inputs/Calendar.vue +++ b/src/components/@inputs/Calendar.vue @@ -25,13 +25,15 @@ export default defineComponent({ const validationSchema = toTypedSchema( availabilitySchema.pick({ date: true }) ); - const { errors, defineField } = useForm({ + const { errors, defineField, values } = useForm({ validationSchema, }); const [calendar, calendarAttrs] = defineField("date"); + const onBlur = () => { availability.value.date = calendar.value; }; + availability.value.date = values.date; watch(errors, (newErrors) => { if (newErrors.date) { @@ -93,7 +95,7 @@ export default defineComponent({¿Cuándo?
-¿Dónde?
+ +¿Dónde?
+ +¿Dónde?
- -Precio
-Desde: - {{ rangePriceStore.rangeValue.min }}€ + {{ min }}€
Hasta: - {{ rangePriceStore.rangeValue.max }}€ + {{ max }}€