1. الفكرة العامة ومميزات النظام
نظام **الرجل الغامض** يمنح المستخدم إمكانية التخفي الكامل داخل التطبيق، حيث يتم استبدال اسمه وصورته وديكوراته بهوية غامضة وديكورات مخصصة، مع الحفاظ الكامل على بياناته وديكوراته الأصلية وإعادتها فور إلغاء التفعيل.
🎭 إخفاء الهوية الكامل
توليد اسم رمزي فريد بصيغة mysterious{user_id}{suffix} مع صورة بروفايل وبانر غامضين.
🛡️ حفظ الديكورات الأصلية
تشفير وحفظ الديكورات والحزمة الأرستقراطية الحالية للمستخدم قبل التفعيل، وإعادتها بلمسة واحدة.
💎 شراء وسحب آلي
خصم الديموند الموحد وسريان الاشتراكات بالأيام المحددة مع تنبيهات لحظية عبر السيرفر.
🖼️ 5 خيارت ديكور مخصصة
إطار صورة، دخولية غرفة، إطار دردشة، بانر، وخلفية بروفايل مخصصة حصرياً للرجل الغامض.
2. دورة حياة هوية المستخدم (Lifecycle)
الشراء (Purchase)
خصم الديموند، توليد الاسم الغامض، وإنشاء اشتراك بحالة غير نشطة (Inactive).
التفعيل (Activate)
حفظ الديكورات الأصلية، إيقاف الأرستقراطية، ارتداء ديكورات الغموض، ورفع `is_mysterious = true`.
إلغاء التفعيل (Deactivate)
إزالة ديكورات الغموض، استعادة الديكورات والأرستقراطية الأصلية، وإعادة `is_mysterious = false`.
الانتهاء (Expiration)
إلغاء التفعيل التلقائي وتحديث حالة الاشتراك إلى `expired` عبر السيرفر فور انتهاء المدة.
3. المصادقة والـ Base URL
الرابط الأساسي (Base URL):
https://api.megchat.cc/api/v1/mysterious-man
الـ Headers المطلوبة لجميع الطلبات المحمية:
| Header | Value | الوصف |
|---|---|---|
Accept |
application/json |
تحديد صيغة الاستجابة |
Content-Type |
application/json |
تحديد صيغة الجسم المرفق |
Authorization |
Bearer {USER_TOKEN} |
توكن مصادقة المستخدم (Sanctum/Passport) |
4.1. جلب معلومات الباقة الحالية
يُرجع تفاصيل الباقة النشطة للشراء (السعر، الأيام، الصور، والديكورات المخصصة لكل خانة).
{
"success": true,
"data": {
"id": 1,
"name": "الرجل الغامض",
"description": "باقة إخفاء الهوية الكاملة والحصول على الديكورات الغامضة",
"cover_image_url": "https://meg.nbg1.your-objectstorage.com/mysterious-man/cover.jpg",
"profile_image_url": "https://meg.nbg1.your-objectstorage.com/mysterious-man/profile.jpg",
"banner_image_url": "https://meg.nbg1.your-objectstorage.com/mysterious-man/banner.jpg",
"currency_count": 3000000,
"currency_type": "diamond",
"valid_days": 30,
"decorations": {
"frame": { "id": 119, "name": "إطار الكنج", "image_path": "https://meg.nbg1.your-objectstorage.com/decorations/frame1.png", "type": "frame" },
"entry_effect": { "id": 204, "name": "دخولية الأشباح", "image_path": "https://meg.nbg1.your-objectstorage.com/decorations/entry1.png", "type": "entering_effect" },
"chat_frame": { "id": 305, "name": "فقاعة الغموض", "image_path": "https://meg.nbg1.your-objectstorage.com/decorations/bubble1.png", "type": "chat_box" },
"banner": { "id": 401, "name": "بانر الظلال", "image_path": "https://meg.nbg1.your-objectstorage.com/decorations/banner1.png", "type": "effect" },
"profile_page": { "id": 502, "name": "خلفية البروفايل الغامضة", "image_path": "https://meg.nbg1.your-objectstorage.com/decorations/bg1.png", "type": "room_background" }
}
}
}
4.2. الاستعلام عن حالة اشتراك المستخدم
معرفة هل يملك المستخدم اشتراكاً حالياً، وهل الهوية مفعّلة (`active`) أم متوقفة (`inactive`) مع الأيام المتبقية.
{
"success": true,
"data": {
"has_subscription": true,
"status": "active",
"mysterious_name": "mysterious153589",
"purchased_at": "2026-07-30 14:00:00",
"expires_at": "2026-08-29 14:00:00",
"activated_at": "2026-07-30 14:05:00",
"deactivated_at": null,
"days_remaining": 30,
"package": {
"id": 1,
"name": "الرجل الغامض",
"currency_count": 3000000,
"valid_days": 30
}
}
}
4.3. شراء باقة الرجل الغامض
خصم رصيد الديموند الخاص بالمستخدم وتوليد اسم غامض فريد مع إنشاء اشتراك غير مفعّل.
{
"success": true,
"data": {
"message": "تم الاشتراك في الرجل الغامض بنجاح! 🎭",
"mysterious_name": "mysterious153589",
"expires_at": "2026-08-29 14:00:00",
"days_remaining": 30,
"status": "inactive"
}
}
4.4. تفعيل هوية الرجل الغامض
بدء وضع التخفي: حفظ الديكورات الأصلية، ارتداء ديكورات الغموض، ورفع `is_mysterious = true`.
{
"success": true,
"data": {
"message": "تم تفعيل هوية الرجل الغامض 🎭",
"mysterious_name": "mysterious153589",
"status": "active"
}
}
4.5. إلغاء تفعيل هوية الرجل الغامض
العودة للهوية الأصلية واستعادة كافة الديكورات الأرستقراطية المحفوظة فوراً.
{
"success": true,
"data": {
"message": "تم إلغاء تفعيل هوية الرجل الغامض. عادت هويتك الأصلية ✅",
"status": "inactive",
"days_remaining": 29
}
}
5. قواعد العرض داخل الغرف والمحادثات (Room UI Logic)
عند استقبال بيانات أي مستخدم في الصوتيات أو الميكروفونات أو رسائل الدردشة، يجب تطبيق التغييرات التالية في واجهة الموبايل بناءً على قيمة is_mysterious:
| العنصر في التطبيق | العرض العادي (is_mysterious = false) | عرض الرجل الغامض (is_mysterious = true) |
|---|---|---|
| الاسم الظاهر | اسم المستخدم الأصلي (e.g. أحمد) | الاسم الرمزي mysterious_name (e.g. mysterious153589) |
| صورة البروفايل | الصورة الشخصية الأصلية | صورة الرجل الغامض المرفقة بالباقة profile_image_url |
| إطار الصورة (Frame) | الإطار الأصلي | إطار الرجل الغامض الخاضع للباقة |
| فقاعة الشات (Bubble) | فقاعة الشات الأصلية | فقاعة شات الرجل الغامض |
| دخولية الغرفة (Entry) | تأثير الدخولية الأصلي | دخولية الرجل الغامض الخاضعة للباقة |
6. أكواد دمج Flutter المتكاملة (Dart Ready Code)
import 'package:dio/dio.dart';
import 'mysterious_man_models.dart';
class MysteriousManService {
final Dio _dio = Dio(BaseOptions(
baseUrl: 'https://api.megchat.cc/api/v1/mysterious-man',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
},
connectTimeout: const Duration(seconds: 10),
receiveTimeout: const Duration(seconds: 10),
));
// 1. جلب تفاصيل الباقة (Public)
Future getPackage() async {
try {
final response = await _dio.get('/package');
if (response.data['success'] == true) {
return MysteriousPackageModel.fromJson(response.data['data']);
}
} on DioException catch (e) {
print('getPackage Error: ${e.response?.data}');
}
return null;
}
// 2. فحص حالة الاشتراك
Future getStatus(String userToken) async {
try {
final response = await _dio.get(
'/status',
options: Options(headers: {'Authorization': 'Bearer $userToken'}),
);
if (response.data['success'] == true) {
return MysteriousStatusModel.fromJson(response.data['data']);
}
} on DioException catch (e) {
print('getStatus Error: ${e.response?.data}');
}
return null;
}
// 3. شراء الباقة
Future
7. محاكي الاستجابة (Interactive Response Sandbox)
اختر الـ Endpoint لتجربة الاستجابة المتوقعة مباشرة:
...