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:
co-authored by
Claude Fable 5
parent
3ab74a13a8
commit
de4bbd00ac
@@ -1,107 +0,0 @@
|
||||
// في ملف: constant/country_polygons.dart
|
||||
|
||||
import 'package:google_maps_flutter/google_maps_flutter.dart';
|
||||
|
||||
class CountryPolygons {
|
||||
// ==========================================================
|
||||
// 1. الأردن: تغطية الممر الحضري الرئيسي (من إربد شمالاً حتى العقبة جنوباً)
|
||||
// حوالي 12 نقطة
|
||||
// ==========================================================
|
||||
static final List<LatLng> jordanBoundary = [
|
||||
// شمال إربد (قرب الحدود)
|
||||
const LatLng(32.65, 35.80),
|
||||
// شمال شرق المفرق
|
||||
const LatLng(32.35, 37.00),
|
||||
// شرق الزرقاء / الأزرق
|
||||
const LatLng(31.85, 36.80),
|
||||
// جنوب شرق (نهاية الزحف السكاني)
|
||||
const LatLng(31.00, 36.50),
|
||||
// جنوب / معان
|
||||
const LatLng(30.30, 35.75),
|
||||
// العقبة
|
||||
const LatLng(29.50, 35.00),
|
||||
// البحر الأحمر / الحدود الغربية
|
||||
const LatLng(29.50, 34.85),
|
||||
// غرب وادي عربة
|
||||
const LatLng(30.80, 35.25),
|
||||
// منطقة البحر الميت / السلط
|
||||
const LatLng(32.00, 35.50),
|
||||
// العودة عبر وادي الأردن إلى الشمال
|
||||
const LatLng(32.45, 35.60),
|
||||
// العودة لنقطة إربد
|
||||
const LatLng(32.65, 35.80),
|
||||
];
|
||||
|
||||
// ==========================================================
|
||||
// 2. سوريا: تغطية الممر الغربي والساحلي (درعا، دمشق، حمص، حماة، حلب، الساحل)
|
||||
// حوالي 14 نقطة
|
||||
// ==========================================================
|
||||
static final List<LatLng> syriaBoundary = [
|
||||
// درعا / الجنوب
|
||||
const LatLng(32.65, 35.95),
|
||||
// شرق السويداء (حدود المنطقة المأهولة)
|
||||
const LatLng(32.85, 37.10),
|
||||
// أطراف دمشق الشرقية
|
||||
const LatLng(33.50, 36.65),
|
||||
// تدمر (أقصى امتداد شرقي للمضلع)
|
||||
const LatLng(34.50, 38.30),
|
||||
// الرقة (شمال شرق)
|
||||
const LatLng(35.95, 38.80),
|
||||
// حلب (الشمال)
|
||||
const LatLng(36.45, 37.15),
|
||||
// الحدود الشمالية الغربية (إدلب / تركيا)
|
||||
const LatLng(36.50, 36.50),
|
||||
// اللاذقية (الساحل)
|
||||
const LatLng(35.50, 35.75),
|
||||
// طرطوس (الساحل)
|
||||
const LatLng(34.80, 35.85),
|
||||
// حمص
|
||||
const LatLng(34.70, 36.70),
|
||||
// حماة
|
||||
const LatLng(35.10, 36.70),
|
||||
// العودة إلى منطقة دمشق
|
||||
const LatLng(33.40, 36.30),
|
||||
// العودة إلى درعا
|
||||
const LatLng(32.65, 35.95),
|
||||
];
|
||||
|
||||
// ==========================================================
|
||||
// 3. مصر: تغطية القاهرة الكبرى، الدلتا، والإسكندرية والإسماعيلية
|
||||
// حوالي 10 نقاط
|
||||
// ==========================================================
|
||||
static final List<LatLng> egyptBoundary = [
|
||||
// جنوب الفيوم (أقصى امتداد جنوبي غربي)
|
||||
const LatLng(29.20, 30.60),
|
||||
// جنوب القاهرة (العياط)
|
||||
const LatLng(29.80, 31.30),
|
||||
// شرق السويس
|
||||
const LatLng(29.95, 32.70),
|
||||
// الإسماعيلية / القناة
|
||||
const LatLng(30.60, 32.25),
|
||||
// بورسعيد / أطراف الدلتا الشمالية الشرقية
|
||||
const LatLng(31.30, 31.80),
|
||||
// دمياط / ساحل الدلتا
|
||||
const LatLng(31.50, 31.25),
|
||||
// الإسكندرية (أقصى الشمال الغربي)
|
||||
const LatLng(31.20, 29.80),
|
||||
// غرب الدلتا
|
||||
const LatLng(30.50, 30.20),
|
||||
// العودة لنقطة البداية
|
||||
const LatLng(29.20, 30.60),
|
||||
];
|
||||
|
||||
// دالة تُرجع رابط API بناءً على اسم الدولة
|
||||
static String getRoutingApiUrl(String countryName) {
|
||||
switch (countryName) {
|
||||
case 'Jordan':
|
||||
return 'https://routec.intaleq.xyz/route-jo';
|
||||
case 'Syria':
|
||||
return 'https://routec.intaleq.xyz/route';
|
||||
case 'Egypt':
|
||||
return 'https://routec.intaleq.xyz/route-eg';
|
||||
default:
|
||||
// الافتراضي في حالة لم يقع الموقع ضمن أي من المضلعات
|
||||
return 'https://routec.intaleq.xyz/route';
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user