Files
tripz-llc/backend/bot/push_10_tasks.php
T
Hamza-AyedandClaude Opus 5 4d8414c96b feat: استيراد كود سيرو إلى تريبز (سيرو @ecfe7568) — بلا تعديل
قرار المالك 2026-07-27: باك إند سيرو PHP هو المعتمد، وتطبيقاته المجرّبة
ميدانياً تحل محل إعادة البناء المؤرشفة. سيرو نفسه لم يُمسّ.

الخريطة:
  backend · payment_server · loction_server · ride_server ·
  passenger_server · docker · dashboard · stress_test  → الجذر
  siro_rider  → apps/rider          siro_driver  → apps/driver
  siro_admin  → dashboards/admin    siro_service → dashboards/service
  android_bot → apps/android_bot    socialBot    → apps/socialBot

نُسخ المتعقَّب في git سيرو فقط عبر `git archive` (3,198 ملفاً / ~169 م.ب)
لا `cp -r` — فاستُثنيت مخلفات البناء تلقائياً. بلا أي تعديل محتوى عمداً:
كل ما يلي يصير فرقاً مقروءاً مقابل المصدر.

لم يُستورد وسببه: siromove.com (الموقع التسويقي يبقى marketing/ في تريبز،
سيرو فيه 8 ملفات) · docs و planning (تريبز له docs/ الخاص) · deploy.sh
(ليس نشراً على سيرفر بل `git add . && git push origin --all` — فخّ في
مستودع آخر) · transit_dashboard (بانتظار قرار مصير backend-transit و
dashboards/transit-web).

⚠️ لا يبني بعد — ثلاثة نواقص متوقعة ومقصودة:
1. `.env` و `lib/env/env.g.dart` غير متعقَّبين في سيرو (أسرار لكل مستأجر):
   كل تطبيق فلاتر يحتاج .env خاصاً ثم توليد env.g.dart بـ build_runner.
2. إعدادات Firebase (9 ملفات google-services.json و GoogleService-Info.plist)
   يستبعدها .gitignore تريبز — ولكل مستأجر مشروع Firebase خاص أصلاً.
3. apps/driver في سيرو يشير إلى `../../Intaleq/packages/get` خارج المستودع →
   يجب ضمّ الحزم داخله أسوة بـ apps/rider.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-07-27 05:14:13 +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";