const User = require('../models/User'); const ErrorResponse = require('../utils/errorResponse'); const asyncHandler = require('../utils/asyncHandler'); // @desc Update user preferences (Mainframe Sync Fix) // @route PUT /api/users/preferences // @access Private exports.updatePreferences = asyncHandler(async (req, res, next) => { const { theme, preferredModel, temperature, techStack, cotMode, reasoningBudget, selfCritique, multiAgentMode, confidenceLevel, hallucinationGuard, debugMode } = req.body; const user = req.user; // Ensure preferences object exists if (!user.preferences) user.preferences = {}; // Standard Sync if (theme) user.preferences.theme = theme; if (preferredModel) user.preferences.preferredModel = preferredModel; if (temperature !== undefined) user.preferences.temperature = temperature; if (techStack) user.preferences.techStack = techStack; // Advanced Cognitive Sync if (cotMode) user.preferences.cotMode = cotMode; if (reasoningBudget !== undefined) user.preferences.reasoningBudget = reasoningBudget; if (selfCritique !== undefined) user.preferences.selfCritique = selfCritique; if (multiAgentMode) user.preferences.multiAgentMode = multiAgentMode; if (confidenceLevel) user.preferences.confidenceLevel = confidenceLevel; if (hallucinationGuard) user.preferences.hallucinationGuard = hallucinationGuard; if (debugMode !== undefined) user.preferences.debugMode = debugMode; // Save to Cloud (MongoDB Atlas) await user.save(); res.status(200).json({ success: true, data: user.preferences }); }); // @desc Get user profile // @route GET /api/users/profile // @access Private exports.getProfile = asyncHandler(async (req, res, next) => { const user = req.user; const profile = { name: user.name, role: user.role, isOwner: user.role === 'owner' || user.email === 'johanvoncd7@gmail.com', preferences: user.preferences, usage: { requestsToday: user.usage.requestsToday, limit: 75 } }; res.status(200).json({ success: true, data: profile }); });