Favorieten toegevoegd aan de navigatiebalk en sidebar.

This commit is contained in:
2026-08-29 19:53:28 +02:00
parent 2912f7c455
commit ce07575d5e
19 changed files with 355 additions and 29 deletions
+55
View File
@@ -0,0 +1,55 @@
const db = require("../config/database");
class FavoriteRepository {
getByHousehold(householdId) {
return db.prepare(`
SELECT products.id,
products.name,
products.category_id,
products.barcode,
categories.name AS category_name,
categories.icon AS category_icon
FROM product_favorites
JOIN products ON products.id = product_favorites.product_id
LEFT JOIN categories ON categories.id = products.category_id
WHERE product_favorites.household_id = ?
AND products.household_id = ?
ORDER BY products.name ASC
`).all(householdId, householdId);
}
getIdsByHousehold(householdId) {
return new Set(
db.prepare(`
SELECT product_favorites.product_id
FROM product_favorites
JOIN products ON products.id = product_favorites.product_id
WHERE product_favorites.household_id = ?
AND products.household_id = ?
`).all(householdId, householdId).map(row => row.product_id)
);
}
find(householdId, productId) {
return db.prepare(`
SELECT * FROM product_favorites
WHERE household_id = ? AND product_id = ?
`).get(householdId, productId);
}
add(householdId, productId) {
return db.prepare(`
INSERT OR IGNORE INTO product_favorites (household_id, product_id)
VALUES (?, ?)
`).run(householdId, productId);
}
remove(householdId, productId) {
return db.prepare(`
DELETE FROM product_favorites
WHERE household_id = ? AND product_id = ?
`).run(householdId, productId);
}
}
module.exports = new FavoriteRepository();