import prismadb from "@/lib/prisma";

export const getTotalRevenue = async (storeId: string) => {
  const paidOrders = await prismadb.order.findMany({
    where: {
      storeId,
      isPaid: true
    },
    include: {
      orderItems: {
        include: {
          product: true,
          carrier: true
        }
      }
    }
  });

  const totalRevenue = paidOrders.reduce((total, order) => {
    const orderTotal = order.orderItems.reduce((orderSum, item) => {
      let price =  (item.productPrice?.toNumber()) ? item.productPrice.toNumber()  * item.quantity : item.carrierPrice?.toNumber() ?? 0;
      return orderSum + price;
    }, 0);
    return total + orderTotal;
  }, 0);

  return totalRevenue;
};