Prepare secure config and reliable workout sync

This commit is contained in:
Hamza-Ayed
2026-10-04 00:33:44 +03:00
parent 05f1c9ec6b
commit e7f3c777d1
17 changed files with 553 additions and 119 deletions
+1 -1
View File
@@ -154,7 +154,7 @@
- `backend/api_workouts.php`: يولّد UUID جديدًا لكل POST؛ إعادة إرسال نفس الجلسة لا تظهر محمية بمعرف ثابت من العميل. المطلوب UUID ثابت وقيد فريد للمستخدم/الجلسة، ونتيجة ناجحة متسقة عند الإعادة.
- `mobile/lib/services/database_service.dart`: يستخدم replace لحفظ التمرين، وحفظ المقاطع وطابور المزامنة منفصل؛ نراجع الحفظ بمعاملة واحدة والتحديث دون حذف ضمني للعلاقات.
- وجود FOREIGN KEY محليًا دون onConfigure ظاهر لتفعيلها؛ نفعّلها ونختبر سلوك العلاقات والترحيل. لا نغيّر سياسة الحذف قبل اختبار البيانات الموجودة.
- طابور المزامنة يتوقف عن إعادة المحاولة بعد خمس إخفاقات؛ نضيف حالة واضحة للمستخدم وإعادة محاولة، وتأخيرًا متدرجًا وتصنيف الأخطاء.
- طابور المزامنة يتوقف عن الإرسال التلقائي بعد خمس إخفاقات؛ نعرض عدد كل السجلات غير المرفوعة، ونوفّر إعادة محاولة يدوية وتأخيرًا متدرجًا وتصنيفًا للأخطاء.
- تقرير الأسابيع يستخدم معدل تاريخ SQLite بصيغة `weeks`؛ نراجع حدود الفترة ووحدات التاريخ المدعومة، ونوحد UTC مع اليوم المحلي عند العرض.
- صفحة المنزل تعرض «آخر تمرين» بقيم ثابتة. README يصف أجزاء قديمة؛ الكود الفعلي هو مرجع التوسعة.
- مراجعة GPS ووحدات الزمن والسرعة والسعرات، ثم اختبار مسار معروف وثبات الهاتف قبل الحكم على دقة التتبع.