// routes/auth.js 
const express = require('express');
const router = express.Router();
const bcrypt = require('bcrypt');
const db = require('../db');

router.get('/login', (req, res) => {
  res.render('auth/login', { error: null });
});

router.post('/login', async (req, res) => {
  const { username, password } = req.body;
  try {
    // เปลี่ยนจาก `user` เป็น `users`
    const [users] = await db.query('SELECT * FROM users WHERE username = ?', [username]);
    if (users.length === 0) {
      return res.render('auth/login', { error: 'ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง' });
    }
    
    const user = users[0];
    const validPassword = await bcrypt.compare(password, user.password);
    if (!validPassword) {
      return res.render('auth/login', { error: 'ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง' });
    }

    req.session.user = user;
    res.redirect('/index');
  } catch (error) {
    console.error('ข้อผิดพลาดในการล็อกอิน:', error);
    res.render('auth/login', { error: 'เกิดข้อผิดพลาดในการล็อกอิน' });
  }
});

router.get('/register', (req, res) => {
  res.render('auth/register', { error: null });
});

router.post('/register', async (req, res) => {
  const { username, email, password, phone, f_name, l_name, } = req.body;
  try {
    const hashedPassword = await bcrypt.hash(password, 10);
    await db.query(
      `INSERT INTO users 
        (username, email, password, phone, f_name, l_name, role)
        VALUES (?, ?, ?, ?, ?, ?,'member')`,
      [username, email, hashedPassword, phone, f_name, l_name]
    );
    res.redirect('/auth/login');
  } catch (error) {
    console.error('ข้อผิดพลาดในการสมัครสมาชิก:', error);
    res.render('auth/register', { error: 'เกิดข้อผิดพลาดในการสมัครสมาชิก' });
  }
});

router.get('/logout', (req, res) => {
  req.session.destroy((err) => {
    if (err) console.error('ข้อผิดพลาดในการออกจากระบบ:', err);
    res.redirect('/');
  });
});

module.exports = router;