الهدف
بعد هالدرس تقدر تبني لوحة إدارة محمية بالـ role، تعرض قائمة المستخدمين مع بحث وفلتر، وتنفّذ عمليات الحظر والرفع.
ليش هذا الحين؟
الـ webhook شغّال والمستخدمين يدفعون — الحين تحتاج أدوات داخلية للتحكم. بدون admin panel، كل مشكلة مستخدم تحتاج تدخل مباشر في قاعدة البيانات. هذا بطيء وخطير. لوحة الإدارة هي عينك داخل التطبيق.
الفكرة
الـ admin panel فيه ثلاثة مبادئ أساسية:
الحماية بالـ Role: مو كافي إنك تخفي الرابط — المفروض تتحقق من الـ role في الـ server. أي client-side check يقدر المستخدم يتجاوزه.
المفروض تسجّل كل عملية: كل حذف أو حظر أو تعديل — اكتب في الـ DB مين سوّاه ومتى. هذا مو اختياري، هذا audit log ضروري.
Clerk كـ shortcut: لو ما تبي تبني من الصفر، Clerk يجي مع admin dashboard جاهز. بس لما تبنيه بيدك تفهم شنو يصير من تحت.
القائمة بـ pagination: ما تسحب كل المستخدمين مرة وحدة — استخدم take وskip في Prisma.
البحث بـ contains: Prisma يدعم full-text search بسيط بـ mode: "insensitive" — يكفي للبداية.