import { NextRequest, NextResponse } from 'next/server' import { prisma } from '@/lib/prisma' import { bikeSchema } from '@/lib/validations' export async function GET() { try { const bikes = await prisma.bike.findMany({ include: { wearParts: { include: { maintenanceHistory: { orderBy: { date: 'desc', }, take: 1, }, }, }, }, orderBy: { createdAt: 'desc', }, }) return NextResponse.json(bikes) } catch (error) { console.error('Error fetching bikes:', error) return NextResponse.json( { error: 'Fehler beim Laden der Fahrräder' }, { status: 500 } ) } } export async function POST(request: NextRequest) { try { const body = await request.json() const validatedData = bikeSchema.parse(body) const bike = await prisma.bike.create({ data: { name: validatedData.name, brand: validatedData.brand, model: validatedData.model, purchaseDate: validatedData.purchaseDate ? new Date(validatedData.purchaseDate) : null, notes: validatedData.notes, }, }) return NextResponse.json(bike, { status: 201 }) } catch (error) { console.error('Error creating bike:', error) if (error instanceof Error && error.name === 'ZodError') { return NextResponse.json( { error: 'Ungültige Daten', details: error }, { status: 400 } ) } return NextResponse.json( { error: 'Fehler beim Erstellen des Fahrrads' }, { status: 500 } ) } }