Favorieten toegevoegd aan de navigatiebalk en sidebar.
This commit is contained in:
@@ -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();
|
||||
Reference in New Issue
Block a user