/**
 * API: Notification Statistics Endpoint
 * GET /api/notifications/stats - Get notification statistics
 */

import type { NextApiRequest, NextApiResponse } from 'next';
import { getNotificationService, getNotificationScheduler } from '../../../lib/notifications';

export default async function handler(
  req: NextApiRequest,
  res: NextApiResponse
) {
  if (req.method !== 'GET') {
    return res.status(405).json({ error: 'Method not allowed' });
  }

  try {
    const notificationService = getNotificationService();
    const scheduler = getNotificationScheduler();

    // In production, get userId from session/auth
    const userId = req.query.userId as string || 'demo-user';

    const serviceStats = notificationService.getStats();
    const schedulerStats = scheduler.getStats();

    const userNotifications = notificationService.getUserNotifications(userId);
    const unreadCount = notificationService.getUnreadCount(userId);
    const scheduledForUser = scheduler.getScheduledForUser(userId);

    return res.status(200).json({
      success: true,
      data: {
        user: {
          total: userNotifications.length,
          unread: unreadCount,
          scheduled: scheduledForUser.length
        },
        global: serviceStats,
        scheduler: schedulerStats
      }
    });
  } catch (error: any) {
    return res.status(500).json({
      success: false,
      error: error.message
    });
  }
}
