feat: N1d/N2/N3 + قانون فلاتر وإعادة ضبط تطبيق السائق

الباك إند:
- تعيين أول أدمن صار يُنشئ المستخدم إن لم يوجد — كان يشترط دخولاً سابقاً،
  وهي بيضة ودجاجة تمنع الدخول إلى لوحة أي مستأجر جديد أصلاً.
- OTP_DEV_MODE كان يفشل مفتوحاً (`!== 'false'`): غياب المتغيّر أو خطأ مطبعي
  يترك الإنتاج برمز ثابت يفتح كل حساب، ويحرس السحب المالي كذلك. صار
  `=== 'true'` في الإعداد وفي قارئَيه، مع تحذير عند الإقلاع.
- N2: التحقّق من اللوغو عند الرفع (PNG/JPEG · 512+ · مربّع · سقف 5MB) عبر
  قراءة الترويسة بلا اعتمادية — بدل اكتشاف أيقونة ممطوطة بعد النشر.

N3: السكربت يولّد build_config.dart بأعلام const (طبقات docs/22 §1.5)،
ويضبط bundle IDs واسم التطبيق والأيقونات/splash، و--build يشغّل Shorebird.

فلاتر:
- docs/23: قانون مُلزِم للتطبيقين (البنية · Cubit · طبقة الشبكة · الأعلام).
- السائق: أُزيل Dart القديم (GetX) مع الإبقاء على الأصيل والإضافات وشهادات
  التوقيع وShorebird وFirebase الخاص به، وأُعيد هيكلته مطابقاً للراكب.
- طبقة الشبكة ترسل x-device-id وتجدّد التوكن عند 401 مرة واحدة فقط.
- الحزم موحّدة بين التطبيقين، والـAPI https حصراً في الاثنين.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Hamza-Ayed
2026-07-18 13:06:46 +03:00
co-authored by Claude Fable 5
parent 3ab74a13a8
commit de4bbd00ac
271 changed files with 1333 additions and 81068 deletions
+48 -118
View File
@@ -1,135 +1,73 @@
# تطبيق السائق — أُعيد بناء طبقة Dart بالكامل (Cubit+Bloc، لا GetX).
# الاسم `sefer_driver` مُبقًى عمداً: تغييره يمسّ مراجع أصيلة قائمة.
# الحزم محكومة بجدول docs/23 §9 — إضافة حزمة خارجه تُوثَّق هناك أولاً.
name: sefer_driver
description: A new Flutter project.
publish_to: "none" # Remove this line if you wish to publish to pub.dev
description: Tripz — تطبيق السائق
publish_to: "none"
version: 1.0.0+1
environment:
sdk: ">=3.0.5 <4.0.0"
sdk: ">=3.5.0 <4.0.0"
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
# ---- الإضافات الأصيلة المُعاد استعمالها (docs/23 §7) — لا يُعاد بناؤها ----
secure_string_operations:
path: ./secure_string_operations
trip_overlay_plugin:
path: ./trip_overlay_plugin
bubble_head:
path: ./bubble-master
# flutter_overlay_window: ^0.4.4
cupertino_icons: ^1.0.2
firebase_messaging: ^15.0.3
firebase_core: ^3.2.0
# ---- البنية المعتمدة (docs/23 §9) ----
flutter_bloc: ^9.1.1 # الحالة
equatable: ^2.0.7
get_it: ^8.0.3 # الحقن
dio: ^5.7.0 # الشبكة — نقطة النداء الوحيدة
go_router: ^14.6.2 # التنقّل
flutter_secure_storage: ^9.2.2 # التوكنات (لا SharedPreferences)
# ---- الخرائط: flutter_map + بلاطات انطلق، لا google_maps_flutter ----
flutter_map: ^7.0.2
latlong2: ^0.9.1
# ---- الزمن الحقيقي والإشعارات ----
socket_io_client: ^3.0.2
firebase_core: ^4.1.1
firebase_messaging: ^16.0.2
flutter_local_notifications: ^18.0.1
google_maps_flutter: ^2.10.1
sqflite: ^2.3.0
path: ^1.8.3
# lottie: ^2.5.0
intl: ^0.19.0
google_fonts: ^6.2.1
http: ^1.2.2
get: ^4.6.5
get_storage: ^2.1.1
url_launcher: ^6.1.12
location: ^8.0.0
google_polyline_algorithm: ^3.1.0
# custom_searchable_dropdown: ^2.1.1
animated_text_kit: ^4.2.2
flutter_secure_storage: ^9.0.0
# ---- خاصّ بالسائق: الموقع في الخلفية والعرض الطافي (docs/23 §10) ----
geolocator: ^13.0.2
flutter_paypal: ^0.2.0
flutter_launcher_icons: ^0.14.2 #to be remove
# crypto: ^3.0.3
encrypt: ^5.0.3
flutter_rating_bar: ^4.0.1
flutter_font_icons: ^2.2.5
image_picker: ^1.0.4
flutter_stripe: ^11.3.0
camera: ^0.11.0+1 #to be remove
flutter_widget_from_html: ^0.15.1
local_auth: ^2.1.7
image: ^4.1.3 #to be remove
image_cropper: ^8.1.0
envied: ^1.0.0
# cached_network_image: ^3.3.0 #to be remove
calendar_builder: ^0.0.6
fl_chart: ^0.70.0
# agora_rtc_engine: ^6.2.6
flutter_tts: ^4.0.2
permission_handler: ^11.3.0
# google_generative_ai: ^0.0.1-dev
vibration: ^2.0.1
wakelock_plus:
# background_location: ^0.13.0
# background_location:
# git:
# url: https://github.com/dharmik-dalwadi-seaflux/background_location.git
# ref: master
# flutter_overlay_apps:
# git:
# url: https://github.com/Hamza-Ayed/flutter_overlay_apps.git
# ref: main
record: ^5.0.5
dio: ^5.4.3+1
webview_flutter: ^4.9.0
just_audio: ^0.9.37
# share: ^2.0.4
google_sign_in: ^6.2.1
# google_mlkit_text_recognition: ^0.14.0
sign_in_with_apple: ^6.1.0
firebase_auth: ^5.1.2
package_info_plus: ^8.0.0
flutter_image_compress: ^2.3.0
flutter_contacts: ^1.1.8
flutter_overlay_window: ^0.4.4
googleapis_auth: ^1.6.0
video_player: ^2.9.2
youtube_player_flutter: ^9.0.4
flutter_confetti: ^0.3.0
slide_to_act: ^2.0.2
live_activities: ^2.3.0
quick_actions: ^1.1.0
jwt_decoder: ^2.0.1
jailbreak_root_detection: ^1.1.5
device_info_plus: ^11.3.0
share_plus: ^11.0.0
battery_plus: ^6.2.2
connectivity_plus: ^7.0.0
internet_connection_checker: ^1.0.0+1
socket_io_client: ^3.1.4
flutter_background_service_android: ^6.3.1
flutter_background_service: ^5.1.0
flutter_staggered_animations: ^1.1.1
# flutter_isolate: ^2.1.0
# lingo_hunter: ^1.0.3
flutter_background_service_android: ^6.3.1
flutter_overlay_window: ^0.4.5
battery_plus: ^6.2.0 # متحكّم الموقع واعٍ للبطارية
wakelock_plus: ^1.2.10
vibration: ^3.1.2
# ---- أدوات مساعدة ----
device_info_plus: ^11.2.0 # بصمة الجهاز (x-device-id — docs/17 D2)
connectivity_plus: ^6.1.0
permission_handler: ^11.3.1
package_info_plus: ^8.1.2
image_picker: ^1.1.2 # صور الوثائق
local_auth: ^2.3.0 # حيوية/تحقّق السائق
url_launcher: ^6.3.1
intl: ^0.20.2
cupertino_icons: ^1.0.8
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^5.0.0
envied_generator: ^1.0.0
build_runner: ^2.4.6
flutter_launcher_icons:
android: "launcher_icon"
ios: true
image_path: "assets/images/logo.png"
min_sdk_android: 21
web:
generate: true
image_path: "assets/images/logo.png"
background_color: "#hexcode"
theme_color: "#hexcode"
windows:
generate: true
image_path: "assets/images/logo.png"
icon_size: 48
macos:
generate: true
image_path: "assets/images/logo.png"
flutter_lints: ^6.0.0
flutter_launcher_icons: ^0.14.2 # يستدعيها سكربت التوليد (N3)
flutter_native_splash: ^2.4.3
flutter:
uses-material-design: true
@@ -141,14 +79,6 @@ flutter:
- shorebird.yaml
fonts:
# - family: mohanad
# fonts:
# - asset: assets/fonts/mohanad.ttf
# - family: josefin
# fonts:
# - asset: assets/fonts/josefin.ttf
- family: digit
fonts:
- asset: assets/fonts/digit.ttf
dependency_overrides:
record_platform_interface: "1.2.0"