========================================================
  خليجنا - الباك-إند (PHP + MySQL)
========================================================

خطوات التركيب على cPanel:

1) أنشئ قاعدة بيانات جديدة ومستخدماً لها من: MySQL Databases،
   واربط المستخدم بالقاعدة بصلاحيات كاملة.

2) افتح phpMyAdmin > اختر القاعدة > تبويب "استيراد" > ارفع الملف db.sql
   ثم نفّذ. ستُنشأ الجداول تلقائياً (تستخدم IF NOT EXISTS، آمنة للتكرار).

3) افتح ملف config.php وعدّل هذه القيم فقط:
     DB_NAME  =  اسم القاعدة
     DB_USER  =  اسم المستخدم
     DB_PASS  =  كلمة المرور

4) ارفع كامل مجلد khaleejna_api داخل public_html
   ليصبح المسار مثلاً:
     https://yourdomain.com/khaleejna_api/

5) اختبار سريع من المتصفح (يجب أن يرجع JSON):
     https://yourdomain.com/khaleejna_api/login.php
   (سيرجع: بيانات الدخول غير صحيحة — وهذا طبيعي، معناه أن السيرفر يعمل)

--------------------------------------------------------
  عقد الـ API (مهم لتطبيق فلوتر)
--------------------------------------------------------
- كل الردود بصيغة موحّدة:
    { "success": true/false, "data": {...} , "message": "..." }
- المصادقة: أرسل التوكن في الترويسة:
    Authorization: Bearer <token>
  (أو كمعامل token=<token>)
- كل النصوص UTF-8، والتواريخ بصيغة "YYYY-MM-DD HH:MM:SS".

نقاط النهاية (Endpoints):

[بدون توكن]
register.php   POST  phone, name, password        -> data:{ token, user }
login.php      POST  phone, password              -> data:{ token, user }

[بتوكن]
users.php          GET   [search]                  -> data:{ users:[user] }
update_profile.php POST  [name][about][avatar]     -> data:{ user }
heartbeat.php      POST  -                          -> data:{ unread_total, server_time }

get_chats.php      GET   -                          -> data:{ chats:[ {peer, last_message, unread} ] }
get_messages.php   GET   peer_id [after_id]         -> data:{ messages:[msg], read_up_to }
send_message.php   POST  receiver_id, body [type]   -> data:{ message }
mark_read.php      POST  peer_id                    -> data: null

call_start.php     POST  callee_id, offer           -> data:{ call_id }
call_poll.php      GET   -                           -> data:{ call | null }
call_answer.php    POST  call_id, answer            -> data: null
call_reject.php    POST  call_id                    -> data: null
call_hangup.php    POST  call_id                    -> data: null
ice_send.php       POST  call_id, candidate         -> data: null
ice_get.php        GET   call_id [after_id]         -> data:{ candidates:[ {id, candidate} ] }

أشكال الكائنات:

user = {
  id:int, phone:string, name:string, about:string,
  avatar:string|null, last_seen:string|null, is_online:0|1
}

msg = {
  id:int, sender_id:int, receiver_id:int, body:string,
  type:"text"|"call_log", status:"sent"|"delivered"|"read",
  created_at:string
}

call = {
  id:int, role:"caller"|"callee", status:string,
  offer:string|null, answer:string|null,
  caller_id:int, callee_id:int, peer:user|null
}

--------------------------------------------------------
  ملاحظات
--------------------------------------------------------
- الصوت يمر مباشرة بين الجهازين عبر WebRTC (STUN من Google).
  السيرفر يُستخدم فقط لتبادل الإشارات (offer/answer/ICE) والدردشة.
- على استضافة مشتركة قد تحتاج لخوادم TURN إذا فشل الاتصال خلف
  شبكات صعبة (يمكن إضافتها لاحقاً في تطبيق فلوتر).
========================================================
