import { NextResponse } from 'next/server'; import { getLogger } from '@kit/shared/logger'; import { getSupabaseServerAdminClient } from '@kit/supabase/server-admin-client'; export async function POST(request: Request) { const logger = await getLogger(); try { const body = await request.json(); const { courseId, firstName, lastName, email, phone } = body; if (!courseId || !firstName || !lastName || !email) { return NextResponse.json( { error: 'Kurs-ID, Vorname, Nachname und E-Mail sind erforderlich' }, { status: 400 }, ); } if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(email)) { return NextResponse.json( { error: 'Ungültige E-Mail-Adresse' }, { status: 400 }, ); } const supabase = getSupabaseServerAdminClient(); const { error } = await supabase.from('course_participants').insert({ course_id: courseId, first_name: firstName, last_name: lastName, email, phone: phone || null, status: 'enrolled', enrolled_at: new Date().toISOString(), }); if (error) { logger.error( { error, context: 'course-register-insert' }, '[course-register] Insert error', ); return NextResponse.json( { error: 'Anmeldung fehlgeschlagen' }, { status: 500 }, ); } return NextResponse.json({ success: true, message: 'Anmeldung erfolgreich', }); } catch (err) { logger.error( { error: err, context: 'course-register' }, '[course-register] Error', ); return NextResponse.json({ error: 'Serverfehler' }, { status: 500 }); } }