const db = require("../config/database"); class CategoryRepository { getAll(householdId) { return db.prepare(` SELECT categories.*, COUNT(products.id) AS product_count FROM categories LEFT JOIN products ON products.category_id = categories.id AND products.household_id = categories.household_id WHERE categories.household_id = ? GROUP BY categories.id ORDER BY categories.name `).all(householdId); } findById(id, householdId) { return db.prepare(` SELECT * FROM categories WHERE id = ? AND household_id = ? `).get(id, householdId); } create(data) { return db.prepare(` INSERT INTO categories (name, icon, household_id) VALUES (?, ?, ?) `).run(data.name, data.icon || null, data.household_id); } update(id, householdId, data) { return db.prepare(` UPDATE categories SET name = ?, icon = ? WHERE id = ? AND household_id = ? `).run(data.name, data.icon || null, id, householdId); } hasProducts(id, householdId) { return db.prepare(` SELECT 1 FROM products WHERE category_id = ? AND household_id = ? LIMIT 1 `).get(id, householdId) !== undefined; } delete(id, householdId) { return db.prepare(` DELETE FROM categories WHERE id = ? AND household_id = ? `).run(id, householdId); } } module.exports = new CategoryRepository();