توثيق API — محفظة الأرستقراطية
دليل دمج محفظة الأرستقراطية لتطبيقات الموبايل (Aristocracy Wallet — Mobile Integration Guide).
معلومات هامة
جميع الطلبات تتطلب Bearer Token للمستخدم المسجّل دخول.
Base URL: https://api.megchat.cc/api/v1
Header مطلوب في كل الطلبات:
Authorization: Bearer {user_token}
Content-Type: application/json
Accept: application/json
1. عرض كروت المحفظة
يجلب جميع كروت الأرستقراطية الموجودة في محفظة المستخدم الحالي (الكروت غير المفعّلة، المخزّنة للاستخدام لاحقاً).
GET
/api/v1/privilege-wallet
الرد — نجاح 200
{
"data": [
{
"id": 14,
"privilege_package_id": 3,
"privilege_package_name": "أرستقراطي ذهبي",
"icon_path": "privilege-packages/gold.png",
"icon_url": "https://api.megchat.cc/storage/privilege-packages/gold.png",
"valid_days": 30,
"created_at": "2026-05-13T05:30:00.000000Z"
}
]
}
وصف الحقول
| الحقل | النوع | الوصف |
|---|---|---|
id |
integer |
معرّف الكارت الفريد في المحفظة ← هذا هو الـ ID المستخدم في طلبات التفعيل والإهداء |
privilege_package_id |
integer |
معرّف نوع الأرستقراطية |
privilege_package_name |
string |
اسم الأرستقراطية |
icon_url |
string |
رابط أيقونة الأرستقراطية (جاهز للعرض مباشرة) |
valid_days |
integer |
عدد الأيام التي سيضيفها هذا الكارت عند التفعيل |
created_at |
datetime |
تاريخ إضافة الكارت للمحفظة |
نصيحة: لعرض الكروت مجمّعة حسب النوع، يمكن للتطبيق تجميع النتائج بـ privilege_package_id لعرض "لديك 2 من الذهبي و1 من البلاتيني" بدلاً من عرض كل كارت منفرد.
2. تفعيل كارت من المحفظة
يقوم بتفعيل كارت أرستقراطية محدد من المحفظة لنفس المستخدم.
POST
/api/v1/privilege-wallet/{wallet_card_id}/activate
لا يحتاج Body — فقط الـ id في الـ URL.
قواعد التفعيل التلقائي حسب الرتبة:
| الحالة | النتيجة |
|---|---|
| لا توجد أرستقراطية مفعّلة | تفعيل فوري بكامل الأيام |
| نفس الرتبة مفعّلة | تمديد الأيام الحالية بـ 100% |
| الكارت رتبة أعلى | الغاء القديمة + تفعيل الجديدة كاملاً |
| الكارت رتبة أدنى بـ 1 درجة | إضافة 45% من أيام الكارت |
| الكارت رتبة أدنى بـ 2 درجة | إضافة 25% من أيام الكارت |
| الكارت رتبة أدنى بـ 3+ درجات | إضافة 10% من أيام الكارت |
الرد — نجاح 200
{
"data": {
"days_added": 30,
"valid_until": "2026-06-12 05:30:00"
},
"meta": {
"message": "تم تفعيل الأرستقراطية بنجاح"
}
}
أخطاء محتملة
403: لا تملك هذا الكارت
422: هذه الأرستقراطية مفعّلة بالفعل
404: الكارت غير موجود
3. إهداء كارت لمستخدم آخر
ينقل كارت أرستقراطية من محفظة المستخدم الحالي إلى محفظة مستخدم آخر.
- يُهدى الكارت بكامل أيامه الأصلية
- يصل للمستقبِل كـ كارت في محفظته
- يتلقى المستقبِل إشعار push notification
- لا يمكن إهداء كارت لنفس المستخدم
POST
/api/v1/privilege-wallet/{wallet_card_id}/transfer
المعاملات (Request Body)
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
receiver_id |
integer |
✅ | ID المستخدم المستقبِل |
نموذج الطلب
{
"receiver_id": 10042
}
الرد — نجاح 200
{
"meta": {
"message": "تم إرسال الأرستقراطية بنجاح"
}
}
أخطاء محتملة
422: أنت لا تملك هذه الأرستقراطية
422: لا يمكن إرسال أرستقراطية مفعّلة
📱 سيناريو الاستخدام (UI Flow)
┌─────────────────────────────────────┐
│ شاشة المحفظة │
│ │
│ GET /privilege-wallet │
│ │
│ ┌──────────┐ ┌──────────┐ │
│ │ 🟡 ذهبي │ │ 💎 بلات │ │
│ │ × 2 │ │ × 1 │ │
│ │ 30 يوم │ │ 60 يوم │ │
│ └──────────┘ └──────────┘ │
│ │
│ [اضغط على كارت] │
└──────────────┬──────────────────────┘
│
▼
┌─────────────────────────────────────┐
│ خيارات الكارت │
│ │
│ 📦 أرستقراطي ذهبي │
│ ⏱️ صالح لمدة 30 يوم │
│ │
│ ┌─────────────┐ ┌───────────────┐ │
│ │ ⚡ تفعيل │ │ 🎁 إهداء │ │
│ │ لنفسي │ │ لصديق │ │
│ └─────────────┘ └───────────────┘ │
└──────────────┬──────────────────────┘
┌────┴────┐
│ │
▼ ▼
POST activate POST transfer
+ receiver_id
🔔 الإشعارات (Push Notifications)
عند الإهداء، يتلقى المستقبِل إشعاراً من نوع reward (يظهر في قسم الجوائز):
{
"title": "وصلتك أرستقراطية جديدة! 🎉",
"body": "قام {اسم المرسل} بإرسال {اسم الباقة} إلى محفظتك.",
"type": "reward",
"identifier": "privilege-package-wallet"
}
⚠️ ملاحظات مهمة للمطور
- الـ
idفي الطلبات هو معرّف الكارت في المحفظة (privilege_package_user.id) وليسprivilege_package_id. - مستخدم واحد قد يمتلك أكثر من كارت من نفس الأرستقراطية — كل كارت له
idمختلف. - بعد التفعيل أو الإهداء، أعد جلب المحفظة (
GET /privilege-wallet) لتحديث الواجهة.