const db = require('../config/database'); const bcrypt = require('bcryptjs'); class Tour { static async getAllTours() { const [rows] = await db.query('SELECT * FROM tours'); return rows; } static async getTourById(id) { const [rows] = await db.query('SELECT * FROM tours WHERE id = ?', [id]); return rows[0]; } } class User { static async findOne(email) { try { const [rows] = await db.query('SELECT * FROM users WHERE email = ?', [email]); return rows.length > 0 ? rows[0] : null; } catch (err) { throw err; } } static async create(name, email, password) { try { const hashedPassword = await bcrypt.hash(password, 10); const [result] = await db.query( 'INSERT INTO users (name, email, password) VALUES (?, ?, ?)', [name, email, hashedPassword] ); return result.insertId; } catch (err) { throw err; } } static async comparePassword(email, password) { try { const user = await User.findOne(email); if (!user) return false; return await bcrypt.compare(password, user.password); } catch (err) { throw err; } } } module.exports = User; module.exports = Tour;