false, 'message' => 'Method Not Allowed']); exit; } $inputJSON = file_get_contents('php://input'); $input = json_decode($inputJSON, true); if (!$input) { http_response_code(400); echo json_encode(['success' => false, 'message' => 'Invalid JSON input']); exit; } $platformInput = $input['platform'] ?? 'Unknown'; // Map package names to ENUM values $platformMap = [ 'com.ubercab.driver' => 'Uber', 'com.careem.adma' => 'Careem', 'me.jeeny.driver' => 'Jeeny', 'com.petraride.driver' => 'Petra Ride', 'com.taxif.driver' => 'TaxiF' ]; $platform = $platformMap[$platformInput] ?? ($platformInput ?: 'Unknown'); // Ensure the platform matches one of the ENUM values $allowedPlatforms = ['Uber', 'Careem', 'Jeeny', 'Petra Ride', 'TaxiF', 'Unknown']; if (!in_array($platform, $allowedPlatforms)) { $platform = 'Unknown'; } $price = $input['price'] ?? 0.0; $pickupDistance = $input['pickupDistance'] ?? 'Unknown'; $dropoffDistance = $input['dropoffDistance'] ?? 'Unknown'; $timeToPickup = $input['timeToPickup'] ?? 'Unknown'; $pickupAddress = $input['pickupAddress'] ?? 'Unknown'; $dropoffAddress = $input['dropoffAddress'] ?? 'Unknown'; $isAccepted = isset($input['isAccepted']) ? (int)$input['isAccepted'] : 0; $rawText = $input['rawText'] ?? ''; $fingerprint = $input['fingerprint'] ?? 'UNKNOWN_DEVICE'; $latitude = $input['latitude'] ?? null; $longitude = $input['longitude'] ?? null; try { $sql = "INSERT INTO rides (fingerprint, platform, price, pickup_distance, dropoff_distance, time_to_pickup, pickup_address, dropoff_address, is_accepted, raw_text, latitude, longitude, created_at) VALUES (:fingerprint, :platform, :price, :pickup_distance, :dropoff_distance, :time_to_pickup, :pickup_address, :dropoff_address, :is_accepted, :raw_text, :latitude, :longitude, NOW())"; $stmt = $pdo->prepare($sql); $stmt->execute([ ':fingerprint' => $fingerprint, ':platform' => $platform, ':price' => $price, ':pickup_distance' => $pickupDistance, ':dropoff_distance' => $dropoffDistance, ':time_to_pickup' => $timeToPickup, ':pickup_address' => $pickupAddress, ':dropoff_address' => $dropoffAddress, ':is_accepted' => $isAccepted, ':raw_text' => $rawText, ':latitude' => $latitude, ':longitude' => $longitude ]); http_response_code(201); echo json_encode([ 'success' => true, 'message' => 'Ride record created successfully', 'ride_id' => $pdo->lastInsertId() ]); } catch (PDOException $e) { http_response_code(500); echo json_encode(['success' => false, 'message' => 'Database error: ' . $e->getMessage()]); } ?>