import prisma from "~/server/utils/prisma";

export default defineEventHandler(async (event) => {
  try {
    // Since there's no explicit batch table in the schema, we'll simulate this by
    // counting notifications with batch-related properties

    // Get current date and set to start of day
    const today = new Date();
    today.setHours(0, 0, 0, 0);

    // Define what constitutes a "batch" notification (likely based on delivery_type or audience_type)
    const batchWhere = {
      delivery_type: "batch",
    };

    // Get batch stats
    const [pending, processing, completed, failed] = await Promise.all([
      // Pending batches (draft or scheduled)
      prisma.notifications.count({
        where: {
          ...batchWhere,
          status: {
            in: ["draft", "scheduled"],
          },
        },
      }),
      // Processing batches
      prisma.notifications.count({
        where: {
          ...batchWhere,
          status: "processing",
        },
      }),
      // Completed batches
      prisma.notifications.count({
        where: {
          ...batchWhere,
          status: "completed",
        },
      }),
      // Failed batches
      prisma.notifications.count({
        where: {
          ...batchWhere,
          status: "failed",
        },
      }),
    ]);

    return {
      success: true,
      data: {
        pending,
        processing,
        completed,
        failed,
      },
    };
  } catch (error) {
    console.error("Error fetching batch stats:", error);
    throw createError({
      statusCode: 500,
      statusMessage: "Failed to fetch batch statistics",
      data: {
        error: error.message,
      },
    });
  } finally {
  }
}); 