نسخة كاملة من مستودع سيرو عند 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>
78 lines
2.5 KiB
Dart
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()),
|
|
);
|
|
}
|