import { Request, Response } from "express";
import Occasion from "../../models/occasion";

const getOccasions = async (req: Request, res: Response) => {
  const { page = 1, perPage = 50 } = req.query;

  try {
    const [occasions, totalItemCount] = await Promise.all([
      Occasion.find({ isActive: true })
        .sort({ sortOrder: 1, createdAt: 1 })
        .skip((Number(page) - 1) * Number(perPage))
        .limit(Number(perPage)),
      Occasion.countDocuments({ isActive: true }),
    ]);

    res.status(200).json({ occasions, totalItemCount });
  } catch (err) {
    res.status(500).json({ message: err });
  }
};

export { getOccasions };
