const List = require("../models/list.model"); exports.getList = async (req, res) => { const items = await List.getUnboughtItems(); res.json(items); }; exports.getItemByName = async (req, res) => { const { itemName } = req.query; const item = await List.getItemByName(itemName); res.json(item); } exports.addItem = async (req, res) => { const { itemName, quantity } = req.body; const userId = req.user.id; // Get processed image if uploaded const imageBuffer = req.processedImage?.buffer || null; const mimeType = req.processedImage?.mimeType || null; const id = await List.addOrUpdateItem(itemName, quantity, userId, imageBuffer, mimeType); await List.addHistoryRecord(id, quantity, userId); res.json({ message: "Item added/updated", addedBy: userId }); }; exports.markBought = async (req, res) => { const userId = req.user.id; await List.setBought(req.body.id, userId); res.json({ message: "Item marked bought" }); }; exports.getSuggestions = async (req, res) => { const { query } = req.query || ""; const suggestions = await List.getSuggestions(query); res.json(suggestions); }; exports.updateItemImage = async (req, res) => { const { id, itemName, quantity } = req.body; const userId = req.user.id; // Get processed image const imageBuffer = req.processedImage?.buffer || null; const mimeType = req.processedImage?.mimeType || null; if (!imageBuffer) { return res.status(400).json({ message: "No image provided" }); } // Update the item with new image await List.addOrUpdateItem(itemName, quantity, userId, imageBuffer, mimeType); res.json({ message: "Image updated successfully" }); };