const bcrypt = require("bcryptjs"); const User = require("../models/userModel"); exports.updateProfile = async (req, res) => { try { const { id } = req.params; const { firstName, lastName, email, mobile, street, aptBlock, city, state, country, zipCode, countryCode, dob, password, termsAccepted } = req.body; const user = await User.findByPk(id); if (!user) return res.status(404).json({ message: "User not found" }); let hashedPassword = user.password; if (password) { hashedPassword = await bcrypt.hash(password, 10); } // Update profile image const profileImage = req.files?.profileImage ? req.files.profileImage[0].path : user.profileImage; const kycIdentity = req.files?.kycIdentity ? req.files.kycIdentity[0].path : user.kycIdentity; const kycAddress = req.files?.kycAddress ? req.files.kycAddress[0].path : user.kycAddress; await user.update({ firstName: firstName ?? user.firstName, lastName: lastName ?? user.lastName, email: email ?? user.email, mobile: mobile ?? user.mobile, street: street ?? user.street, aptBlock: aptBlock ?? user.aptBlock, city: city ?? user.city, state: state ?? user.state, country: country ?? user.country, zipCode: zipCode ?? user.zipCode, countryCode: countryCode ?? user.countryCode, dob: dob ? new Date(dob) : user.dob, password: hashedPassword, profileImage, kycIdentity, kycAddress, termsAccepted: termsAccepted ?? user.termsAccepted }); res.status(200).json({ message: "Profile updated successfully", user }); } catch (error) { console.error(error); res.status(500).json({ message: "Server error", error: error.message }); } };