import { NextRequest, NextResponse } from "next/server" import { WebhookClient, ContactFormWebhookData } from "@/lib/webhook-client" interface ContactFormData extends ContactFormWebhookData {} export async function POST(request: NextRequest) { try { const body = await request.json() const formData: ContactFormData = body // Validate required fields const requiredFields = ['firstName', 'lastName', 'email', 'phone', 'message'] const missingFields = requiredFields.filter(field => !formData[field]) if (missingFields.length > 0) { return NextResponse.json( { error: `Missing required fields: ${missingFields.join(', ')}` }, { status: 400 } ) } // Basic email validation const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/ if (!emailRegex.test(formData.email)) { return NextResponse.json( { error: 'Invalid email address' }, { status: 400 } ) } // Basic phone validation (remove all non-digit characters) const phoneDigits = formData.phone.replace(/\D/g, '') if (phoneDigits.length < 10) { return NextResponse.json( { error: 'Invalid phone number' }, { status: 400 } ) } // Submit to webhook const webhookResult = await WebhookClient.submitContactForm(formData) if (!webhookResult.success) { console.error('Contact webhook submission failed:', webhookResult.error) return NextResponse.json( { error: webhookResult.message }, { status: 500 } ) } console.log('Successfully submitted contact form to GHL:', formData) // Return success response return NextResponse.json({ success: true, message: webhookResult.message }) } catch (error) { console.error('Contact form submission error:', error) return NextResponse.json( { error: 'Internal server error' }, { status: 500 } ) } }