
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
<?php
header("Content-Type: application/json");
header("Access-Control-Allow-Origin: *"); // Allows requests from any origin
header("Access-Control-Allow-Methods: POST, OPTIONS"); // Allows POST and OPTIONS requests
header("Access-Control-Allow-Headers: Content-Type, Authorization"); // Allows necessary headers

// Handle preflight OPTIONS request (CORS check)
if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    http_response_code(200);
    exit;
}

// Database connection parameters
$host = "localhost";
$dbname = "balubaid_c3capi";
$username = "balubaid_c3capi";
$password = "Vision@2050";

// Create a connection
$conn = new mysqli($host, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
    logMessage("Database connection failed: " . $conn->connect_error);
    die(json_encode(["status" => "error", "message" => "Database connection failed."]));
}

// Get access_token and clientid from query parameters
$access_token = isset($_GET['access_token']) ? $conn->real_escape_string($_GET['access_token']) : NULL;
$clientid = isset($_GET['clientid']) ? $conn->real_escape_string($_GET['clientid']) : NULL;

// Read JSON input
$input = file_get_contents("php://input");
$data = json_decode($input, true);

// Log the raw request
logMessage("Received request: " . print_r($input));

if (!$data || !isset($data['data']) || !is_array($data['data'])) {
    logMessage("Invalid data format received.");
    echo json_encode(["status" => "error", "message" => "Invalid data format."]);
    exit;
}

$success_count = 0;
$error_count = 0;

foreach ($data['data'] as $event) {
    $event_name = $conn->real_escape_string($event['event_name']);
    $event_time = $conn->real_escape_string($event['event_time']);
    $event_id = $conn->real_escape_string($event['event_id']);

    $email = isset($event['user_data']['em']) ? $conn->real_escape_string($event['user_data']['em']) : NULL;
    $phone = isset($event['user_data']['ph']) ? $conn->real_escape_string($event['user_data']['ph']) : NULL;
    $source = isset($event['user_data']['source']) ? $conn->real_escape_string($event['user_data']['source']) : NULL;
    
    $fbc = isset($event['user_data']['fbc']) ? $conn->real_escape_string($event['user_data']['fbc']) : NULL;
    $fbp = isset($event['user_data']['fbp']) ? $conn->real_escape_string($event['user_data']['fbp']) : NULL;
    $client_ip_address = isset($event['user_data']['client_ip_address']) ? $conn->real_escape_string($event['user_data']['client_ip_address']) : NULL;
    $client_user_agent = isset($event['user_data']['client_user_agent']) ? $conn->real_escape_string($event['user_data']['client_user_agent']) : NULL;

    $content_name = isset($event['custom_data']['content_name']) ? $conn->real_escape_string($event['custom_data']['content_name']) : NULL;
    $content_category = isset($event['custom_data']['content_category']) ? $conn->real_escape_string($event['custom_data']['content_category']) : NULL;
    $action_source = $conn->real_escape_string($event['action_source']);

    // Insert into database
    $sql = "INSERT INTO leads (event_name, event_time, event_id, email, phone, lead_source, fbc, fbp, client_ip_address, client_user_agent, content_name, content_category, action_source, access_token, clientid)
            VALUES ('$event_name', '$event_time', '$event_id', '$email', '$phone', '$source', '$fbc', '$fbp', '$client_ip_address', '$client_user_agent', '$content_name', '$content_category', '$action_source', '$access_token', '$clientid')";

    if ($conn->query($sql) === TRUE) {
        logMessage("Lead stored successfully: Event ID - $event_id");
        $success_count++;
    } else {
        logMessage("Database insertion failed: " . $conn->error);
        $error_count++;
    }
}

// Close connection
$conn->close();

// Return response
$response = [
    "status" => "success",
    "message" => "Processing complete.",
    "success_count" => $success_count,
    "error_count" => $error_count
];

echo json_encode($response);

/**
 * Function to log messages to a file
 */
function logMessage($message) {
    $logFile = "lead_requests.log";
    $timestamp = date("Y-m-d H:i:s");
    //file_put_contents($logFile, "[$timestamp] $message\n", FILE_APPEND);
}
?>
