import type {DocArticle} from './types';

export const adminDocs: DocArticle[] = [
  {
    slug:'admin-tokenization',group:'admin',title:'بررسی درخواست‌های توکنایزیشن',status:'configured',audience:'مالک پنل و کارشناسان مجاز بررسی',
    description:'پرونده دارایی، مدارک خصوصی، سه ارزیابی مستقل و پیشنهاد نسخه‌دار برای کیف پول داخلی پلانک.',
    sections:[
      {id:'availability',title:'ثبت و بررسی فعال؛ صدور نیازمند تنظیم است',paragraphs:['بخش «درخواست‌های توکنایزیشن» در پنل مدیریت و نشانی ?section=tokenization پیاده‌سازی شده است. کاربر مدیریت باید نقش مالک داشته باشد؛ ورود و مجوز دوباره در API و پایگاه داده بررسی می‌شوند.','مهاجرت توکنایزیشن و فضای خصوصی مدارک در محیط تأییدشدهٔ پلانک در تاریخ ۲۰۲۶/۰۹/۲۴ فعال و کنترل دسترسی آن‌ها بررسی شد. نصب در محیط دیگر همچنان به اجرای مهاجرت و اتصال درست سایت مشتری و پنل به پایگاه داده نیاز دارد. تنظیم شبکه، قرارداد و کیف پول امانی برای صدور واقعی جداگانه لازم است.']},
      {id:'queue',title:'صف و اطلاعات پرونده',paragraphs:['فهرست بر اساس درخواست‌های دریافت‌شده از سرویس ساخته می‌شود و جست‌وجوی عنوان یا شناسه پیگیری و فیلتر وضعیت دارد. پرونده‌های پیش‌نویس مشتری وارد صف مدیریت نمی‌شوند.','هر پرونده عنوان، شناسه، نسخه، زمان ثبت، نوع دارایی و فیلدهای اختصاصی همان نوع را نشان می‌دهد. تعریف مشترک، ۲۰ نوع دارایی مشهود و نامشهود را پوشش می‌دهد.','مقادیر مالی و تعداد توکن به‌صورت رشته دقیق نگهداری و در رابط با ارقام فارسی و جداکننده سه‌رقمی نمایش داده می‌شوند. مقدار ثبت‌نشده در جزئیات، به‌جای ساختن ارزش مالی، مشخص می‌شود.']},
      {id:'documents',title:'مدارک خصوصی و نتیجه هر سند',paragraphs:['برای هر نوع دارایی، مدارک الزامی و تکمیلی مشخص است. فایل‌ها فقط از مسیر خصوصی با کنترل دسترسی قابل دریافت‌اند. نسخه جاری PDF، JPG و PNG با حداکثر ۱۰ مگابایت برای هر فایل را می‌پذیرد.','کارشناس برای هر سند نتیجه تأیید، نیاز به اصلاح یا رد و یک پیام قابل مشاهده برای مشتری ثبت می‌کند. تأیید یک مدرک، جایگزین تأیید حقوقی، مالی و فنی پرونده نیست.','کنترل دسترسی فایل در پایگاه داده و فضای ذخیره انجام می‌شود. لینک مدرک، لینک عمومی پروژه یا رسانه منتشرشده نیست.']},
      {id:'reviews',title:'سه ارزیابی مستقل',table:{headers:['ارزیابی','موضوع'],rows:[['حقوقی و مالکیت','مالکیت، اختیار اقدام، مجوزها و استعلام‌های لازم'],['مالی','ارزش‌گذاری، اسناد مالی و شرایط اقتصادی دارایی'],['فنی','مشخصات دارایی و امکان عرضه توکن']]},paragraphs:['هر ارزیابی نتیجه مستقل دارد. پیام عمومی در پرونده مشتری نمایش داده می‌شود؛ یادداشت داخلی در پاسخ مخصوص مدیریت نگهداری و از پاسخ مشتری حذف می‌شود.','ثبت نتیجه روی ارزیابی یا سند، با ارسال کل پرونده برای اصلاح متفاوت است. برای بازگشت پرونده، اقدام «درخواست اصلاح» و برای توقف آن، اقدام «رد پرونده» با توضیح مشخص وجود دارد.','وقتی مشتری پرونده اصلاح‌شده را دوباره ارسال کند، ارزیابی‌ها و نتایج مدارک برای بررسی مجدد بازنشانی می‌شوند.']},
      {id:'proposal',title:'طراحی پیشنهاد توکنومیکس',paragraphs:['فرم پیشنهاد زمانی فعال می‌شود که هر سه ارزیابی و تمام مدارک الزامی تأیید شده باشند. همین شرط در سرور نیز اعمال می‌شود.','نام، نماد، تعداد کل، اعشار، قیمت واحد به ریال، شبکه و شناسه شبکه، حقوق دارندگان، سیاست انتقال، بازخرید، ریسک‌ها و تخصیص‌ها در پیشنهاد مشخص می‌شوند. مقصد این جریان ثابت است: کیف پول داخلی صاحب درخواست در پلانک.','تعداد توکن باید مثبت و با اعشار تعیین‌شده سازگار باشد. قیمت ریالی عدد صحیح مثبت است. مجموع درصد تخصیص‌ها باید دقیقاً ۱۰۰ باشد؛ قفل هر تخصیص به ماه ثبت می‌شود.','ارسال پیشنهاد یک نسخه مشخص ایجاد می‌کند و پرونده وارد وضعیت انتظار پذیرش مشتری می‌شود. پنل نمی‌تواند پذیرش را به‌جای مشتری ثبت کند.']},
      {id:'versioning',title:'تغییر هم‌زمان و پذیرش مشتری',paragraphs:['همه نوشتن‌های مدیریتی شناسه درخواست و نسخه فعلی را ارسال می‌کنند. تعارض نسخه با وضعیت ۴۰۹ برمی‌گردد؛ رابط نتیجه را موفق نشان نمی‌دهد و بارگذاری نسخه تازه را پیشنهاد می‌کند.','تا پذیرش مشتری، می‌توان پرونده را برای اصلاح برگرداند. پذیرش فقط نسخه جاری پیشنهاد را می‌پذیرد و نسخه پیشنهاد، اطلاعات دارایی و مدارک پذیرفته‌شده را در سرور تثبیت می‌کند.','پس از پذیرش، پرونده وارد صف صدور می‌شود و تغییر مدیریتی یا ویرایش مشتری برای آن وضعیت مجاز نیست. وضعیت و زمان پذیرش ثبت‌شده در پنل نمایش داده می‌شوند.']},
      {id:'issuance',title:'صدور و موجودی کیف پول',paragraphs:['پذیرش مشتری یک کار پایدار برای صدور ایجاد می‌کند. این وضعیت به‌تنهایی توکن صادرشده، تراکنش موفق یا موجودی کیف پول نیست.','مسیر نهایی‌سازی برای سرویس مورد اعتماد است و برای مرورگر مشتری یا مدیر قابل اجرا نیست. این مسیر باید نتیجه واقعی شبکه، نسخه پذیرفته‌شده، قرارداد، مقصد و تعداد توکن را تطبیق دهد.','ثبت موجودی داخلی و تراکنش مربوط در یک عملیات پایگاه داده و با شناسه‌های یکتا انجام می‌شود تا همان صدور دوباره اعتباردهی نشود. در صورت برخورد نماد با موقعیت موجود، دارایی‌های نامرتبط با هم ادغام نمی‌شوند.','تا راه‌اندازی و اجرای تأییدکننده واقعی، درخواست در انتظار صدور باقی می‌ماند. دکمه «صدور موفق» یا رسید ساختگی در پنل وجود ندارد. عرضه خودکار در بازار یا اجرای خرید، فروش، استیک و وام از این بخش انجام نمی‌شود.']},
      {id:'routes',title:'قرارداد API مدیریت',table:{headers:['روش و مسیر','ورودی یا پاسخ','دسترسی'],rows:[['GET /api/tokenization','{requests: TokenizationAdminRequest[]}','مالک مدیریت'],['POST /api/tokenization','action + id + version → {request}','مالک و همان مبدأ'],['GET /api/tokenization/documents','?id=UUID&document=UUID → فایل خصوصی','مالک مدیریت؛ بدون کش']]},paragraphs:['actionهای مدیریتی عبارت‌اند از review، document_review، propose، request_changes و reject. review شناسه لایه، نتیجه، message و internal_note اختیاری دارد؛ document_review شناسه سند، نتیجه و message دارد. propose شامل شیء tokenomics است.','خطاهای دسترسی و اعتبارسنجی نتیجه موفق ایجاد نمی‌کنند. نبود سرویس پایگاه داده با پیام فعال نبودن سرویس اعلام می‌شود. احراز هویت، فعال‌سازی زیرساخت و صدور زنده با مشاهده مستند اثبات نمی‌شوند.']}
    ],sources:['planck-admin/components/tokenization-review.tsx','planck-admin/components/admin-app.tsx','planck-admin/lib/tokenization.ts','planck-marketplace/supabase/migrations/202609240001_asset_tokenization.sql','planck-marketplace/lib/tokenization-files.ts'],related:['tokenization','tokenomics','admin-auth','api-admin','admin-operations']
  },
  {
    slug:'admin-overview',group:'admin',title:'راهنمای پنل مدیریت پلانک',status:'implemented',audience:'مالک، ناشر و ویراستار',
    description:'بخش‌های پنل، وظایف اعضای تیم و مرز مدیریت مارکت‌پلیس.',
    sections:[
      {id:'scope',title:'وظیفه پنل',paragraphs:['پنل مدیریت مارکت‌پلیس برنامه‌ای مستقل از سایت عمومی است و رابط، API، ساخت و جلسه ورود جدا دارد. پروژه‌ها و محتوای قابل انتشار، بررسی احراز هویت، تنظیم استعلام‌ها، پاداش دعوت و اتصال‌های بازار از این پنل مدیریت می‌شوند.','این برنامه همان Admin Main نیست. سرویس آدرس‌های والت در بخش اتصال‌ها معرفی می‌شود، اما مدیریت کلید خصوصی، اجرای معامله یا انتقال دارایی در این پنل پیاده‌سازی نشده است.']},
      {id:'modules',title:'بخش‌های موجود',table:{headers:['بخش','کارکرد'],rows:[['پروژه‌ها','ایجاد، جست‌وجو، ویرایش و تعیین وضعیت انتشار'],['درخواست‌های توکنایزیشن','مدارک خصوصی، ارزیابی حقوقی، مالی و فنی و پیشنهاد توکنومیکس'],['ظاهر و هیرو','متن، لوگو، پس‌زمینه و پیش‌نمایش'],['محتوا و زبان‌ها','منوها، فوتر، لینک‌ها، پرسش‌ها و ورود ترجمه'],['اتصال‌ها','تنظیم والکس، Ondo و سیاست نرخ تبدیل'],['دعوت و پاداش‌ها','مبلغ دعوت، سهم کارمزد و آمار'],['احراز هویت','بررسی پرونده، مدارک، سطح احراز و استعلام'],['استعلام‌ها','تنظیم ارائه‌دهنده، کلید و نمایش آمادگی'],['تاریخچه تغییرات','رویدادهای ثبت‌شده پروژه‌ها و محتوا']]}},
      {id:'roles',title:'نقش‌ها',table:{headers:['نقش','اختیار تعریف‌شده'],rows:[['مالک / owner','مدیریت محتوا و پروژه؛ بررسی هویت؛ تنظیم کلیدها، نرخ تبدیل و پاداش'],['ناشر / publisher','انتشار پروژه و محتوای سایت و مشاهده تاریخچه'],['ویراستار / editor','ایجاد و ویرایش پیش‌نویس؛ بدون انتشار یا تغییر محتوای مشترک']]},paragraphs:['جلسه و نقش در API دوباره بررسی می‌شوند و سیاست‌های پایگاه داده باید نصب باشند. نمایش یک عنوان در منوی پنل، به معنی مجاز بودن تمام عملیات آن نیست.']},
      {id:'workflow',title:'گردش کار انتشار',bullets:['پروژه را به‌صورت پیش‌نویس ایجاد و معرفی، قیمت، مدت، ظرفیت و مدارک را تکمیل کنید.','اگر پروژه نمونه است، وضعیت نمونه را روشن نگه دارید. توضیحات و ریسک‌ها را قبل از انتشار بازبینی کنید.','مالک یا ناشر وضعیت انتشار را تعیین و ذخیره می‌کند. اختلاف نسخه نیاز به تازه‌سازی دارد.','متن‌ها و ظاهر از بخش محتوا ذخیره می‌شوند؛ کلیدها و سیاست نرخ تبدیل مسیر مستقل دارند.']},
      {id:'preview',title:'پیش‌نمایش و عملیات واقعی',paragraphs:['پیش‌نمایش فقط هنگام نبود اتصال پایگاه داده و فعال بودن گزینه پیش‌نمایش اجرا می‌شود. فرم‌ها با داده نمونه قابل مشاهده‌اند، اما ذخیره، انتشار و بارگذاری واقعی انجام نمی‌شود.','اجرای واقعی به اتصال پایگاه داده، عضویت مجاز، تکمیل ورود و آمادگی سرویس مربوط نیاز دارد. وجود فرم یا دکمه به معنی آماده بودن ارائه‌دهنده نیست.']}
    ],sources:['planck-admin/README.md','planck-admin/app/page.tsx','planck-admin/components/admin-app.tsx','planck-admin/lib/server.ts'],related:['admin-catalog','admin-tokenization','admin-auth','admin-operations']
  },
  {
    slug:'admin-catalog',group:'admin',title:'مدیریت دارایی‌ها و محتوای سایت',status:'implemented',audience:'مدیر محتوا و ناشر',description:'اطلاعات پروژه، قواعد انتشار، نمودار قیمت، رسانه و محتوای سایت.',
    sections:[
      {id:'model',title:'اطلاعات هر پروژه',paragraphs:['پروژه شناسه، نشانی اختصاصی و نماد دارد و در یکی از دسته‌های مشهود، نامشهود یا طرح سرمایه‌گذاری قرار می‌گیرد. وضعیت آن پیش‌نویس، منتشرشده یا آرشیوشده است؛ رابط حذف مخرب پروژه ارائه نمی‌کند.'],table:{headers:['گروه','فیلدها'],rows:[['معرفی','عنوان، زیرعنوان، توضیح، موقعیت یا نوع دارایی، ریسک'],['مالی','قیمت واحد به ریال، بازده، مدت ماهانه، تعداد کل و تأمین‌شده'],['بازار','آیکون توکن، قیمت ۲۴ ساعت قبل، زمان ثبت و نمودار'],['انتشار','وضعیت، پرچم نمونه، ترتیب، تصویر و لینک مدارک']]}},
      {id:'validation',title:'قواعد ثبت',bullets:['عنوان فارسی الزامی است. نشانی اختصاصی حروف کوچک لاتین، عدد و خط تیره می‌پذیرد و حداکثر ۱۰۰ نویسه دارد. نماد ۲ تا ۱۶ حرف یا عدد است.','قیمت مثبت، تعداد تأمین‌شده حداکثر برابر ظرفیت و مدت عدد صحیح بین ۱ تا ۶۰۰ ماه است.','انتشار به توضیح فارسی حداقل ۳۰ نویسه و ریسک فارسی حداقل ۲۰ نویسه نیاز دارد. هر پروژه حداکثر ۳۰ سند دارد.','نسخه پروژه هنگام ویرایش ارسال می‌شود تا تغییر جدید مدیر دیگر بازنویسی نشود. پرچم نمونه مستقل از وضعیت انتشار است.']},
      {id:'pricing',title:'قیمت و نمودار',paragraphs:['قیمت پروژه به ریال وارد و در پنل به تومان نمایش داده می‌شود؛ هر تومان دقیقاً ۱۰ ریال است. بازده پروژه مستقل از تغییر قیمت ۲۴ ساعته نگهداری می‌شود.','قیمت ۲۴ ساعت قبل به زمان ثبت معتبر نیاز دارد. نمودار اختیاری از ۲ تا ۹۶ قیمت صحیح مثبت تشکیل می‌شود و ابتدا و انتهای آن باید با قیمت قدیم و فعلی برابر باشد. تغییر قیمت در فرم، نمودار ناسازگار را پاک می‌کند.','این فرم رکورد پروژه را ویرایش می‌کند و جایگزین دریافت خودکار داده دارایی‌های متصل به بازار نیست.']},
      {id:'cms',title:'هیرو، متن‌ها و زبان‌ها',paragraphs:['عنوان کوتاه، تیتر اصلی، خط دوم، توضیح و متن زیر دکمه‌های هیرو قابل ویرایش‌اند. پس‌زمینه از انیمیشن، تصویر یا ویدیو انتخاب می‌شود؛ ویدیو تصویر جایگزین و نمایش مدار تنظیم جدا دارد.','لوگو، عنوان چهار منوی اصلی، فوتر، نشانی اپلیکیشن و پذیرش توکنایزیشن و حداکثر ۳۰ پرسش متداول قابل مدیریت‌اند.','ساختار ترجمه برای فارسی، انگلیسی و عربی آماده است؛ رابط منتشرشده فعلاً فقط فارسی را می‌پذیرد. ورود ترجمه به‌تنهایی زبان جدید سایت را فعال نمی‌کند.']},
      {id:'media',title:'رسانه‌ها و اسناد',paragraphs:['JPG، PNG، WebP و MP4 تا ۲۵ مگابایت بارگذاری می‌شوند و نوع فایل روی سرور نیز بررسی می‌شود. فایل جدید نام یکتا دارد و فایل قبلی را بازنویسی نمی‌کند.','رسانه معرفی پروژه در فضای عمومی رسانه ذخیره می‌شود؛ مدارک هویتی فضای خصوصی جدا دارند. اسناد پروژه در فرم به‌صورت عنوان و لینک ثبت می‌شوند. نشانی‌ها باید HTTPS یا از مسیر مجاز تصاویر داخلی باشند.','تصویر نمونه یا مفهومی، مدرک وجود و ارزش دارایی واقعی نیست.']}
    ],sources:['planck-admin/components/admin-app.tsx','planck-admin/lib/catalog.ts','planck-admin/lib/validation.ts','planck-admin/app/api/projects/route.ts','planck-admin/app/api/content/route.ts','planck-admin/app/api/media/route.ts','planck-admin/ASSETS.md'],related:['admin-overview','api-admin','admin-identity']
  },
  {
    slug:'admin-identity',group:'admin',title:'بررسی احراز هویت کاربران',status:'implemented',audience:'مالک و مسئول مجاز احراز هویت',description:'پرونده‌ها، بررسی مدارک، سطح احراز و نتایج استعلام.',
    sections:[
      {id:'access',title:'دسترسی به پرونده',paragraphs:['مشاهده و بررسی اطلاعات هویتی فقط برای مالک واردشده فعال است. پیش‌نمایش مدارک واقعی نشان نمی‌دهد. فهرست، نام، پایان کد ملی، زمان ارسال، وضعیت، سطح تأییدشده و مرحله بررسی را نمایش می‌دهد.','فیلتر وضعیت و باز کردن جزئیات در دسترس است. رابط فهرست را به‌عنوان آخرین ۱۰۰ درخواست ثبت‌شده معرفی می‌کند و داده‌ها از سرویس پایگاه داده می‌آیند.']},
      {id:'levels',title:'سطح و مرحله احراز',table:{headers:['مفهوم','الزام'],rows:[['سطح پایه','پیش از تکمیل احراز موردنیاز'],['هویتی / اولیه','مدارک تأییدشده، تطبیق هویت و مالکیت موبایل'],['هویتی و بانکی / کامل','شرایط سطح اولیه همراه تأیید حداقل یک حساب بانکی'],['مراحل پرونده','اطلاعات، مدارک، استعلام‌ها، تأیید نهایی']]},paragraphs:['نوع احراز و مرحله جداگانه ذخیره می‌شوند. انتخاب مرحله نهایی جایگزین شواهد لازم نیست؛ تکمیل مدارک و استعلام‌های سطح انتخابی در سرویس پایگاه داده کنترل می‌شود.']},
      {id:'documents',title:'بررسی مدارک توسط مدیر',paragraphs:['جزئیات پرونده اطلاعات هویتی، نشانی، موبایل تأییدشده و تاریخ تولد مورد استفاده در استعلام را نشان می‌دهد. تصویر کارت و عکس همراه کد اختصاصی از مسیر خصوصی دریافت می‌شوند.'],bullets:['وضوح چهره و تطبیق آن با کارت بررسی می‌شود.','خوانایی کارت و مطابقت مشخصات با فرم بررسی می‌شود.','وجود کد اختصاصی و عبارت احراز هویت روی کاغذ بررسی می‌شود.','بازگرداندن مدارک برای اصلاح به توضیح مدیر نیاز دارد. تأیید عکس‌ها جایگزین نتیجه استعلام نیست.']},
      {id:'checks',title:'اجرای استعلام و نتیجه',paragraphs:['تطبیق هویت، مالکیت موبایل و مالکیت حساب بانکی نتیجه مستقل دارند. انتظار اتصال، انتظار پاسخ، تأیید تطبیق، عدم تطبیق و خطای استعلام جدا نمایش داده می‌شوند.','مدیر سرویس آماده مرتبط را انتخاب و استعلام را اجرا می‌کند. سرویس باید کلید و اتصال آماده داشته باشد. تنظیمات تغییرکرده نوع احراز ابتدا باید ذخیره شوند.','زمان بررسی و شناسه پیگیری در صورت وجود نمایش داده می‌شوند. تأیید بانکی متعلق به همان حساب است و از تأیید عکس‌های هویتی نتیجه نمی‌شود.']},
      {id:'privacy',title:'مدارک خصوصی و آمادگی اجرا',paragraphs:['تصاویر از مسیر احرازشده اختصاصی، بدون کش دریافت می‌شوند. JPEG، PNG و WebP پشتیبانی می‌شوند و سقف فایل هویتی ۵ مگابایت در نظر گرفته شده است.','اجرای واقعی به پرونده معتبر، رضایت و شواهد لازم، نصب سرویس‌های پایگاه داده و اعتبار ارائه‌دهنده وابسته است. گزارش راه‌اندازی تاریخی وضعیت امروز یک پرونده را اثبات نمی‌کند.'],note:{kind:'info',title:'حریم خصوصی',text:'این مستند هیچ تصویر، مشخصات فردی، کلید یا نتیجه واقعی کاربر را منتشر نمی‌کند.'}}
    ],sources:['planck-admin/components/identity-review.tsx','planck-admin/lib/identity.ts','planck-admin/lib/identity-files.ts','planck-admin/lib/identity-server.ts','planck-admin/app/api/identity/route.ts','planck-admin/app/api/identity/photo/route.ts'],related:['admin-inquiries','admin-auth','api-admin']
  },
  {
    slug:'admin-inquiries',group:'admin',title:'تنظیم سرویس‌های استعلام',status:'implemented',audience:'مالک پنل',description:'ثبت ارائه‌دهنده و کلید و تفاوت تنظیم سرویس با آماده بودن اجرای آن.',
    sections:[
      {id:'catalog',title:'فهرست سرویس‌ها',paragraphs:['سرویس‌های پایگاه داده در گروه‌های هویت، بانک و اعتبار، نشانی و موقعیت، مالیات و امور قضایی، خودرو، ابزارها و سایر استعلام‌ها نمایش داده می‌شوند. وجود نام یک سرویس در گروه‌بندی به معنی آماده بودن اتصال آن نیست.','عنوان، حضور کلید و وضعیت آماده اجرا، متوقف، در انتظار کلید، فعال‌سازی یا مستندات نمایش داده می‌شود. والکس و Ondo در بخش اتصال‌ها مدیریت می‌شوند.']},
      {id:'settings',title:'ثبت مشخصات و کلید',paragraphs:['فرم عنوان، شناسه، نوع استعلام، ارائه‌دهنده، نشانی و کادر رمزدار کلید دارد. شناسه سرویس موجود ثابت است؛ نوع از هویت، مالکیت موبایل، مالکیت بانکی یا سایر انتخاب می‌شود.','کلید ذخیره‌شده نمایش داده نمی‌شود. خالی گذاشتن کادر سرویس موجود می‌تواند کلید فعلی را حفظ کند. ذخیره نسخه‌دار است و تغییر هم‌زمان را تشخیص می‌دهد.','نشانی باید HTTPS و بدون نام کاربری، رمز، پارامتر یا بخش اضافی باشد. کلید فقط در فیلد اختصاصی قرار می‌گیرد.']},
      {id:'adapters',title:'اتصال‌های شناخته‌شده',table:{headers:['سرویس','کاربرد و وضعیت'],rows:[['ثبت‌احوال شبانیک','تطبیق مشخصات و تاریخ تولد؛ راهنما و مسیر اجرای هویتی موجود'],['شاهکار شبانیک','تطبیق موبایل تأییدشده و کد ملی؛ راهنما و مسیر اجرا موجود'],['تطبیق شبا با کد ملی','مالکیت حساب بانکی؛ انتخاب سرویس آماده و اجرای بررسی'],['تبدیل کارت به حساب و شبا','راهنمای کلید برای جریان ثبت حساب بانکی'],['سایر سرویس‌ها','قابل ثبت در فهرست؛ ثبت کلید به‌تنهایی اتصال اجرایی ایجاد نمی‌کند']]}},
      {id:'execution',title:'ذخیره تنظیمات و اجرای استعلام',paragraphs:['ذخیره فرم فقط پیکربندی را ثبت می‌کند و استعلام یک کاربر را اجرا نمی‌کند. تطبیق هویت، موبایل یا بانک از صفحه پرونده و با انتخاب سرویس آماده اجرا می‌شود.','مسیر اجرا شناسه استعلام و سرویس را می‌پذیرد؛ اطلاعات لازم از پرونده مرتبط توسط سرویس پایگاه داده تأمین می‌شود. نتیجه مثبت، عدم تطبیق و خطای سرویس جدا نمایش داده می‌شوند.']},
      {id:'requirements',title:'پیش‌نیازهای راه‌اندازی',bullets:['مهاجرت و سیاست‌های دسترسی سرویس باید نصب باشد.','کلید و مجوز هر محصول ارائه‌دهنده جداگانه تأمین می‌شود.','تغییر ارائه‌دهنده به قرارداد سازگار نیاز دارد؛ وارد کردن URL به‌تنهایی اجرای دلخواه ایجاد نمی‌کند.','در نبود تابع اجرایی پایگاه داده، API آماده نبودن سرویس را اعلام می‌کند.'],note:{kind:'info',title:'دامنه بررسی',text:'برای این مستند هیچ استعلام واقعی ارسال نشده و وضعیت زنده کلیدها بررسی نشده است.'}}
    ],sources:['planck-admin/components/inquiry-settings.tsx','planck-admin/lib/inquiries.ts','planck-admin/lib/inquiry-catalog.ts','planck-admin/app/api/inquiries/route.ts','planck-admin/app/api/inquiries/run/route.ts','planck-admin/SHABANIC_IDENTITY_INQUIRIES.md'],related:['admin-identity','api-providers','admin-operations']
  },
  {
    slug:'admin-referrals',group:'admin',title:'مدیریت دعوت و پاداش‌ها',status:'implemented',audience:'مالک و اعضای مجاز پنل',description:'تنظیم پاداش دعوت، سهم کارمزد و مشاهده وضعیت محاسبه و پرداخت.',
    sections:[
      {id:'program',title:'تنظیم برنامه',paragraphs:['فعال بودن محاسبه پاداش‌های جدید، مبلغ ثابت دعوت واجد شرایط و سهم دعوت‌کننده از کارمزد معاملات قابل تنظیم است. فقط مالک می‌تواند نرخ‌ها را تغییر دهد.','داده برنامه از پایگاه داده خوانده می‌شود. حالت پیش‌نمایش، ذخیره واقعی تنظیمات پاداش را انجام نمی‌دهد.']},
      {id:'rates',title:'واحدها و محدوده',table:{headers:['تنظیم','قاعده'],rows:[['پاداش ثابت','عدد صحیح از صفر تا ۱۰۰ میلیون تومان'],['سهم کارمزد','صفر تا ۱۰۰ درصد با حداکثر دو رقم اعشار'],['ذخیره مبلغ','تبدیل دقیق تومان به ریال'],['ذخیره درصد','تبدیل به واحد یک‌صدم درصد'],['نسخه','عدد صحیح مثبت؛ تعارض نیاز به تازه‌سازی دارد']]}},
      {id:'eligibility',title:'شرایط معرفی‌شده در رابط',paragraphs:['پاداش ثابت پس از احراز هویت و اولین معامله واقعی تسویه‌شده دوست تعریف شده است. سهم معاملاتی از کارمزد دریافت‌شده محاسبه می‌شود، نه مبلغ کل معامله.','رابط معاملات نمایشی و تسویه‌نشده را فاقد پاداش معرفی می‌کند. هر معامله تنها یک بار باید محاسبه شود و نرخ نسخه تنظیمات همراه پاداش بماند؛ تغییر نرخ جدید، پاداش قبلی را تغییر نمی‌دهد.']},
      {id:'statistics',title:'آمار و وضعیت پرداخت',paragraphs:['دعوت‌های ثبت‌شده، دوستان واجد شرایط، مبلغ در انتظار پرداخت و مبلغ پرداخت‌شده از سرویس برنامه دریافت و نمایش داده می‌شوند.','محاسبه پاداش به‌تنهایی موجودی قابل برداشت ایجاد نمی‌کند. پرداخت‌شدن وابسته به تراکنش پاداش تأییدشده است. این بخش دکمه انتقال یا برداشت وجه ندارد.']},
      {id:'boundaries',title:'مرز قابلیت',paragraphs:['قواعد رابط برای کد دعوت شامل پیشوند plk، حداکثر ۲۰ کد در هر حساب و ثبت ارتباط دعوت هنگام ساخت حساب است. اجرای مالی به سرویس‌های مرتبط و جریان معامله واقعی وابسته است.','ثبت نرخ در پنل، فعال شدن معامله یا پرداخت خودکار را ثابت نمی‌کند. این مقاله قرارداد مدیریت را توضیح می‌دهد و مبلغ یا سابقه واقعی کاربران را منتشر نمی‌کند.']}
    ],sources:['planck-admin/components/referral-settings.tsx','planck-admin/lib/referrals.ts','planck-admin/app/api/referrals/route.ts','planck-admin/tests/referrals.test.mjs'],related:['api-admin','admin-overview','admin-operations']
  },
  {
    slug:'wallex',group:'admin',title:'اتصال بازار والکس',status:'implemented',audience:'مالک پنل و تیم اتصال بازار',description:'محل ثبت کلید API و رابطه آن با داده‌های عمومی بازار.',
    sections:[
      {id:'purpose',title:'کاربرد اتصال',paragraphs:['کارت والکس در بخش اتصال‌ها برای تتر، تترگلد و نمادهای نفت، مس و نقره دیجیتال در نظر گرفته شده است. نمادهای معرفی‌شده USDT، XAUT، USOON، COPXON و SLVON و واحد بازار TMN هستند.','متن رابط تصریح می‌کند که قیمت، حجم، نمودار و سفارش‌های عمومی بازار به کلید نیاز ندارند. کلید ذخیره‌شده برای درخواست عمومی ارسال نمی‌شود.']},
      {id:'key',title:'ثبت کلید',paragraphs:['مالک کلید را در کادر رمزدار وارد و ذخیره می‌کند. ورودی پس از ذخیره پاک می‌شود و وضعیت حضور کلید نمایش داده می‌شود.','پاسخ تنظیمات فقط حضور کلید، نسخه و زمان تغییر دارد. مقدار کلید موجود بازگردانده نمی‌شود. قرارداد حفظ کلید با مقدار خالی را پشتیبانی می‌کند؛ رابط برای ذخیره کلید جدید ورودی غیرخالی می‌خواهد.']},
      {id:'storage',title:'نگهداری و تغییرات',paragraphs:['تنظیمات از ثبت‌خانه سرویس‌ها و مخزن امن کلیدها استفاده می‌کنند. هویت سرویس و مقصد والکس در کد مشخص است و فرم مقصد دلخواه انتخاب نمی‌کند.','ذخیره نسخه‌دار است و در تغییر هم‌زمان تازه‌سازی لازم می‌شود. کلید در فهرست عمومی دارایی‌ها یا پاسخ تنظیمات منتشر نمی‌شود.']},
      {id:'api',title:'قرارداد مدیریت',table:{headers:['روش و مسیر','ورودی','پاسخ'],rows:[['GET /api/integrations/wallex','جلسه مالک','{hasKey, version, updatedAt}'],['PUT /api/integrations/wallex','{secret, version} و مبدأ همان پنل','وضعیت ذخیره بدون مقدار کلید']]},paragraphs:['کلید باید رشته معتبر و نسخه عدد صحیح نامنفی باشد. سقف بدنه ۱۲٬۰۰۰ بایت است. نبود جلسه ۴۰۱، نقش غیرمالک ۴۰۳ و اختلاف نسخه از مسیر خطای تنظیمات گزارش می‌شود.']},
      {id:'boundaries',title:'نرخ تبدیل و مرز عملیات',paragraphs:['نرخ تبدیل ریال و دلار در کارت مستقل تنظیم می‌شود. ذخیره کلید، سیاست نرخ تبدیل را تغییر نمی‌دهد.','این کارت مسیر خرید، فروش یا برداشت ندارد. دریافت داده عمومی و ثبت امن کلید دو قابلیت جدا هستند؛ حضور کلید ذخیره‌شده به معنی بررسی موفق اعتبار آن نیست.'],links:[{label:'مستندات رسمی والکس',href:'https://developers.wallex.ir/docs'}]}
    ],sources:['planck-admin/components/wallex-settings.tsx','planck-admin/lib/wallex-settings.ts','planck-admin/app/api/integrations/wallex/route.ts','planck-admin/tests/wallex-settings.test.mjs'],related:['exchange-rates','ondo','api-providers']
  },
  {
    slug:'ondo',group:'admin',title:'اتصال و بررسی کلید Ondo',status:'implemented',audience:'مالک پنل و تیم اتصال بازار',description:'ذخیره امن کلید و بررسی دسترسی به فهرست دارایی‌های Ondo.',
    sections:[
      {id:'purpose',title:'قابلیت پیاده‌سازی‌شده',paragraphs:['کارت Ondo در بخش اتصال‌ها اجازه می‌دهد مالک کلید حساب مجاز خود را وارد کند، دسترسی آن به فهرست دارایی‌ها را بررسی کند و سپس ذخیره کند.','معرفی سهام توکنیزه‌شده و صندوق‌های ETF در کارت به معنی اضافه شدن خودکار آن‌ها به بازار عمومی یا فعال شدن معامله نیست. قابلیت اجرایی این بخش، تنظیم کلید و خواندن فهرست برای بررسی دسترسی است.']},
      {id:'check',title:'بررسی پیش از ذخیره',paragraphs:['دکمه بررسی فقط کلیدی را می‌آزماید که همان لحظه وارد شده است. این عمل کلید را ذخیره نمی‌کند و کلید قبلی را نیز از مخزن بازخوانی نمی‌کند.','سرور فهرست متادیتای دارایی‌ها را از نشانی ثابت رسمی با هدر x-api-key می‌خواند. خروجی فقط تعداد نمادهای یکتا و زمان بررسی است؛ قیمت قطعی یا معامله‌ای ایجاد نمی‌شود.']},
      {id:'save',title:'ثبت در مخزن امن',paragraphs:['ذخیره از ثبت‌خانه نسخه‌دار کلیدهای اتصال استفاده می‌کند. پس از ذخیره، ورودی پاک می‌شود و حضور کلید نمایش داده می‌شود؛ مقدار کلید دوباره به مرورگر برنمی‌گردد.','پیام موفقیت ذخیره، تأیید موفقیت اتصال نیست. دریافت کلید به پذیرش و مجوز Ondo وابسته است و بررسی دسترسی جدا انجام می‌شود.']},
      {id:'api',title:'مسیرها و نتیجه‌ها',table:{headers:['روش و مسیر','قرارداد'],rows:[['GET /api/integrations/ondo','پاسخ {hasKey, version, updatedAt}'],['PUT /api/integrations/ondo','ورودی {secret, version}؛ مالک و همان مبدأ'],['POST /api/integrations/ondo/check','ورودی {secret}؛ پاسخ {assetCount, checkedAt}']]},paragraphs:['کلید نامعتبر یا فاقد مجوز داده در بررسی، وضعیت ۴۲۲ می‌گیرد. پاسخ نامعتبر سرویس ۵۰۲ و قطع ارتباط یا محدودیت درخواست ۵۰۳ است. متن خام خطای ارائه‌دهنده منتشر نمی‌شود.']},
      {id:'readiness',title:'آمادگی و حدود اتصال',paragraphs:['درخواست بررسی به فهرست رسمی محدود است، زمان انتظار ۱۰ ثانیه دارد و حداکثر ۲ مگابایت پاسخ خوانده می‌شود. ساختار نماد، ticker و tags قبل از موفقیت بررسی می‌شود.','عملیات زنده به کلید معتبر نیاز دارد و ذخیره به آماده بودن ثبت‌خانه و مخزن امن پایگاه داده وابسته است. این بخش سیاست نرخ ریال را تغییر نمی‌دهد.'],links:[{label:'راهنمای رسمی API در Ondo',href:'https://docs.ondo.finance/api-reference/overview'},{label:'احراز دسترسی و راه‌اندازی',href:'https://docs.ondo.finance/api-reference/quickstart'}]}
    ],sources:['planck-admin/components/ondo-settings.tsx','planck-admin/lib/ondo-settings.ts','planck-admin/lib/ondo-server.ts','planck-admin/app/api/integrations/ondo/route.ts','planck-admin/app/api/integrations/ondo/check/route.ts','planck-admin/ONDO_SETUP.md','planck-admin/tests/ondo-settings.test.mjs'],related:['wallex','exchange-rates','api-providers']
  },
  {
    slug:'exchange-rates',group:'admin',title:'تنظیم نرخ تبدیل ریال و دلار',status:'implemented',audience:'مالک پنل',description:'انتخاب تک‌مرجع یا میانگین چند مرجع برای نرخ مبتنی بر تتر.',
    sections:[
      {id:'meaning',title:'معنای نرخ',paragraphs:['نرخ مرجع مبلغ دلاری در سرمایه‌گذاری هوشمند بر مبنای قیمت تتر است و معادل قیمت دلار نقدی نیست. پیش‌فرض ذخیره‌نشده، حالت یک مرجع با انتخاب والکس است.','هر تومان همیشه برابر ۱۰ ریال است. انتخاب مرجع، قیمت تتر به ریال را تعیین می‌کند و ضریب تومان را تغییر نمی‌دهد.']},
      {id:'modes',title:'روش‌های انتخاب',table:{headers:['روش','قاعده'],rows:[['یک مرجع / single','دقیقاً یک گزینه: والکس یا نوبیتکس'],['میانگین / average','حداقل دو مرجع متمایز؛ فعلاً والکس و نوبیتکس'],['وزن‌ها','میانگین ساده با وزن برابر'],['تازگی','میانگین نیازمند نرخ تازه تمام انتخاب‌ها است']]},paragraphs:['انتخاب تکراری یا نام ناشناخته پذیرفته نمی‌شود. افزودن ارائه‌دهنده جدید به اتصال و پشتیبانی کد نیاز دارد و با وارد کردن یک URL در فرم انجام نمی‌شود.']},
      {id:'workflow',title:'تنظیم در پنل',bullets:['در اتصال‌ها کارت «نرخ تبدیل ریال و دلار» را باز کنید.','یک مرجع یا میانگین چند مرجع را انتخاب کنید.','گزینه‌های موردنظر را تعیین و روش محاسبه را ذخیره کنید.','در صورت تغییر هم‌زمان محتوا یا تنظیمات، تازه‌سازی و انتخاب را دوباره بررسی کنید.'],paragraphs:['تنظیم فقط برای مالک واردشده قابل ذخیره است. کنترل‌های پیش‌نمایش و نقش‌های دیگر امکان ذخیره واقعی ندارند.']},
      {id:'persistence',title:'حفظ سایر تنظیمات',paragraphs:['سیاست در فیلد exchange_rate داده محتوای سایت ذخیره می‌شود. ذخیره سایر محتوا را حفظ می‌کند و نسخه زمانی مانع بازنویسی تغییر هم‌زمان می‌شود.','خواندن در نبود رکورد فقط پیش‌فرض برمی‌گرداند. اولین ذخیره صریح، محتوای پیش‌فرض همراه سیاست را ایجاد می‌کند.','ویرایش معمولی محتوا، سیاست فعلی را حفظ می‌کند؛ مقدار قدیمی یا متفاوت باقی‌مانده در فرم محتوا آن را جایگزین نمی‌کند.']},
      {id:'api',title:'قرارداد و مرز نتیجه',table:{headers:['مسیر یا فیلد','قرارداد'],rows:[['GET /api/integrations/exchange-rate','{policy, expectedUpdatedAt, configured}'],['PUT /api/integrations/exchange-rate','{policy, expectedUpdatedAt}'],['policy','mode: single یا average؛ sources: آرایه شناسه‌ها'],['configured','سیاست صریح ذخیره شده؛ به معنی سلامت لحظه‌ای مرجع نیست']]},note:{kind:'info',title:'دریافت نرخ زنده',text:'این API سیاست را مدیریت می‌کند. دریافت نرخ زنده و بررسی تازگی در مارکت‌پلیس انجام می‌شود؛ ذخیره سیاست به‌تنهایی موفقیت دریافت از ارائه‌دهنده را ثابت نمی‌کند.'}}
    ],sources:['planck-admin/components/exchange-rate-settings.tsx','planck-admin/lib/exchange-rate-settings.ts','planck-admin/app/api/integrations/exchange-rate/route.ts','planck-admin/app/api/content/route.ts','planck-admin/tests/exchange-rate-settings.test.mjs'],related:['wallex','api-providers','admin-catalog']
  },
  {
    slug:'admin-auth',group:'security',title:'ورود و امنیت دسترسی مدیریت',status:'implemented',audience:'اعضای مدیریت و تیم راه‌اندازی',description:'ورود دومرحله‌ای، نقش‌ها، جلسات و اطلاعات حساس پنل.',
    sections:[
      {id:'onboarding',title:'آماده‌سازی حساب کارکنان',paragraphs:['حساب و عضویت کارکنان باید از مسیر قابل اعتماد راه‌اندازی پایگاه داده تعریف شود. پنل عمومی ایجاد نقش مدیریتی یا افزودن خودکار کارمند ارائه نمی‌کند.','بعد از ورود با ایمیل و رمز، اجازه مدیریت بررسی می‌شود. برای عضو مجاز بدون عامل تأییدشده، راه‌اندازی اپلیکیشن TOTP ارائه می‌شود. ورود با موفقیت مرحله دوم تکمیل می‌شود.']},
      {id:'mfa',title:'کد اپلیکیشن تأیید هویت',paragraphs:['کد شش‌رقمی با ارقام فارسی یا عربی و فاصله‌گذاری پذیرفته و به قالب مناسب تبدیل می‌شود؛ صفر ابتدای کد حفظ می‌شود.','رابط زمان باقی‌مانده و شروع دوباره را نشان می‌دهد. درخواست بررسی کد هنگام ارسال آن ساخته می‌شود تا زمان راه‌اندازی، بررسی قبلی را منقضی نکند.','کد اشتباه، پایان مهلت، تغییر شبکه، محدودیت تلاش و آماده نبودن سرویس پیام‌های جدا دارند. اطلاعات راه‌اندازی نباید در گزارش عمومی بازنشر شوند.']},
      {id:'session',title:'جلسه مدیریت',paragraphs:['ورود موقت حداکثر پنج دقیقه و جلسه تکمیل‌شده حداکثر ۳۰ دقیقه عمر دارد؛ انقضای نشست سرویس ورود ممکن است آن را کوتاه‌تر کند. پس از پایان نشست ورود مجدد لازم است.','کوکی برای اسکریپت صفحه قابل خواندن نیست، محدود به همان میزبان و دارای SameSite Strict است و روی HTTPS ویژگی Secure دارد. خروج، نشست محلی و کوکی‌های ورود را پایان می‌دهد.']},
      {id:'authorization',title:'کنترل نقش و درخواست',paragraphs:['API اعتبار کاربر و نقش را دوباره بررسی می‌کند. درخواست تغییردهنده به مبدأ همان پنل نیاز دارد. مسیرهای مالک برای هویت و اتصال‌ها نقش ناشر یا ویراستار را نمی‌پذیرند.','داده با توکن همان کاربر و سیاست‌های پایگاه داده قابل دسترسی است. کلید سرویس با اختیار کامل در مرورگر استفاده نمی‌شود. نصب قواعد نقش و MFA در پایگاه داده بخشی از راه‌اندازی لازم است.']},
      {id:'sensitive',title:'کلید، مدرک و گزارش',paragraphs:['کلید اتصال در مخزن امن ذخیره می‌شود و پاسخ تنظیمات فقط حضور و نسخه را نشان می‌دهد. عکس هویتی از فضای خصوصی با کنترل مالک و بدون کش دریافت می‌شود.','رسانه معرفی پروژه فضای عمومی جدا دارد. تغییرات پروژه و محتوا از رویدادهای پایگاه داده قابل پیگیری‌اند.','این مقاله کنترل‌های پیاده‌سازی‌شده را توضیح می‌دهد. بهره‌برداری عمومی به تنظیم درست ورود، پایگاه داده، استقرار و محدودیت درخواست میزبانی نیز وابسته است.']}
    ],sources:['planck-admin/README.md','planck-admin/lib/mfa.ts','planck-admin/lib/server.ts','planck-admin/lib/identity-server.ts','planck-admin/lib/identity-files.ts','planck-admin/app/api/auth/login/route.ts','planck-admin/app/api/auth/verify/route.ts','planck-admin/app/api/auth/logout/route.ts','planck-admin/tests/admin-auth.test.mjs'],related:['admin-overview','admin-identity','admin-operations']
  },
  {
    slug:'api-admin',group:'api',title:'مرجع API مدیریت',status:'reference',audience:'توسعه‌دهندگان پنل و یکپارچه‌سازی داخلی',description:'روش‌ها، ورودی‌ها، پاسخ‌ها و دسترسی مسیرهای اصلی پنل.',
    sections:[
      {id:'conventions',title:'قرارداد مشترک',paragraphs:['مسیرها روی مبدأ برنامه مدیریت قرار دارند. پاسخ JSON معمولاً وضعیت ۲۰۰ و هدر جلوگیری از کش دارد؛ خطا با error برمی‌گردد. نوع دسترسی هر مسیر در جدول مشخص شده است.','درخواست تغییردهنده به مبدأ یکسان نیاز دارد. بدنه عمومی JSON سقف ۱۵۰٬۰۰۰ بایت دارد و بعضی مسیرهای حساس سقف کوچک‌تر دارند. قیمت پروژه در قرارداد به ریال است.']},
      {id:'auth-routes',title:'جلسه و ورود',table:{headers:['روش و مسیر','ورودی و خروجی','دسترسی و خطای اصلی'],rows:[['GET /api/session','{connected, user}؛ user ممکن است null باشد','خواندن وضعیت؛ پاسخ ۲۰۰'],['POST /api/auth/login','{email,password} → مرحله MFA','همان مبدأ؛ ۴۰۰ ورودی، ۴۰۱ ورود، ۴۰۳ عضویت، ۴۲۹ محدودیت، ۵۰۳ اتصال'],['POST /api/auth/verify','{factorId,code} → {user} و جلسه','ورود موقت؛ ۴۰۰، ۴۰۱، ۴۰۳، ۴۰۹ تغییر شبکه، ۴۲۹، ۵۰۳'],['POST /api/auth/logout','داده الزامی ندارد → {ok:true}','همان مبدأ؛ پاک کردن کوکی‌های ورود']]}},
      {id:'catalog-routes',title:'پروژه، محتوا و رسانه',table:{headers:['روش و مسیر','قرارداد','دسترسی و خطای اصلی'],rows:[['GET /api/projects','{projects} مرتب بر اساس sort_order','عضو؛ ۴۰۱ / ۵۰۲'],['POST /api/projects','{project} → {project}','عضو؛ ویراستار فقط پیش‌نویس؛ ۴۰۰ / ۴۰۱ / ۴۰۳ / ۴۰۹'],['PATCH /api/projects','{project,expectedUpdatedAt} → {project}','نسخه الزامی؛ تعارض یا نشانی تکراری ۴۰۹'],['GET /api/content','{record} یا record:null','عضو؛ ۴۰۱ / ۵۰۲'],['PUT /api/content','{content,expectedUpdatedAt} → {record}','مالک/ناشر؛ حفظ سیاست نرخ؛ اختلاف نسخه ۴۰۹'],['POST /api/media','فایل خام با Content-Type معتبر → {url}','عضو؛ ۴۰۰ فرمت، ۴۰۱ / ۴۰۳، ۴۱۳ حجم، ۵۰۲ ذخیره'],['GET /api/audit','{events}','مالک/ناشر؛ نبود مجوز ۴۰۳، دریافت ناموفق ۵۰۲']]}},
      {id:'identity-routes',title:'پرونده و تصاویر هویتی',table:{headers:['روش و مسیر','قرارداد','دسترسی و اعتبارسنجی'],rows:[['GET /api/identity','بدون id فهرست؛ ?id=UUID جزئیات','مالک؛ شناسه معتبر'],['POST /api/identity','{id,version,decision,note,checks}','مالک؛ approve/reject؛ سه بررسی مدرک'],['PATCH /api/identity','{id,version,verification_type,review_stage}','مالک؛ identity یا identity_bank؛ مرحله معتبر'],['GET /api/identity/photo','?id=UUID&kind=card یا selfie → تصویر','مالک؛ بدون کش؛ ۴۰۴ فایل، ۴۱۵ فرمت، ۵۰۳ سرویس']]},paragraphs:['ثبت بررسی تا ۵٬۰۰۰ و تغییر نوع و مرحله تا ۲٬۰۰۰ بایت می‌پذیرد. نسخه مثبت و یادداشت حداکثر ۱۰۰۰ نویسه است. checks شامل face_visible، card_readable و challenge_match است.','خطاهای عمومی این خانواده ۴۰۰ ورودی، ۴۰۱ جلسه، ۴۰۳ دسترسی، ۴۰۹ تعارض یا شرط پرونده و ۵۰۳ آماده نبودن سرویس است.']},
      {id:'referral-routes',title:'برنامه دعوت',table:{headers:['روش و مسیر','قرارداد','دسترسی'],rows:[['GET /api/referrals','برنامه و آمار دعوت','عضو مدیریت؛ ۴۰۱ / ۵۰۳'],['PUT /api/referrals','{enabled,inviteRewardToman,tradeSharePercent,version}','مالک و همان مبدأ؛ تا ۴٬۰۰۰ بایت؛ ۴۰۰ / ۴۰۱ / ۴۰۳ / ۴۰۹']]},paragraphs:['مبلغ و درصد رشته عددی هستند تا تبدیل دقیق انجام شود. سابقه معامله یا فرمان پرداخت از این API قابل ارسال نیست. مسیرهای تنظیم اتصال در مقاله API اتصال‌ها آمده‌اند.']}
    ],sources:['planck-admin/app/api/session/route.ts','planck-admin/app/api/auth/login/route.ts','planck-admin/app/api/auth/verify/route.ts','planck-admin/app/api/auth/logout/route.ts','planck-admin/app/api/projects/route.ts','planck-admin/app/api/content/route.ts','planck-admin/app/api/media/route.ts','planck-admin/app/api/audit/route.ts','planck-admin/app/api/identity/route.ts','planck-admin/app/api/identity/photo/route.ts','planck-admin/app/api/referrals/route.ts','planck-admin/lib/server.ts'],related:['api-providers','admin-auth','admin-catalog']
  },
  {
    slug:'api-providers',group:'api',title:'API اتصال‌ها و استعلام‌ها',status:'reference',audience:'توسعه‌دهندگان اتصال و مالک فنی',description:'مسیرهای کلید بازار، سیاست نرخ و اجرای بررسی ارائه‌دهندگان.',
    sections:[
      {id:'access',title:'دسترسی مشترک',paragraphs:['تمام مسیرهای این مقاله متعلق به پنل مدیریت و نیازمند نقش مالک‌اند. PUT و POST مبدأ همان پنل را نیز بررسی می‌کنند. دریافت تنظیمات مقدار کلید ذخیره‌شده را بازنمی‌گرداند.','خطاهای پایه شامل ۴۰۰ ورودی، ۴۰۱ جلسه، ۴۰۳ دسترسی، ۴۰۹ تعارض یا شرط اجرایی و ۵۰۳ آماده نبودن اتصال است. نتیجه ارائه‌دهنده با خطای ورود به پنل یکسان نیست.']},
      {id:'inquiry-api',title:'تنظیم و اجرای استعلام',table:{headers:['روش و مسیر','قرارداد','حد و رفتار'],rows:[['GET /api/inquiries','تنظیمات و services','مالک؛ فهرست برای بازدیدکننده عمومی نیست'],['PUT /api/inquiries','{service_key,label,scope,provider_name,base_url,secret?,version}','حداکثر ۱۶٬۰۰۰ بایت؛ ذخیره نسخه‌دار'],['POST /api/inquiries/run','{inquiry_id,service_id,kind?}','حداکثر ۱٬۰۰۰ بایت؛ identity، mobile_owner یا bank_owner']]},paragraphs:['شناسه‌ها باید UUID باشند. نوع هویت یا موبایل به اجرای هویتی می‌رود؛ bank_owner و حالت قدیمی بدون kind به اجرای بانکی می‌رود. این مسیر اطلاعات هویتی یا بانکی دلخواه برای جایگزینی پرونده نمی‌پذیرد.']},
      {id:'market-api',title:'کلیدهای بازار',table:{headers:['روش و مسیر','ورودی','خروجی'],rows:[['GET /api/integrations/wallex','—','{hasKey,version,updatedAt}'],['PUT /api/integrations/wallex','{secret,version}','وضعیت بدون مقدار کلید'],['GET /api/integrations/ondo','—','{hasKey,version,updatedAt}'],['PUT /api/integrations/ondo','{secret,version}','وضعیت بدون مقدار کلید'],['POST /api/integrations/ondo/check','{secret}','{assetCount,checkedAt}؛ بدون ذخیره']]},paragraphs:['حد ورودی ۱۲٬۰۰۰ بایت است. ارائه‌دهنده و مقصد در کد مشخص‌اند. بررسی Ondo برای خواندن فهرست است؛ ذخیره کلیدها تماس معاملاتی ایجاد نمی‌کند.']},
      {id:'rate-api',title:'سیاست نرخ تبدیل',table:{headers:['روش و مسیر','قرارداد','قاعده'],rows:[['GET /api/integrations/exchange-rate','{policy,expectedUpdatedAt,configured}','نبود سیاست: single با wallex'],['PUT /api/integrations/exchange-rate','{policy:{mode,sources},expectedUpdatedAt}','تا ۲٬۰۰۰ بایت؛ نسخه باید برابر رکورد فعلی باشد']]},paragraphs:['mode فقط single یا average و شناسه‌ها فعلاً wallex و nobitex هستند. single یک گزینه و average حداقل دو گزینه غیرتکراری می‌خواهد. بدون اتصال پایگاه داده، وضعیت ۵۰۳ برمی‌گردد.']},
      {id:'upstreams',title:'مقصدهای تعریف‌شده در کد',table:{headers:['اتصال','مقصد','کاربرد'],rows:[['والکس','https://api.wallex.ir/hector/web/v1/markets','نشانی ثابت داده عمومی در تنظیمات'],['Ondo','GET https://api.gm.ondo.finance/v1/assets/all/metadata','بررسی دسترسی کلید به فهرست'],['ثبت‌احوال شبانیک','https://shabanic.ir/api/v1/nid_inquiry','شناسایی اتصال هویتی'],['شاهکار شبانیک','https://shabanic.ir/api/v2/shahkar','شناسایی اتصال مالکیت موبایل'],['مالکیت شبا شبانیک','https://shabanic.ir/api/v2/matchIbanByNationalcode','شناسایی اتصال بانکی']]},note:{kind:'info',title:'دامنه جدول',text:'این‌ها قراردادهای موجود در کد هستند. آمادگی هر سرویس به مجوز، کلید و اتصال اجرایی وابسته است؛ خواندن مستند درخواست واقعی ایجاد نمی‌کند.'}}
    ],sources:['planck-admin/app/api/inquiries/route.ts','planck-admin/app/api/inquiries/run/route.ts','planck-admin/app/api/integrations/wallex/route.ts','planck-admin/app/api/integrations/ondo/route.ts','planck-admin/app/api/integrations/ondo/check/route.ts','planck-admin/app/api/integrations/exchange-rate/route.ts','planck-admin/lib/inquiries.ts','planck-admin/lib/ondo-server.ts','planck-admin/lib/identity-server.ts'],related:['api-admin','admin-inquiries','wallex','ondo','exchange-rates']
  },
  {
    slug:'admin-operations',group:'admin',title:'راه‌اندازی و وضعیت عملیاتی پنل',status:'reference',audience:'تیم راه‌اندازی و نگهداری',description:'اجزای برنامه، پیش‌نیازها، آزمون‌ها و مرز وضعیت اجرایی.',
    sections:[
      {id:'architecture',title:'اجزای برنامه',paragraphs:['پنل برنامه‌ای مستقل با React، TypeScript و Vinext است. به Supabase برای هویت کارکنان، داده پروژه و محتوا، سرویس‌های پایگاه داده و رسانه متصل می‌شود. رابط، API، ساخت و کوکی مستقل دارد.','سایت عمومی و پنل باید اتصال درست به پروژه داده موردنظر داشته باشند. نشانی مارکت‌پلیس در راه‌اندازی پنل تعریف می‌شود؛ این مقاله مقدار متغیر محیطی یا شناسه پروژه خصوصی را منتشر نمی‌کند.']},
      {id:'setup',title:'پیش‌نیاز بهره‌برداری',bullets:['اتصال پایگاه داده و پیکربندی عمومی مناسب برنامه تنظیم شود.','مهاجرت‌ها، نقش‌ها، سیاست‌های دسترسی و فضای ذخیره رسانه نصب و بررسی شوند.','اعضای تیم از مسیر مورد اعتماد تعریف و ورود دومرحله‌ای آن‌ها تکمیل شود.','ثبت‌خانه، مخزن کلید و اتصال اجرای استعلام‌ها آماده باشد.','برای Ondo کلید مجاز تهیه شود؛ ذخیره و بررسی دو گام مستقل‌اند.','پیش از بهره‌برداری عمومی HTTPS، مبدأ و محدودیت درخواست میزبانی تکمیل شود.']},
      {id:'preview',title:'دامنه پیش‌نمایش',paragraphs:['بدون اتصال و با گزینه پیش‌نمایش، فرم پروژه، ظاهر و محتوا با داده نمونه نمایش داده می‌شوند. وضعیت ویرایش موقت است و ذخیره یا بارگذاری واقعی انجام نمی‌شود.','مدارک واقعی نمایش داده نمی‌شوند و کلیدها، نرخ ارز و پاداش بدون مالک قابل ذخیره نیستند. اتصال پایگاه داده به‌تنهایی ورود موفق کاربر یا اعتبار ارائه‌دهنده را اثبات نمی‌کند.']},
      {id:'verification',title:'آزمون و بررسی',paragraphs:['آزمون‌های موجود اعتبارسنجی پروژه و محتوا، ورود و MFA، هویت، دعوت، والکس، نرخ تبدیل و Ondo را پوشش می‌دهند.','آزمون مسیر سرویس از پاسخ کنترل‌شده استفاده می‌کند و موفقیت آن به معنی تماس موفق با ارائه‌دهنده زنده نیست. بررسی واقعی ورود، بارگذاری، انقضا و انتشار به پیکربندی و اعتبارنامه واقعی نیاز دارد.'],code:{language:'sh',content:'npm run typecheck\nnpm test\nnpm run build'}},
      {id:'status',title:'وضعیت قابل اثبات',table:{headers:['قابلیت','وضعیت'],rows:[['پروژه و CMS','رابط، اعتبارسنجی و API موجود؛ نوشتن نیازمند اتصال و نقش'],['ورود MFA','جریان پیاده‌سازی شده؛ کاربر باید راه‌اندازی و ورود را کامل کند'],['مدارک و استعلام','رابط و API موجود؛ وابسته به پرونده، مجوز و سرویس'],['والکس و Ondo','ذخیره نسخه‌دار موجود؛ ذخیره تأیید اعتبار کلید نیست'],['سیاست نرخ','فرم مستقل موجود؛ نرخ زنده در مارکت‌پلیس دریافت می‌شود'],['معامله و پرداخت','پنل مسیر اجرای مالی مستقیم ندارد'],['انگلیسی و عربی','ورود ترجمه آماده؛ انتشار رابط این زبان‌ها فعال نیست']]},paragraphs:['گزارش قدیمی راه‌اندازی جای بررسی وضعیت جاری را نمی‌گیرد. برای این مستند هیچ داده عملیاتی، پرونده یا تنظیمی تغییر نکرده است.']}
    ],sources:['planck-admin/README.md','planck-admin/package.json','planck-admin/app/page.tsx','planck-admin/lib/server.ts','planck-admin/MFA_SETUP.md','planck-admin/ONDO_SETUP.md','planck-admin/tests/admin-auth.test.mjs','planck-admin/tests/validation.test.mjs','planck-admin/tests/identity.test.mjs','planck-admin/tests/referrals.test.mjs','planck-admin/tests/exchange-rate-settings.test.mjs','planck-admin/tests/ondo-settings.test.mjs'],related:['admin-overview','admin-auth','api-admin']
  },
];
