API Console

FREE SPACE — جميع نقاط الاتصال بالخادم مع إمكانية الاختبار

الأساس: http://<ip>:3000 أو https://moh-app.fly.dev
أدخل بيانات المصادقة ثم اختبر أي نقطة
المصادقة والإدارة (Admin Auth)
مصادقة المشرف: headers x-admin-token + x-admin-user — التوكن من /api/admin/login، صلاحيته 24 ساعة.
POST/api/admin/login
تسجيل دخول المشرف {"username","password"} {token,username,role,permissions[]}
POST/api/admin/verify
التحقق من صلاحية التوكن {"token","username"}
PUT/api/admin/theme
تغيير الثيم (dark/light) admin {"theme":"dark"}
POST/api/admin/change-password
تغيير كلمة المرور admin {"oldPassword","newPassword"}
POST/api/admin/restart
إعادة تشغيل الخادم مستخدم moh
GET/api/admin/permissions
قائمة بكل الصلاحيات المتاحة (بدون مصادقة)
GET/api/admin/users
قائمة المشرفين admin
POST/api/admin/users
إضافة مشرف superadmin {"username","password","role","permissions"}
PUT/api/admin/users/:username/password
إعادة تعيين كلمة مرور مشرف superadmin
PUT/api/admin/users/:username
تعديل صلاحيات مشرف superadmin
DELETE/api/admin/users/:username
حذف مشرف superadmin
إدارة الشركات (Companies)
superadmin
GET/api/admin/companies
قائمة الشركات
POST/api/admin/companies
إضافة شركة {"name","code"}
PUT/api/admin/companies/:id
تعديل شركة {"name","code"}
DELETE/api/admin/companies/:id
حذف شركة
GET/api/admin/companies/:id/radius
إعدادات راديوس الشركة admin
PUT/api/admin/companies/:id/radius
تعديل إعدادات راديوس {"radiusHost","radiusPort","radiusUser","radiusPass"}
GET/api/admin/companies/:id/mikrotik
إعدادات مايكروتك الشركة admin
PUT/api/admin/companies/:id/mikrotik
تعديل مايكروتك {"mikrotikServers":[{...}]}
GET/api/admin/companies/:id/telegram
إعدادات تلغرام الشركة admin
PUT/api/admin/companies/:id/telegram
تعديل تلغرام {"botToken","adminChatId","chatAdminId","allowChat","allowSales"}
GET/api/admin/companies/:id/auto-disable
إعدادات التعطيل التلقائي accounts_radius_settings
PUT/api/admin/companies/:id/auto-disable
تعديل التعطيل التلقائي {"enabled","interval","expiryDays"}
واتساب — الإعدادات والرسائل (WhatsApp)
admin
GET/api/admin/companies/:id/whatsapp
إعدادات بوت واتساب
PUT/api/admin/companies/:id/whatsapp
تعديل إعدادات واتساب {"botNumber","qrCode","allowChat","autoReply"}
GET/api/whatsapp/status/:companyId
حالة اتصال واتساب (QR code)
GET/api/whatsapp-messages/:companyId
قوالب رسائل واتساب
PUT/api/whatsapp-messages/:companyId
تحديث قوالب رسائل واتساب
POST/api/telegram/webhook/:companyId
Webhook تلغرام (للبوت)
مبيعات تلغرام والبطاقات (Telegram Sales)
admin
GET/api/telegram-sales/:companyId
سجل مبيعات التلغرام
GET/api/cards-stock/:companyId
مخزون البطاقات المتاح حسب الفئة
GET/api/bot-messages/:companyId
رسائل البوت (تلغرام + واتساب)
PUT/api/bot-messages/:companyId
تحديث رسائل البوت
الدردشات (Conversations)
GET/api/conversations
كل المحادثات مع آخر رسالة + عدد الغير مقروء
GET/api/conversations/:user
رسائل محادثة مستخدم معين
DELETE/api/conversations
حذف محادثات {"users":["user1"]}
البطاقات (Cards)
GET/api/cards/categories
قائمة فئات البطاقات
POST/api/cards/categories
إضافة فئة {"name","price"}
DELETE/api/cards/categories/:id
حذف فئة مع كل بطاقاتها
GET/api/cards/types
أنواع البطاقات (unique)
GET/api/cards
كل البطاقات المتاحة
GET/api/cards/find?q=
بحث عن بطاقة (admin) ?q=رقم
GET/api/cards/find-dist?q=
بحث عن بطاقة (موزع) dist-token ?q=رقم
POST/api/cards/find-dist-radius
بحث في الراديوس (موزع) dist-token
POST/api/cards/upload
رفع ملف CSV {"csv":"...","categoryId":"..."}
POST/api/cards/send
إرسال بطاقة لمستخدم {"cardId","user"}
DELETE/api/cards
حذف بطاقات {"cardIds":[]}
DELETE/api/cards/sent
حذف سجل الإرسال
GET/api/cards/sent?from=&to=
سجل الإرسال مع فلترة تاريخ
الحسابات — التصنيفات (Categories)
admin
GET/api/accounts/categories
قائمة التصنيفات
POST/api/accounts/categories
إضافة تصنيف {"name","price"}
PUT/api/accounts/categories/:id
تعديل تصنيف {"name","price","quantity"}
PUT/api/accounts/categories/:id/add-stock
إضافة مخزون {"quantity"}
DELETE/api/accounts/categories/:id
حذف تصنيف
الحسابات — الموزعين (Distributors)
admin
GET/api/accounts/distributors
قائمة الموزعين مع المجموع
GET/api/accounts/distributors/:id/cards-breakdown
توزيع البطاقات للموزع (تفصيل)
POST/api/accounts/distributors
إضافة موزع {"name","phone?","address?","password?"}
PUT/api/accounts/distributors/:id
تعديل موزع
DELETE/api/accounts/distributors/:id
حذف موزع
الحسابات — البيع والدفع والتعديل
admin
POST/api/accounts/sell
بيع لموزع {"categoryId","distributorId","quantity"}
POST/api/accounts/payment
تسجيل دفعة {"distributorId","amount","fundId?"}
POST/api/accounts/adjustment
تعديل رصيد {"distributorId","amount","note?"}
الحسابات — المعاملات (Transactions)
admin
GET/api/accounts/transactions?from=&to=&type=
قائمة المعاملات مع فلترة
DELETE/api/accounts/transactions
حذف معاملات {"ids":[]}
GET/api/accounts/export?from=&to=&type=
تصدير Excel للمبيعات
GET/api/accounts/export-purchases?supplierId=&from=&to=
تصدير Excel للمشتريات
الحسابات — الفواتير (Invoices)
admin
GET/api/accounts/invoices?from=&to=&type=
قائمة الفواتير مع فلترة
POST/api/accounts/invoices
إنشاء فاتورة {"type","items","refName"?,"supplierId"?}
PUT/api/accounts/invoices/:id
تعديل فاتورة (يعكس المخزون)
DELETE/api/accounts/invoices
حذف فواتير + عكس المخزون {"ids":[]}
الحسابات — الموردين والمشتريات (Suppliers & Purchases)
admin
GET/api/accounts/suppliers
قائمة الموردين
POST/api/accounts/suppliers
إضافة مورد {"name","phone?","address?"}
PUT/api/accounts/suppliers/:id
تعديل مورد
DELETE/api/accounts/suppliers
حذف موردين {"ids":[]}
GET/api/accounts/suppliers/:id/transactions
فواتير مورد معين
GET/api/accounts/purchases?supplierId=&from=&to=
فواتير المشتريات
الحسابات — توزيع الأرباح (Profit Distribution)
admin
GET/api/accounts/beneficiaries
قائمة المستفيدين
POST/api/accounts/beneficiaries
إضافة مستفيد {"name","type":"fixed|percentage","value"}
PUT/api/accounts/beneficiaries/:id
تعديل مستفيد
DELETE/api/accounts/beneficiaries
حذف مستفيدين {"ids":[]}
POST/api/accounts/distribute-profits
حساب الأرباح (بدون تثبيت) {"from","to","beneficiaryIds"}
POST/api/accounts/confirm-distribution
تأكيد صرف الأرباح {"from","to","distribution","note?"}
GET/api/accounts/distribution-history
سجل توزيع الأرباح
DELETE/api/accounts/distribution-history/:id
حذف سجل توزيع أرباح
الحسابات — الصناديق المالية (Funds)
admin
GET/api/accounts/funds
قائمة الصناديق المالية
POST/api/accounts/funds
إضافة صندوق {"name","currency","initialBalance"}
PUT/api/accounts/funds/:id
تعديل صندوق
DELETE/api/accounts/funds
حذف صناديق {"ids":[]}
الحسابات — الاشتراكات اليدوية (Manual Subs)
admin
GET/api/accounts/subscriptions
قائمة الاشتراكات اليدوية
POST/api/accounts/subscriptions
إضافة اشتراك {"name","type","startDate","endDate","amount"}
PUT/api/accounts/subscriptions/:id
تعديل اشتراك
DELETE/api/accounts/subscriptions/:id
حذف اشتراك
POST/api/accounts/subscriptions/:id/toggle-payment
تبديل حالة الدفع accounts_subscriptions_toggle_payment
الحسابات — اشتراكات الراديوس (Radius Subs)
admin
GET/api/accounts/subscriptions/radius
قائمة اشتراكات الراديوس
GET/api/accounts/subscriptions/radius/services
الباقات المتاحة
POST/api/accounts/subscriptions/radius
إضافة اشتراك راديوس accounts_subscriptions_radius_add
PUT/api/accounts/subscriptions/radius/:username
تعديل اشتراك راديوس accounts_subscriptions_radius_edit
DELETE/api/accounts/subscriptions/radius/:username
حذف اشتراك راديوس accounts_subscriptions_radius_delete
POST/api/accounts/subscriptions/radius/:username/renew
تجديد اشتراك راديوس accounts_subscriptions_radius_renew
الحسابات — حركات الموزعين (Distributor Logs)
admin
GET/api/accounts/distributor-logs
سجل حركات الموزعين
الحسابات — لوحة التحكم (Dashboard)
admin
GET/api/accounts/dashboard
إحصائيات: المبيعات، المشتريات، الأرباح، الأرصدة
الحسابات — النسخ الاحتياطي (Backups)
admin
GET/api/accounts/backups
قائمة النسخ الاحتياطي
POST/api/accounts/backup
إنشاء نسخة احتياطية {"note"}
GET/api/accounts/backups/:name/download
تحميل نسخة احتياطية
POST/api/accounts/backups/:name/restore
استعادة نسخة احتياطية
DELETE/api/accounts/backups/:name
حذف نسخة احتياطية
GET/api/accounts/backup/drive-export
تصدير نسخة للسحابة (Google Drive)
POST/api/accounts/backups/upload
رفع ملف نسخة احتياطية (multipart)
الموزعين — تسجيل وطلبات (Distributor Portal)
POST/api/accounts/distributor-login
تسجيل دخول الموزع {"name","password"}
GET/api/accounts/distributor-data
بيانات الموزع (رصيد، معاملات) dist-token
PUT/api/accounts/distributor-password
تغيير كلمة المرور dist-token
GET/api/accounts/requests
قائمة الطلبات admin
POST/api/accounts/requests
تقديم طلب (موزع) dist-token
PUT/api/accounts/requests/:id
موافقة/رفض طلب admin
POST/api/mikrotik/search-mac-dist
بحث MAC في المايكروتك (موزع) dist-token
POST/api/cards/disconnect-hotspot-dist
طرد من الهوت سبوت (موزع) dist-token
راديوس — أوامر SSH (RADIUS)
admin
POST/api/radius/execute
تنفيذ أمر SSH {"host","port","username","password","command"}
POST/api/radius/update-card
تحديث حقل في الراديوس accounts_radius_update
POST/api/radius/compare-tables
مقارنة جداول بين راديوس accounts_radius_search
POST/api/radius/transfer-table
نقل جدول بين راديوس accounts_radius_search
مايكروتك (MikroTik)
admin
POST/api/mikrotik/test-connection
اختبار اتصال SSH {"host","port","username","password"}
POST/api/mikrotik/disconnect-user
فصل مستخدم {"user","companyId?"}
POST/api/mikrotik/hotspot-card
بحث/إزالة بطاقة هوت سبوت accounts_mikrotik_kick
POST/api/mikrotik/search-mac
بحث MAC في DHCP accounts_mikrotik_search_mac
GET/api/mikrotik/hotspot-active-count
عدد النشطين حالياً
MIKAPI — وكيل REST للمايكروتك
عام
POST/api/mikapi/rest
وكيل REST {"host","user","pass","path","method?","body?"}
GET/api/mikapi/profiles
قائمة اتصالات المايكروتك المحفوظة
POST/api/mikapi/save-profiles
حفظ اتصال {"name","host","user","pass","port"}
DELETE/api/mikapi/profiles/:id
حذف اتصال
DELETE/api/mikapi/profiles
حذف كل الاتصالات
إعدادات عامة (Utils)
GET/api/health
فحص صحة الخادم
GET/api/company-by-code/:code
البحث عن شركة بالكود
الصفحات الثابتة (Static Pages)
GET/ → /admin.html
الصفحة الرئيسية
GET/chat.html
واجهة الدردشة
GET/customer.html
صفحة الزبون
GET/admin.html
لوحة تحكم المشرف
GET/accounts.html
صفحة الحسابات
GET/distributor.html
صفحة الموزع
GET/api.html
هذه الصفحة
GET/radius.html
صفحة الراديوس
GET/mikrotik.html
صفحة المايكروتك
GET/mikapi.html
صفحة MIKAPI
GET/index.html
الصفحة الترحيبية
أحداث Socket.IO
الاتصال: io("http://<ip>:3000", { transports: ['websocket', 'polling'] })
← العميل → السيرفر
emitjoin_chat
زبون يدخل المحادثة
emitjoin_admin
مشرف يتصل
emituser_message
زبون يرسل رسالة
emitupdate_user
تعديل بيانات زبون
emitadmin_reply
مشرف يرد
emitmark_user_read
تحديد كمقروء
→ السيرفر → العميل
onchat_message
رسالة جديدة
onuser_online
زبون أصبح متصلاً
onuser_offline
زبون غادر
onnew_user_message
رسالة زبون جديدة
onadmin_reply_sent
تأكيد إرسال رد
oncard_sent
تأكيد إرسال بطاقة
onuser_name_changed
تغيير اسم الزبون
onconversations_deleted
حذفت محادثات
ondistributor_request
طلب جديد من موزع