import { NextResponse } from 'next/server' import { db } from '@/lib/db' export const dynamic = 'force-dynamic' // GET /api/aos/finance — invoices with lines + company export async function GET() { try { const invoices = await db.invoice.findMany({ orderBy: { issueDate: 'desc' }, include: { company: true, lines: true }, }) const total = invoices.filter((i) => i.status !== 'cancelled' && i.status !== 'storno').length const draft = invoices.filter((i) => i.status === 'draft').length const sent = invoices.filter((i) => i.status === 'sent').length const paid = invoices.filter((i) => i.status === 'paid').length const overdue = invoices.filter((i) => i.status === 'overdue').length const zugferdCount = invoices.filter((i) => i.zugferd).length const xrechnungCount = invoices.filter((i) => i.xrechnung).length const datevCount = invoices.filter((i) => i.datevExported).length const outstandingCents = invoices .filter((i) => i.status === 'sent' || i.status === 'overdue') .reduce((s, i) => s + i.grossCents, 0) return NextResponse.json({ invoices, stats: { total, draft, sent, paid, overdue, zugferdCount, xrechnungCount, datevCount, outstandingCents }, }) } catch (err) { const msg = err instanceof Error ? err.message : 'internal server error' return NextResponse.json({ error: msg }, { status: 500 }) } }