Multi tenant DB, registratie per huishouden V1.2

This commit is contained in:
2026-08-09 19:50:53 +02:00
parent 1f9fd73026
commit c37b8956d4
15 changed files with 148 additions and 96 deletions
+20 -17
View File
@@ -4,7 +4,7 @@ const db = require("../config/database");
class CategoryRepository {
getAll() {
getAll(householdId) {
return db.prepare(`
@@ -13,23 +13,26 @@ class CategoryRepository {
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();
`).all(householdId);
}
findById(id) {
findById(id, householdId) {
return db.prepare(`
SELECT * FROM categories WHERE id = ?
SELECT * FROM categories WHERE id = ? AND household_id = ?
`).get(id);
`).get(id, householdId);
}
@@ -38,16 +41,16 @@ class CategoryRepository {
return db.prepare(`
INSERT INTO categories (name, icon)
INSERT INTO categories (name, icon, household_id)
VALUES (?, ?)
VALUES (?, ?, ?)
`).run(data.name, data.icon || null);
`).run(data.name, data.icon || null, data.household_id);
}
update(id, data) {
update(id, householdId, data) {
return db.prepare(`
@@ -55,31 +58,31 @@ class CategoryRepository {
SET name = ?, icon = ?
WHERE id = ?
WHERE id = ? AND household_id = ?
`).run(data.name, data.icon || null, id);
`).run(data.name, data.icon || null, id, householdId);
}
hasProducts(id) {
hasProducts(id, householdId) {
return db.prepare(`
SELECT 1 FROM products WHERE category_id = ? LIMIT 1
SELECT 1 FROM products WHERE category_id = ? AND household_id = ? LIMIT 1
`).get(id) !== undefined;
`).get(id, householdId) !== undefined;
}
delete(id) {
delete(id, householdId) {
return db.prepare(`
DELETE FROM categories WHERE id = ?
DELETE FROM categories WHERE id = ? AND household_id = ?
`).run(id);
`).run(id, householdId);
}