const db = require('../config/database'); const bcrypt = require('bcryptjs'); class User { static async findById(id) { const users = await db.query('SELECT * FROM users WHERE id = ?', [id]); return users[0]; } static async findByIdAndRole(id, role) { const users = await db.query('SELECT * FROM users WHERE id = ? AND role = ?', [id, role]); return users[0]; } static async create(userData) { const { id, name, password, role, className } = userData; const salt = await bcrypt.genSalt(10); const hashedPassword = await bcrypt.hash(password, salt); await db.query( 'INSERT INTO users (id, name, password, role, class) VALUES (?, ?, ?, ?, ?)', [id, name, hashedPassword, role, className || null] ); return { id, name, role, class: className }; } static async verifyPassword(plainPassword, hashedPassword) { return await bcrypt.compare(plainPassword, hashedPassword); } } module.exports = User;