Files
PantryHub/services/HouseholdService.js
2026-08-09 19:55:00 +02:00

76 lines
1.3 KiB
JavaScript

const db = require("../config/database");
class HouseholdService {
findByInviteCode(code) {
const match = /^HOUSEHOLD_(\d+)$/.exec((code || "").trim().toUpperCase());
if (!match) return null;
return db.prepare(
"SELECT id FROM households WHERE id = ?"
).get(Number.parseInt(match[1], 10));
}
addMember(householdId, userId) {
return db.prepare(`
INSERT INTO household_members (household_id, user_id, role)
VALUES (?, ?, 'MEMBER')
`).run(householdId, userId);
}
createForUser(userId, name) {
const create =
db.transaction(() => {
const household =
db.prepare(`
INSERT INTO households
(name)
VALUES (?)
`).run(name);
db.prepare(`
INSERT INTO household_members
(
household_id,
user_id,
role
)
VALUES (?, ?, ?)
`).run(
household.lastInsertRowid,
userId,
"OWNER"
);
return household.lastInsertRowid;
});
return create();
}
}
module.exports = new HouseholdService();