false, 'error' => 'Missing IDs for deletion.']); exit; } try { $stmt = db()->prepare("DELETE FROM lpa_attorneys WHERE id = ? AND lpa_id = ?"); $stmt->execute([$attorney_id, $lpa_id]); echo json_encode(['success' => true, 'message' => 'Attorney removed.']); } catch (PDOException $e) { echo json_encode(['success' => false, 'error' => 'Database error: ' . $e->getMessage()]); } exit; } $step = isset($_POST['step']) ? (int)$_POST['step'] : 1; $lpa_id = isset($_POST['lpa_id']) ? (int)$_POST['lpa_id'] : null; try { if ($step === 1) { $lpa_type = $_POST['lpa_type'] ?? ''; $donor_name = $_POST['donor_name'] ?? ''; $other_names = $_POST['other_names'] ?? ''; $donor_dob = $_POST['donor_dob'] ?? ''; $customer_email = $_POST['customer_email'] ?? ''; $address1 = $_POST['donor_address_line1'] ?? ''; $address2 = $_POST['donor_address_line2'] ?? ''; $town = $_POST['donor_town'] ?? ''; $postcode = $_POST['donor_postcode'] ?? ''; if (empty($lpa_type) || empty($donor_name) || empty($donor_dob) || empty($customer_email) || empty($address1) || empty($town) || empty($postcode)) { echo json_encode(['success' => false, 'error' => 'All fields are required for Step 1, including the address.']); exit; } if ($lpa_id) { // Update existing $stmt = db()->prepare("UPDATE lpa_applications SET lpa_type = ?, donor_name = ?, other_names = ?, donor_dob = ?, customer_email = ?, donor_address_line1 = ?, donor_address_line2 = ?, donor_town = ?, donor_postcode = ?, step_reached = GREATEST(step_reached, 1) WHERE id = ?"); $stmt->execute([$lpa_type, $donor_name, $other_names, $donor_dob, $customer_email, $address1, $address2, $town, $postcode, $lpa_id]); $id = $lpa_id; } else { // Create new $stmt = db()->prepare("INSERT INTO lpa_applications (practice_id, lpa_type, donor_name, other_names, donor_dob, customer_email, donor_address_line1, donor_address_line2, donor_town, donor_postcode, step_reached) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); $stmt->execute([1, $lpa_type, $donor_name, $other_names, $donor_dob, $customer_email, $address1, $address2, $town, $postcode, 1]); $id = db()->lastInsertId(); } echo json_encode(['success' => true, 'id' => $id, 'next_step' => 2, 'message' => 'Step 1 saved successfully.']); } elseif ($step === 2) { if (!$lpa_id) { echo json_encode(['success' => false, 'error' => 'LPA ID is required for Step 2.']); exit; } $title = $_POST['title'] ?? ''; $first_name = $_POST['first_name'] ?? ''; $last_name = $_POST['last_name'] ?? ''; $email = $_POST['email'] ?? ''; $dob = $_POST['dob'] ?? ''; $address1 = $_POST['address_line1'] ?? ''; $address2 = $_POST['address_line2'] ?? ''; $address3 = $_POST['address_line3'] ?? ''; $town = $_POST['town'] ?? ''; $postcode = $_POST['postcode'] ?? ''; $next_action = $_POST['next_action'] ?? 'add_another'; if (empty($first_name) || empty($last_name) || empty($email) || empty($dob) || empty($address1) || empty($town) || empty($postcode)) { echo json_encode(['success' => false, 'error' => 'All fields are required to save an attorney.']); exit; } $stmt = db()->prepare("INSERT INTO lpa_attorneys (lpa_id, title, first_name, last_name, email, dob, address_line1, address_line2, address_line3, town, postcode) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"); $stmt->execute([$lpa_id, $title, $first_name, $last_name, $email, $dob, $address1, $address2, $address3, $town, $postcode]); // Update step reached $stmt = db()->prepare("UPDATE lpa_applications SET step_reached = GREATEST(step_reached, 2) WHERE id = ?"); $stmt->execute([$lpa_id]); $next_step = ($next_action === 'next_step') ? 3 : 2; echo json_encode(['success' => true, 'id' => $lpa_id, 'next_step' => $next_step, 'message' => 'Attorney saved successfully.']); } elseif ($step === 3) { if (!$lpa_id) { echo json_encode(['success' => false, 'error' => 'LPA ID is required for Step 3.']); exit; } $attorney_decision_type = $_POST['attorney_decision_type'] ?? ''; if (empty($attorney_decision_type)) { echo json_encode(['success' => false, 'error' => 'Please select how your attorneys should make decisions.']); exit; } $stmt = db()->prepare("UPDATE lpa_applications SET attorney_decision_type = ?, step_reached = GREATEST(step_reached, 3) WHERE id = ?"); $stmt->execute([$attorney_decision_type, $lpa_id]); echo json_encode(['success' => true, 'id' => $lpa_id, 'next_step' => 4, 'message' => 'Decision-making preference saved.']); } else { echo json_encode(['success' => false, 'error' => 'Invalid step provided.']); } } catch (PDOException $e) { error_log($e->getMessage()); echo json_encode(['success' => false, 'error' => 'Database error: ' . $e->getMessage()]); } } else { echo json_encode(['success' => false, 'error' => 'Invalid request method.']); }