const Tour = require('../models/tourModel');

exports.getTours = async (req, res) => {
  try {
    const tours = await Tour.getAllTours();
    res.render('index', { tours });
  } catch (error) {
    res.status(500).send('เกิดข้อผิดพลาด');
  }
};

exports.getTourDetails = async (req, res) => {
  try {
    const tour = await Tour.getTourById(req.params.id);
    if (!tour) return res.status(404).send('ไม่พบข้อมูล');
    res.render('tour-details', { tour });
  } catch (error) {
    res.status(500).send('เกิดข้อผิดพลาด');
  }
};

const User = require('../models/tourModel');

exports.getLogin = (req, res) => {
    res.render('login', { message: null });
};

exports.getRegister = (req, res) => {
    res.render('register', { message: null });
};

exports.postLogin = (req, res) => {
    const { email, password } = req.body;
    User.comparePassword(email, password, (err, isMatch) => {
        if (err || !isMatch) {
            return res.render('login', { message: 'Invalid email or password' });
        }
        req.session.userId = email; // สามารถเก็บ ID หรืออีเมลของผู้ใช้ได้
        res.redirect('/');
    });
};

exports.postRegister = (req, res) => {
    const { name, email, password, confirmPassword } = req.body;
    if (password !== confirmPassword) {
        return res.render('register', { message: 'Passwords do not match' });
    }
    User.findOne(email, (err, user) => {
        if (user) {
            return res.render('register', { message: 'Email already in use' });
        }
        User.create(name, email, password, (err, userId) => {
            if (err) return res.render('register', { message: 'Error creating user' });
            req.session.userId = userId;
            res.redirect('/');
        });
    });
};