import express from 'express'
import cors from 'cors'
import dotenv from 'dotenv'
import router from './routes/route.js'
import { globalResponseHandler } from './middlewares/responseHandler.js'

dotenv.config()

const app = express()
app.use(cors())
app.use(express.json({ limit: '10mb' }))

app.use(globalResponseHandler);

app.use((err, req, res, next) => {
  if (err instanceof SyntaxError && err.status === 400 && 'body' in err) {
    console.error('🟥 Invalid JSON Received:', err.message)
    return res.status(400).json({
      code: "400",
      message: "Invalid JSON format",
      message_th: "โครงสร้าง JSON ไม่ถูกต้อง",
      data: []
    })
  }
  next()
})

app.use('/api/template', router)

app.listen(process.env.PORT, () => {
  console.log(`✅ ${process.env.PJ_NAME} running on port ${process.env.PORT}`)
})
