const User = require('../models/User'); const argon2 = require('argon2'); async function usernameTaken(username) { return await User.exists({ username }); } async function getUserByUsername(username) { return await User.findOne({ username }); } async function checkPassword(username, password) { const user = await User.findOne({ username }); if (!user) return false; return await argon2.verify(user.passwordHash, password); } async function createUser(username, password) { if (await usernameTaken(username)) return null; const hash = await argon2.hash(password); const newUser = new User({ username, passwordHash: hash }); return await newUser.save(); } async function updatePassword(userId, newPassword) { const hash = await argon2.hash(newPassword); return await User.findByIdAndUpdate(userId, { passwordHash: hash }); } module.exports = { usernameTaken, getUserByUsername, checkPassword, createUser, updatePassword };