import { Router } from 'express'
import { requireAuth, requireRole } from '../auth/authMiddleware.js'
import { getMenuConfig, updateMenuConfig } from '../settings/settingsService.js'

const router = Router()

// GET /api/menus — 메뉴 설정 조회 (인증된 모든 사용자)
router.get('/', requireAuth, async (_req, res) => {
  try {
    const config = await getMenuConfig()
    res.json(config)
  } catch (err) {
    console.error('[menus] 조회 오류:', err)
    res.status(500).json({ error: '메뉴 설정 조회 중 오류가 발생했습니다.' })
  }
})

// PUT /api/menus — 메뉴 설정 수정 (ADMIN 전용)
router.put('/', requireAuth, requireRole('ADMIN'), async (req, res) => {
  try {
    const { menus } = req.body
    if (!Array.isArray(menus)) {
      res.status(400).json({ error: '메뉴 설정 형식이 올바르지 않습니다.' })
      return
    }
    const updated = await updateMenuConfig(menus)
    res.json(updated)
  } catch (err) {
    const message = err instanceof Error ? err.message : '메뉴 설정 수정 중 오류가 발생했습니다.'
    console.error('[menus] 수정 오류:', err)
    res.status(400).json({ error: message })
  }
})

export default router
