قرار المالك 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>
73 lines
2.9 KiB
PHP
73 lines
2.9 KiB
PHP
<?php
|
|
// =========================================================
|
|
// backend/bot/generate_10_tasks_cli.php
|
|
// CLI script: Clears tasks.json and generates 10 individual tasks
|
|
// in STANDARD format (start_location/end_location at top level).
|
|
//
|
|
// Usage: php generate_10_tasks_cli.php
|
|
// Run this on the server where tasks.json is located.
|
|
// =========================================================
|
|
|
|
define('TASKS_FILE', __DIR__ . '/tasks.json');
|
|
|
|
$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' => 'Dabouq', 'lat' => 31.9960, 'lng' => 35.8115],
|
|
['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 → Dabouq (~5km)
|
|
];
|
|
|
|
// Step 1: Clear old tasks
|
|
file_put_contents(TASKS_FILE, json_encode([]));
|
|
echo "Cleared tasks.json\n";
|
|
|
|
// Step 2: Generate 10 standard tasks
|
|
$tasks = [];
|
|
foreach ($tripPairs as $pair) {
|
|
$start = $ammanLocations[$pair[0]];
|
|
$end = $ammanLocations[$pair[1]];
|
|
$taskId = "prc_" . uniqid();
|
|
|
|
$tasks[] = [
|
|
'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'],
|
|
],
|
|
];
|
|
echo " {$start['name']} → {$end['name']} ($taskId)\n";
|
|
}
|
|
|
|
file_put_contents(TASKS_FILE, json_encode($tasks, JSON_PRETTY_PRINT));
|
|
echo "\nDone! Generated " . count($tasks) . " standard tasks in tasks.json\n";
|
|
echo "The bot will process them one-by-one via normal polling.\n";
|