import { NextResponse } from 'next/server'; import { query } from '@/lib/db'; import { getSession } from '@/lib/session'; export interface FahrkostenRow { ID: number; Kuerzel: string; Name: string; Anzahl: number; } const EXCLUDED = "'PrF','Beob','BEOS','TD','ToT'"; export async function GET(req: Request) { const session = await getSession(); if (!session) return NextResponse.json({ error: 'Nicht angemeldet' }, { status: 401 }); const { searchParams } = new URL(req.url); const ab = searchParams.get('ab'); if (!ab || !/^\d{4}-\d{2}-\d{2}$/.test(ab)) { return NextResponse.json({ error: 'Parameter ab (YYYY-MM-DD) fehlt' }, { status: 400 }); } try { const rows = await query( 'SELECT b.id AS ID, b.`kürzel` AS Kuerzel,' + ' CONCAT(IFNULL(b.vorname, \'\'), IF(b.vorname IS NOT NULL, \' \', \'\'), b.name) AS Name,' + ' COUNT(DISTINCT l.ID) AS Anzahl' + ' FROM beos b' + ' JOIN logbuch_beos lb ON lb.BeoID = b.id' + ' JOIN logbuch l ON l.ID = lb.LogbuchID' + ' WHERE l.Beginn >= ? AND l.ArtFuehrung NOT IN (' + EXCLUDED + ')' + ' GROUP BY b.id, b.`kürzel`, b.name, b.vorname' + ' ORDER BY b.name ASC', [ab + ' 00:00:00'] ) as FahrkostenRow[]; return NextResponse.json(rows); } catch (error) { console.error('GET /api/fahrkosten:', error); return NextResponse.json({ error: 'Datenbankfehler' }, { status: 500 }); } }