رفتن به محتوا
پروژهvivid-visual-platformنوعModuleنسخه0.1وضعیتپیش‌نویس

پلیر ویدیو

پلیر Vivid Visual صرفاً یک پخش‌کننده ویدیو نیست؛ موتور تعامل یادگیری و تبدیل فروش درون‌محتوا است.

  • Resume Playback: ادامه از آخرین نقطه پخش در تمام دستگاه‌ها.
  • Bookmark: ذخیره لحظه مهم با عنوان کاربر.
  • Note on Timeline: ثبت یادداشت روی تایم‌کد.
  • Playback Speed و کیفیت تطبیقی.
  • Anti-sharing token برای URLهای موقت پخش.
  • Upsell Marker: نمایش پیشنهاد خرید دوره/اشتراک در نقاط مشخص.
  • Cross-sell Panel: پیشنهاد Asset مرتبط Marketplace با محتوای جلسه.
  • Coupon Slot: نمایش کد تخفیف کوتاه‌مدت داخل پلیر.

watch_session watch_position bookmark timeline_note upsell_impression upsell_click

کاربر پس از ورود به پلیر، مستقیما آخرین موقعیت را می‌بیند. اگر کاربر ۷۰٪ یک جلسه را تماشا کند، پیشنهاد مسیر تکمیلی نشان داده می‌شود. Bookmarkها در پنل کنار پلیر فهرست می‌شوند و کلیک روی هر مورد باعث seek می‌شود.

ارتباط با سایر ماژول‌ها

Section titled “ارتباط با سایر ماژول‌ها”

Learning برای ساختار جلسه. Commerce برای وضعیت دسترسی. Analytics برای رویدادهای تعامل و تبدیل.

مهاجرت لایسنس پلیر و دسترسی‌های توزیع‌شده

Section titled “مهاجرت لایسنس پلیر و دسترسی‌های توزیع‌شده”

بخش قابل توجهی از کاربران فعلی، لایسنس یا کلید دسترسی پلیر/دوره را قبل از راه‌اندازی پلتفرم جدید دریافت کرده‌اند. این دسترسی‌ها باید پس از cutover معتبر بمانند.

انواع دسترسی در سایت فعلی (احتمالی)

Section titled “انواع دسترسی در سایت فعلی (احتمالی)”
  • خرید دوره از WooCommerce (محصول مجازی)
  • اشتراک WooCommerce Subscriptions
  • لایسنس نرم‌افزار/پلیر از افزونه EDD یا WooCommerce Software License
  • دسترسی دستی (مدرس/پشتیبانی) در wp_usermeta یا افزونه LMS
  • کد تخفیف یا لایسنس یک‌بارمصرف توزیع‌شده در کمپین

هیچ لایسنس فعال نباید در cutover باطل شود. هر کلید یا entitlement قدیمی یا به سیستم جدید map می‌شود یا در بازه grace با API اعتبارسنجی legacy پشتیبانی می‌شود.

استخراج داده لایسنس (توسط کارفرما / تیم فعلی سایت)

Section titled “استخراج داده لایسنس (توسط کارفرما / تیم فعلی سایت)”

کارفرما باید بتواند کلیدها و entitlementها را استخراج و تحویل دهد. روش‌های متداول:

روشمناسب برای
Export افزونه لایسنس (CSV/JSON)WooCommerce Software Add-on، EDD Software Licensing
گزارش سفارش‌های WooCommerceخریدهای دوره بدون کلید جداگانه
Query امن روی دیتابیس WPزمانی که افزونه export استاندارد ندارد
خروجی دستی از پنل + تایید Rebatiحجم کم یا داده پراکنده

قالب تحویل داده (حداقل فیلدها)

Section titled “قالب تحویل داده (حداقل فیلدها)”

فایل CSV استاندارد مهاجرت لایسنس:

ستونالزامیمثال
legacy_license_keyبلهVV-PLR-8F3A-92KD
legacy_user_idبله1842
user_emailبله[email protected]
product_sku_or_idبلهcourse-arch-101
product_titleخیرمعماری مقدماتی
license_typeبلهcourse / subscription / player / bundle
statusبلهactive / expired / revoked
activated_atتوصیه2024-03-12
expires_atدر صورت وجود2026-03-12
max_activationsدر صورت وجود2
current_activationsدر صورت وجود1
order_idتوصیهWC-45821
notesخیرکمپین نوروز 1403

نگاشت به مدل جدید (PostgreSQL / Commerce)

Section titled “نگاشت به مدل جدید (PostgreSQL / Commerce)”
  • legacy_license_key → جدول licenses با فیلد external_key
  • entitlement فعال → enrollment (Learning) یا subscription (Commerce)
  • player access → claim در Keycloak + رکورد license با scope=player
  • تاریخ انقضا → همان تاریخ قبلی (بدون کوتاه‌کردن حق کاربر)

دوره grace و اعتبارسنجی دوگانه

Section titled “دوره grace و اعتبارسنجی دوگانه”

در ۳۰ تا ۹۰ روز پس از cutover (بسته به حجم داده):

  1. API جدید ابتدا licenses داخلی را چک می‌کند
  2. در صورت عدم یافتن، lookup در جدول legacy_licenses انجام می‌شود
  3. لاگ هر match legacy برای پاک‌سازی بعدی ثبت می‌شود

پس از تثبیت، جدول legacy فقط read-only می‌ماند.

  • نمونه ۵۰ لایسنس فعال از هر نوع (دوره، اشتراک، پلیر)
  • تست ورود کاربر مهاجرت‌شده + پخش در پلیر جدید
  • تست لایسنس منقضی (رد دسترسی)
  • تطابق تعداد entitlement قبل و بعد از مهاجرت (گزارش reconciliation)