Files
Hamza-AyedandClaude Opus 5 92dc6b3641 chore: استيراد أولي من سيرو (ecfe7568) — بلا أي تعديل
نسخة كاملة من مستودع سيرو عند ecfe7568 لتكون أساس تطبيق «انطلق».
نُسخ المتعقَّب في git فقط (12,509 ملفاً / 302 م.ب) بـ git archive، لا
`cp -r` — فاستُثنيت تلقائياً مخلفات البناء (build · node_modules ·
.dart_tool · .gradle · Pods ≈ 10.7 غ.ب) وكل ما يستثنيه .gitignore.

هذا الكوميت **بلا أي تعديل عمداً** حتى يكون كل ما يليه فرقاً مقروءاً
مقابل سيرو الأصلي. سيرو نفسه لم يُمسّ.

⚠️ لا يبني بعد: `.env` و`lib/env/env.g.dart` غير متعقَّبين في سيرو (وهذا
صحيح — أسرار لكل مستأجر). كل تطبيق فلاتر هنا يحتاج .env خاصاً بانطلق ثم
توليد env.g.dart عبر build_runner. لا تُنسخ أسرار سيرو.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-27 05:10:29 +03:00

81 lines
3.1 KiB
PHP

<?php
// =========================================================
// backend/bot/push_10_tasks.php
// CLI script: Clears old Redis queue and pushes 10 individual
// tasks in the STANDARD format (start_location/end_location at top level)
// so the cf696d05 (single-trip) Kotlin code can process them.
// =========================================================
require_once __DIR__ . '/../core/bootstrap.php';
if (php_sapi_name() !== 'cli') {
die("This script must be run from CLI.\n");
}
if (!$redis) {
die("Redis connection failed. Check your .env config.\n");
}
$ammanLocations = [
['name' => 'Abdoun', 'lat' => 31.9392, 'lng' => 35.8942],
['name' => 'Jabal Amman', 'lat' => 31.9511, 'lng' => 35.9189],
['name' => 'Sweileh', 'lat' => 32.0167, 'lng' => 35.8333],
['name' => 'Khalda', 'lat' => 31.9861, 'lng' => 35.8450],
['name' => 'Al-Jubaiha', 'lat' => 32.0194, 'lng' => 35.8753],
['name' => 'Tla Al-Ali', 'lat' => 31.9961, 'lng' => 35.8647],
['name' => 'Shmeisani', 'lat' => 31.9680, 'lng' => 35.9020],
['name' => 'Um Uthaina', 'lat' => 31.9610, 'lng' => 35.8770],
['name' => 'Marj Al-Hamam', 'lat' => 31.9000, 'lng' => 35.8500],
['name' => 'Al-Muqabalain', 'lat' => 31.8720, 'lng' => 35.8900],
['name' => 'Al-Qweismeh', 'lat' => 31.8900, 'lng' => 35.9200],
['name' => 'Hashmi Al-Janoubi', 'lat' => 31.9350, 'lng' => 35.9350],
['name' => 'Al-Madina', 'lat' => 31.8500, 'lng' => 35.8000],
['name' => 'Sports City', 'lat' => 31.9820, 'lng' => 35.8880],
];
$tripPairs = [
[13, 5], // Sports City → Tla Al-Ali (~2km)
[6, 0], // Shmeisani → Abdoun (~3km)
[7, 1], // Um Uthaina → Jabal Amman (~4km)
[3, 13], // Khalda → Sports City (~5km)
[4, 2], // Al-Jubaiha → Sweileh (~5km)
[0, 8], // Abdoun → Marj Al-Hamam (~6km)
[1, 10], // Jabal Amman → Al-Qweismeh (~9km)
[6, 9], // Shmeisani → Al-Muqabalain (~11km)
[2, 12], // Sweileh → Al-Madina (~17km)
[5, 11], // Tla Al-Ali → Hashmi (~5km)
];
// Step 1: Clear the old queue
$redis->del('queue:bot:tasks');
echo "Cleared old queue: queue:bot:tasks\n";
// Step 2: Push 10 individual tasks in STANDARD format
$count = 0;
foreach ($tripPairs as $i => $pair) {
$start = $ammanLocations[$pair[0]];
$end = $ammanLocations[$pair[1]];
$taskId = "prc_" . uniqid();
$task = [
'task_id' => $taskId,
'type' => 'price_check',
'app' => 'com.taxif.passenger',
'start_location' => $start['name'],
'end_location' => $end['name'],
'payload' => [
'start_lat' => $start['lat'],
'start_lng' => $start['lng'],
'end_lat' => $end['lat'],
'end_lng' => $end['lng'],
],
];
$redis->lpush('queue:bot:tasks', json_encode($task));
$count++;
echo " [$count] Pushed: {$start['name']} → {$end['name']} (task_id: $taskId)\n";
}
echo "\nDone! Pushed $count individual tasks to Redis queue.\n";
echo "The bot will process them one-by-one through normal polling (every ~15s).\n";