false, 'error' => 'Method not allowed']); exit; } $name = trim($_POST['name'] ?? ''); $email = trim($_POST['email'] ?? ''); $service = trim($_POST['service'] ?? 'General Inquiry'); $message = trim($_POST['message'] ?? ''); if (empty($name) || empty($email) || empty($message)) { echo json_encode(['success' => false, 'error' => 'Please fill in all required fields.']); exit; } if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { echo json_encode(['success' => false, 'error' => 'Invalid email address.']); exit; } try { $db = db(); // Ensure table exists $db->query("CREATE TABLE IF NOT EXISTS leads ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, service VARCHAR(255), message TEXT, status VARCHAR(50) DEFAULT 'pending', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP )"); $stmt = $db->prepare("INSERT INTO leads (name, email, service, message) VALUES (?, ?, ?, ?)"); $stmt->execute([$name, $email, $service, $message]); // Send email notification (optional but recommended) // MailService::sendContactMessage($name, $email, "New lead: $service - $message"); echo json_encode(['success' => true]); } catch (Exception $e) { error_log($e->getMessage()); echo json_encode(['success' => false, 'error' => 'Database error. Please try again later.']); }