Files
tripz-llc/dashboards/admin/lib/models/model/passengers_model.dart
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

78 lines
2.5 KiB
Dart

class MonthlyPassengerInstall {
int day;
int totalPassengers;
MonthlyPassengerInstall({required this.day, required this.totalPassengers});
factory MonthlyPassengerInstall.fromJson(Map<String, dynamic> json) =>
MonthlyPassengerInstall(
day: int.parse(json['day'].toString().split('-')[2]),
totalPassengers:
int.parse(json['totalPassengers'].toString().split(':')[0]));
}
class MonthlyRidesInstall {
int day;
int totalRides;
MonthlyRidesInstall({required this.day, required this.totalRides});
factory MonthlyRidesInstall.fromJson(Map<String, dynamic> json) =>
MonthlyRidesInstall(
day: int.parse(json['day'].toString().split('-')[2]),
totalRides: int.parse(json['totalRides'].toString().split(':')[0]));
}
class MonthlyEmployeeData {
int day;
int totalEmployees;
String name;
MonthlyEmployeeData(
{required this.day, required this.totalEmployees, required this.name});
factory MonthlyEmployeeData.fromJson(Map<String, dynamic> json) =>
MonthlyEmployeeData(
day: int.parse(json['date'].toString().split('-')[2]), // Extract day
totalEmployees: json['count'],
name: json['NAME'],
);
}
class MonthlyDriverInstall {
int day;
int totalDrivers;
int dailyTotalDrivers;
int dailyTotalCallingDrivers;
int dailyMatchingNotes;
int totalMonthlyDrivers;
int totalMonthlyCallingDrivers;
int totalMonthlyMatchingNotes;
MonthlyDriverInstall({
required this.day,
required this.totalDrivers,
required this.dailyTotalDrivers,
required this.dailyTotalCallingDrivers,
required this.dailyMatchingNotes,
required this.totalMonthlyDrivers,
required this.totalMonthlyCallingDrivers,
required this.totalMonthlyMatchingNotes,
});
factory MonthlyDriverInstall.fromJson(Map<String, dynamic> json) =>
MonthlyDriverInstall(
day: int.parse(json['day'].toString().split('-')[2]),
totalDrivers: int.parse(json['totalDrivers'].toString()),
dailyTotalDrivers: int.parse(json['dailyTotalDrivers'].toString()),
dailyTotalCallingDrivers:
int.parse(json['dailyTotalCallingDrivers'].toString()),
dailyMatchingNotes: int.parse(json['dailyMatchingNotes'].toString()),
totalMonthlyDrivers: int.parse(json['totalMonthlyDrivers'].toString()),
totalMonthlyCallingDrivers:
int.parse(json['totalMonthlyCallingDrivers'].toString()),
totalMonthlyMatchingNotes:
int.parse(json['totalMonthlyMatchingNotes'].toString()),
);
}