import { getBlockedMailsByDay } from "../../../db/mail";

/**
 * GET /api/mail/stats/blocked-by-day?days=30[&connectionId=<uuid>]
 *
 * Blockierte Mails pro Tag (UTC) — Bar-Chart-Datenquelle.
 *
 * Query params:
 *   days?         number — Anzahl Tage zurück (default 30, max 90)
 *   connectionId? uuid   — Wenn angegeben: nur diese Connection. Gehört die UUID
 *                          einem fremden User, kommen 0-Rows zurück (implizit 404).
 *
 * Response: { date: 'YYYY-MM-DD', count: number }[]
 *   — Alle N Tage sind enthalten, auch wenn count=0 (Frontend zeichnet flatline statt Lücken).
 *   — Timestamps sind UTC.
 */
export default defineEventHandler(async (event) => {
  const user = await requireUser(event);

  const query = getQuery(event);
  const rawDays = parseInt((query.days as string) || "30");
  const days = Math.min(Math.max(1, isNaN(rawDays) ? 30 : rawDays), 90);

  const connectionId = (query.connectionId as string | undefined) || undefined;

  const data = await getBlockedMailsByDay(user.id, days, connectionId);

  return { success: true, data };
});
