import { NextResponse } from 'next/server'; import { getDbPool } from '@/lib/db'; import { RowDataPacket, ResultSetHeader } from 'mysql2'; // GET /api/ausgaben - Fetch entries export async function GET(request: Request) { try { const { searchParams } = new URL(request.url); const limit = searchParams.get('limit') || '10'; const startDate = searchParams.get('startDate'); const month = searchParams.get('month'); const year = searchParams.get('year'); const pool = getDbPool(); let query = 'SELECT * FROM Ausgaben'; const params: any[] = []; if (month && year) { query += ' WHERE YEAR(Datum) = ? AND MONTH(Datum) = ?'; params.push(year, month); } else if (startDate) { query += ' WHERE Datum >= ?'; params.push(startDate); } query += ' ORDER BY Datum DESC, ID DESC LIMIT ?'; params.push(parseInt(limit)); const [rows] = await pool.query(query, params); return NextResponse.json({ success: true, data: rows, }); } catch (error) { console.error('Database error:', error); return NextResponse.json( { success: false, error: 'Database error' }, { status: 500 } ); } } // POST /api/ausgaben - Create new entry export async function POST(request: Request) { try { const body = await request.json(); const { Datum, WochTag, Wo, Was, Wieviel, Wie, OK } = body; if (!Datum || !Wo || !Was || !Wieviel || !Wie) { return NextResponse.json( { success: false, error: 'Missing required fields' }, { status: 400 } ); } const pool = getDbPool(); const query = ` INSERT INTO Ausgaben (Datum, WochTag, Wo, Was, Wieviel, Wie, OK) VALUES (?, ?, ?, ?, ?, ?, ?) `; const [result] = await pool.query(query, [ Datum, WochTag, Wo, Was, parseFloat(Wieviel), Wie, OK || 0, ]); return NextResponse.json({ success: true, id: result.insertId, }); } catch (error) { console.error('Database error:', error); return NextResponse.json( { success: false, error: 'Database error' }, { status: 500 } ); } }