import { getBlockedMailsByDay } from "../../../db/mail"; /** * GET /api/mail/stats/blocked-by-day?days=30[&connectionId=] * * 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 }; });