import { Request, Response } from "express";
import review from "../../models/review";

// Queue of vendor-reported reviews awaiting an admin decision.
const getReportedReviews = async (req: Request, res: Response) => {
  const { page = 1, perPage = 10 } = req.query;

  try {
    const filter = { reportStatus: "pending" };
    const [reviews, totalItemCount] = await Promise.all([
      review
        .find(filter)
        .populate("vendor", "name")
        .sort({ reportedAt: -1 })
        .skip((Number(page) - 1) * Number(perPage))
        .limit(Number(perPage)),
      review.countDocuments(filter),
    ]);

    return res.status(200).json({ reviews, totalItemCount });
  } catch (err) {
    return res.status(500).json({ message: err });
  }
};

export { getReportedReviews };
