import { getPayload } from 'payload' import { headers } from 'next/headers' import Topnav from '@/components/topnav' import Footer from '@/components/footer' import SubscribeButton from './subscribe-button' import Faq from './faq' import configPromise from '@payload-config' import Link from 'next/link' import { formatNumber, guidesLabel, minutesLabel, MEMBERSHIP_PRICE } from '@/lib/format' import type { Viewer } from '@/lib/viewer' import { freeEarlyAccess } from '@/lib/launch' import NotifyForm from './notify-form' export const dynamic = 'force-dynamic' export const metadata = { title: 'العضوية', description: 'انضم لقائمة الإشعار: وصول مبكر مجاني لكل الأدلة اليوم، وخطة عضوية مستقبلية بـ 10$ شهرياً تضيف ملفات عمل وملخصات للأعضاء.', } /* Member-library samples — real VIP guides, read from the CMS at request time. */ const SAMPLES = [ { slug: 'agent-loop-stop-condition', cover: 'تشريح وكيل ناجح', variant: '', output: 'قالب حالة الوكيل + قائمة فحص قبل التشغيل' }, { slug: 'systematic-model-eval', cover: 'قِس قبل أن تبدّل', variant: 'guide-cover-light', output: 'مجموعة صغيرة من اختبارات التقييم قابلة لإعادة التشغيل' }, { slug: 'prototype-to-production', cover: 'من التجربة إلى الإنتاج', variant: '', output: 'قائمة قرارات ما قبل الإطلاق' }, ] const FAQ_ITEMS = [ { q: 'هل أستطيع الإلغاء في أي وقت؟', a: 'نعم. يتوقف التجديد التالي، ويستمر وصولك حتى نهاية الفترة المدفوعة.' }, { q: 'هل المحتوى مناسب للمبتدئ؟', a: 'كل دليل يوضح مستواه. ابدأ بالأدلة المجانية في مسار الأساسيات، ثم انتقل إلى الوكلاء والأتمتة.' }, { q: 'هل توجد شهادة إكمال؟', a: 'لا حالياً. تركيز أنور بآي على التطبيق والملفات العملية، لا على شهادات الحضور.' }, { q: 'هل يمكنني استخدام الملفات في عملي؟', a: 'نعم للاستخدام الشخصي والمهني داخل مشاريعك. إعادة بيع الملفات أو نشرها كما هي غير مشمول.' }, ] export default async function SubscriptionPage() { const payload = await getPayload({ config: configPromise }) const { user } = await payload.auth({ headers: await headers() }) const role = (user?.role as string) || null const entitled = role === 'vip' || role === 'admin' const early = freeEarlyAccess() const viewer: Viewer = user ? { email: user.email, role: role ?? 'free' } : null const { docs: published } = await payload.find({ collection: 'posts', where: { status: { equals: 'published' } }, depth: 0, limit: 200, select: { title: true, slug: true, dek: true, category: true, readingMinutes: true, access: true }, }) const freeCount = published.filter(doc => doc.access === 'free').length const memberCount = published.length - freeCount const samples = SAMPLES.flatMap(sample => { const post = published.find(doc => doc.slug === sample.slug) return post ? [{ ...sample, post }] : [] }) return (
{early && (

وصول مبكر مجاني

يمكنك قراءة المحتوى المنشور خلال فترة الوصول المبكر دون بطاقة دفع. نراجع إطلاق العضوية بعد نحو أسبوعين، وقد تمتد الفترة إذا لم تكتمل خدمة الدفع. بعض المواد محددة للعضوية مستقبلاً، وسنوضح ذلك قبل تفعيلها. لن يتم إنشاء اشتراك أو تحصيل مبلغ تلقائياً.

)}

كل الأدلة كاملة، مع ملفات العمل.

الأدلة المجانية تعرّفك بالمفاهيم. العضوية تفتح الأدلة المعمّقة التي تأخذك من التجربة إلى نظام يعمل، مع القوالب وقوائم الفحص التي نستخدمها فعلاً.

  • {guidesLabel(memberCount)} للأعضاءتُضاف أدلة جديدة كل شهر
  • ملفات قابلة للتنزيلقوالب حالة، قوائم فحص، سجلات أخطاء
  • نقاش مع الفريقاسأل في تعليقات أي دليل

عضوية فردية

{MEMBERSHIP_PRICE}شهرياً

{early ?

سعر مستقبلي — غير قابل للشراء حالياً.

:

تلغي متى شئت، ويبقى حسابك المجاني ومحفوظاتك.

}

{early ? 'لن يتم إنشاء اشتراك أو تحصيل مبلغ تلقائياً.' : 'الدفع عبر Stripe. لا نحفظ بيانات بطاقتك.'}

{samples.length > 0 && (

من أدلة الأعضاء

كل دليل يبدأ بمشكلة حقيقية وينتهي بشيء تشغّله. اقرأ المقدمة مجاناً قبل أن تقرر.

    {samples.map(({ slug, output, post }) => (
  • {post.category}{minutesLabel(post.readingMinutes)} {post.title} {post.dek} ما تخرج به{output}
  • ))}
)}

الفرق بين الحساب المجاني والعضوية

الميزةحساب مجانيالعضوية
الأدلة المجانية ({formatNumber(freeCount)})كاملةكاملة
أدلة الأعضاء ({formatNumber(memberCount)})المقدمة فقطكاملة
ملفات العمل—تنزيل كامل
التعليق والنقاشعلى الأدلة المجانيةعلى كل الأدلة
حفظ الأدلة للعودة لاحقاً—متاح
{/* L-09: FAQPage structured data mirrors the visible FAQ. */}