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();