const { db } = require('../db/db'); function getHouseholdsForUser(userId) { return db .prepare( `SELECT h.* FROM households h JOIN household_members hm ON hm.household_id = h.id WHERE hm.user_id = ? ORDER BY h.created_at` ) .all(userId); } function getHouseholdById(householdId) { return db.prepare('SELECT * FROM households WHERE id = ?').get(householdId); } function isMember(householdId, userId) { return !!db .prepare('SELECT 1 FROM household_members WHERE household_id = ? AND user_id = ?') .get(householdId, userId); } function getMembers(householdId) { return db .prepare( `SELECT u.id, u.name, u.email, u.avatar_emoji FROM users u JOIN household_members hm ON hm.user_id = u.id WHERE hm.household_id = ? ORDER BY hm.joined_at` ) .all(householdId); } function requireHousehold(req, res, next) { const householdId = req.headers['x-household-id']; if (!householdId) { return res.status(400).json({ error: 'household_not_selected' }); } if (!isMember(householdId, req.userId)) { return res.status(403).json({ error: 'not_a_household_member' }); } const household = getHouseholdById(householdId); if (!household) { return res.status(404).json({ error: 'household_not_found' }); } req.household = household; next(); } module.exports = { getHouseholdsForUser, getHouseholdById, isMember, getMembers, requireHousehold };