import { Request, Response, NextFunction } from "express";

/** Solo usuario admin (rol ia_admin) — distinto del operador George. */
export const requireAdmin = (req: Request, res: Response, next: NextFunction): void => {
  const session = req.session as { userId?: number; username?: string; role?: string };
  if (!session.userId) {
    res.redirect("/login");
    return;
  }
  if (session.role === "ia_admin" || session.username === "admin") {
    next();
    return;
  }
  if (req.xhr || req.headers.accept?.includes("application/json")) {
    res.status(403).json({ success: false, error: "Requiere rol administrador IA" });
    return;
  }
  res.status(403).render("error", {
    message: "Acceso restringido al portal IA avanzado (usuario admin).",
    user: session.username || "",
  });
};
