const express = require('express');
const mysql = require('mysql2');
const session = require('express-session');
const app = express();
const port = 3000;

// การตั้งค่าการเชื่อมต่อฐานข้อมูล MySQL (ใช้ pool)
const db = mysql.createConnection({
  host: process.env.DB_HOST,
  port: process.env.DB_PORT,
  user: process.env.DB_USER,
  password: process.env.DB_PASSWORD,
  database: process.env.DB_NAME, // replace with your database name
  waitForConnections: true,
  connectionLimit: 10,
  queueLimit: 0
});

// Test the database connection to ensure everything is set up correctly
db.connect(err => {
  if (err) throw err;
  console.log("Connected to the database.");
});

module.exports = { db };


// การตั้งค่า Express session
app.use(session({
    secret: 'your_secret_key',
    resave: false,
    saveUninitialized: true
}));

// การตั้งค่าการใช้ EJS
app.set('view engine', 'ejs');

// การตั้งค่าการใช้ body-parser
app.use(express.urlencoded({ extended: true }));
app.use(express.json());

// ใช้ static files (CSS, JS)
app.use(express.static('public'));

app.get('/', (req, res) => {
    if (req.session.role === 'admin') {
      return res.redirect('/admin/dashboard');
    } else if (req.session.role === 'customer') {
      return res.redirect('/customer/appointment');
    } else {
      return res.render('login');
    }
  });

app.use('/auth', require('./routes/auth'));
app.use('/admin', require('./routes/admin'));
app.use('/customer', require('./routes/customer'));
  
// Starting the server
app.listen(port, () => {
    console.log(`Server is running on http://localhost:${port}`);
});