import type { NextFunction, Request, Response } from "express";

export function errorHandler(err: any, req: Request, res: Response, _next: NextFunction) {
  if (err?.code === "LIMIT_FILE_SIZE") {
    return res.status(413).json({ success: false, message: "حجم الملف يتجاوز الحد المسموح (10 ميجابايت)" });
  }
  const isJwtError = err?.name === "TokenExpiredError" || err?.name === "JsonWebTokenError";
  const status = err?.statusCode || (isJwtError ? 401 : err?.name === "PrismaClientKnownRequestError" ? 400 : 500);
  const message = err?.message || "خطأ داخلي في الخادم";
  if (status >= 500) console.error("ERROR:", err);
  res.status(status).json({ success: false, message });
}
