Initial V2 commit 4
This commit is contained in:
@@ -5,10 +5,15 @@ namespace App\Services;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
/**
|
||||
* FCM Notification Service
|
||||
* خدمة إشعارات Firebase (FCM Service)
|
||||
*
|
||||
* Sends push notifications via Firebase Cloud Messaging (HTTP v1 API).
|
||||
* Replaces the scattered sendFCM_Internal() calls from V1.
|
||||
* الغرض من الملف:
|
||||
* إرسال التنبيهات (Push Notifications) للهواتف الذكية عبر خدمة Google Firebase.
|
||||
*
|
||||
* كيفية العمل:
|
||||
* 1. يتصل بخوادم Google باستخدام مفاتيح الوصول (API Keys).
|
||||
* 2. يرسل التنبيه للراكب أو السائق بناءً على الرمز (Token) الخاص بجهازه.
|
||||
* 3. يدير إرسال البيانات الإضافية (مثل معرف الرحلة) داخل التنبيه لتسهيل التفاعل معه داخل التطبيق.
|
||||
*/
|
||||
class FcmService
|
||||
{
|
||||
|
||||
@@ -3,14 +3,15 @@
|
||||
namespace App\Services;
|
||||
|
||||
/**
|
||||
* Payload Crypto Service — AES-256-GCM
|
||||
* خدمة تشفير حمولة البيانات (Payload Crypto Service)
|
||||
*
|
||||
* Dynamic encryption for all payloads between Flutter apps and the API.
|
||||
* Unlike LegacyEncryption which uses static IV, this generates a unique IV per request.
|
||||
* الغرض من الملف:
|
||||
* تشفير وفك تشفير البيانات المتبادلة بين التطبيق (Flutter) والخادم (API) باستخدام تقنية AES-256-GCM.
|
||||
*
|
||||
* Format: base64(IV + ciphertext + tag)
|
||||
* - IV: 12 bytes (random per encryption)
|
||||
* - Tag: 16 bytes (integrity verification)
|
||||
* كيفية العمل:
|
||||
* 1. يولد مفتاح تشفير ديناميكي وفريد لكل طلب (IV).
|
||||
* 2. يضمن خصوصية البيانات (تشفير) وسلامتها (منع التلاعب عبر الـ Authentication Tag).
|
||||
* 3. يختلف عن التشفير القديم (Legacy) بأنه أكثر أماناً ويستخدم معايير تشفير حديثة.
|
||||
*/
|
||||
class PayloadCrypto
|
||||
{
|
||||
|
||||
@@ -5,10 +5,15 @@ namespace App\Services;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
/**
|
||||
* Socket Communication Service
|
||||
* خدمة التواصل اللحظي (Socket Communication Service)
|
||||
*
|
||||
* Communicates with Node.js socket servers for real-time events.
|
||||
* Replaces hardcoded IPs in V1 with .env configuration.
|
||||
* الغرض من الملف:
|
||||
* التنسيق بين الخادم (PHP) وخوادم الـ Sockets (التي تعمل بـ Node.js) لتحديث التطبيقات فوراً عند وقوع حدث معين.
|
||||
*
|
||||
* كيفية العمل:
|
||||
* 1. عندما يتم قبول رحلة أو تحديث موقع، يرسل هذا الملف طلباً سريعاً (Async) لخادم السوكت.
|
||||
* 2. يقوم خادم السوكت بدوره بتوصيل هذه المعلومة لتطبيق الراكب أو السائق في نفس اللحظة بدون تأخير.
|
||||
* 3. يستخدم مفاتيح أمان داخلية (Internal Key) لضمان أن الطلبات قادمة من الخادم الموثوق فقط.
|
||||
*/
|
||||
class SocketService
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user