// src/routes/user.routes.js
// 사용자 라우트

const express = require('express');
const { body } = require('express-validator');
const userController = require('../controllers/user.controller');
const { authenticateJWT } = require('../middlewares/auth.middleware');
const { validateRequest } = require('../middlewares/validation.middleware');

const router = express.Router();

// 모든 라우트에 JWT 인증 적용
router.use(authenticateJWT);

/**
 * GET /api/v1/users/me
 * 내 정보 조회
 */
router.get('/me', userController.getMe);

/**
 * PATCH /api/v1/users/me
 * 내 정보 수정
 */
router.patch(
  '/me',
  [
    body('name')
      .optional()
      .trim()
      .isLength({ min: 2, max: 100 })
      .withMessage('이름은 2-100자 사이여야 합니다'),
    body('password')
      .optional()
      .isLength({ min: 8 })
      .withMessage('비밀번호는 최소 8자 이상이어야 합니다')
      .matches(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)/)
      .withMessage('비밀번호는 대문자, 소문자, 숫자를 포함해야 합니다'),
    validateRequest,
  ],
  userController.updateMe
);

/**
 * DELETE /api/v1/users/me
 * 계정 삭제
 */
router.delete('/me', userController.deleteMe);

module.exports = router;
