require("dotenv").config();
const express = require("express");
const mysql = require("mysql2");
const bodyParser = require("body-parser");

const app = express();
const PORT = process.env.PORT || 3000;

app.use(express.json());
app.use(express.urlencoded({ extended: true }));

// Database configuration
const pool = mysql.createPool({
  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 ,
  waitForConnections: true,
  connectionLimit: 10,
  queueLimit: 0
});

// Check database connection
async function testConnection() {
  try {
    const connection = await pool.getConnection();
    await connection.ping();
    console.log('Database connection succeeded.');
    connection.release();
  } catch (err) {
    console.error('Database connection failed:', err);
    process.exit(1); // Terminate the app if the database connection fails
  }
}


// ตั้งค่า Middleware
app.set("view engine", "ejs");
app.use(bodyParser.urlencoded({ extended: true }));
app.use(express.static("public"));

// ดึงรายการทัวร์
app.get("/", (req, res) => {
  // pool.query("SELECT * FROM tours", (err, results) => {
  //   if (err) throw err;
    res.render("index");
  });
// });

// เพิ่มทัวร์ใหม่
app.post("/add", (req, res) => {
  const { name, location, price, description } = req.body;
  const sql = "INSERT INTO tours (name, location, price, description) VALUES (?, ?, ?, ?)";
  pool.query(sql, [name, location, price, description], (err) => {
    if (err) throw err;
    res.redirect("/");
  });
});

// เริ่มเซิร์ฟเวอร์
app.listen(PORT, () => {
  console.log(`Server running on http://localhost:${PORT}`);
});