import { Request, Response, NextFunction } from 'express';
import { logger } from '../shared/utils/logger';
import { respond } from '../shared/utils/apiResponse';

export function errorHandler(err: Error, req: Request, res: Response, _next: NextFunction): void {
  logger.error('Error no manejado', { message: err.message, stack: err.stack, path: req.path, method: req.method });
  const message = process.env.NODE_ENV === 'production' ? 'Error interno del servidor' : err.message;
  respond.error(res, 500, 'INTERNAL_SERVER_ERROR', message);
}

export function notFoundHandler(req: Request, res: Response): void {
  respond.error(res, 404, 'ROUTE_NOT_FOUND', `Ruta ${req.method} ${req.path} no existe`);
}
