// Auth Routes
const express = require('express');
const authController = require('../controllers/auth');
const { authenticate } = require('../middleware/auth');

const router = express.Router();

/**
 * @route POST /auth/register
 * @desc Registrar nuevo usuario
 * @access Public
 */
router.post('/register', authController.register);

/**
 * @route POST /auth/login
 * @desc Iniciar sesión
 * @access Public
 */
router.post('/login', authController.login);

/**
 * @route POST /auth/refresh
 * @desc Renovar tokens de acceso
 * @access Public
 */
router.post('/refresh', authController.refresh);

/**
 * @route POST /auth/logout
 * @desc Cerrar sesión
 * @access Public
 */
router.post('/logout', authController.logout);

/**
 * @route GET /auth/profile
 * @desc Obtener perfil del usuario autenticado
 * @access Private
 */
router.get('/profile', authenticate, authController.getProfile);

{{#if features.password-reset}}
/**
 * @route POST /auth/forgot-password
 * @desc Solicitar restablecimiento de contraseña
 * @access Public
 */
router.post('/forgot-password', authController.forgotPassword);

/**
 * @route POST /auth/reset-password
 * @desc Restablecer contraseña
 * @access Public
 */
router.post('/reset-password', authController.resetPassword);
{{/if}}

{{#if features.email-verification}}
/**
 * @route POST /auth/verify-email
 * @desc Verificar email del usuario
 * @access Public
 */
router.post('/verify-email', authController.verifyEmail);

/**
 * @route POST /auth/resend-verification
 * @desc Reenviar email de verificación
 * @access Public
 */
router.post('/resend-verification', authController.resendVerification);
{{/if}}

module.exports = router;