exec($sql); // 2. Ten Key Regions in Damascus $regions = [ ['name' => 'Umayyad Square', 'lat' => 33.5138, 'lng' => 36.2765], ['name' => 'Mezzeh', 'lat' => 33.5074, 'lng' => 36.2530], ['name' => 'Malki', 'lat' => 33.5220, 'lng' => 36.2840], ['name' => 'Kafersouseh', 'lat' => 33.4981, 'lng' => 36.2730], ['name' => 'Al-Midan', 'lat' => 33.4947, 'lng' => 36.2995], ['name' => 'Bab Tuma', 'lat' => 33.5126, 'lng' => 36.3150], ['name' => 'Rukneddine', 'lat' => 33.5350, 'lng' => 36.2950], ['name' => 'Dummar', 'lat' => 33.5385, 'lng' => 36.2250], ['name' => 'Baramkeh', 'lat' => 33.5100, 'lng' => 36.2885], ['name' => 'Muhajireen', 'lat' => 33.5320, 'lng' => 36.2720], ]; $competitors = ['yallago', 'zaken', 'tufaddal']; // Helper to generate a random point within a radius (in km) function generateRandomPoint($lat, $lng, $radius) { $radiusInDegrees = $radius / 111.0; // 1 degree is ~111km $u = lcg_value(); $v = lcg_value(); $w = $radiusInDegrees * sqrt($u); $t = 2 * pi() * $v; $x = $w * cos($t); $y = $w * sin($t); // Adjust longitude based on latitude $new_lng = $x / cos(deg2rad($lat)); $new_lat = $y; return [ 'lat' => $lat + $new_lat, 'lng' => $lng + $new_lng ]; } $tasksCreated = 0; foreach ($regions as $region) { // A. Generate Start Point (within 2km of region center) $start = generateRandomPoint($region['lat'], $region['lng'], 2); // B. Generate Short Trip (2-5 km from start) $shortDist = rand(20, 50) / 10.0; $shortEnd = generateRandomPoint($start['lat'], $start['lng'], $shortDist); // C. Generate Long Trip (10-15 km from start) $longDist = rand(100, 150) / 10.0; $longEnd = generateRandomPoint($start['lat'], $start['lng'], $longDist); $trips = [$shortEnd, $longEnd]; foreach ($trips as $end) { foreach ($competitors as $app) { $taskId = "prc_" . uniqid(); $taskData = [ "task_id" => $taskId, "type" => "price_check", "app" => $app, "payload" => [ "start_lat" => $start['lat'], "start_lng" => $start['lng'], "end_lat" => $end['lat'], "end_lng" => $end['lng'] ] ]; // Push to Redis Queue $redis->lpush('queue:bot:tasks', json_encode($taskData)); $tasksCreated++; } } } echo "Successfully generated and queued $tasksCreated pricing tasks.\n";