Skip to content

Kurs Yayınlama Tercihi (Publishing & Visibility)

Kursun ana pazaryeri mi, academy vitrini mi, yoksa her ikisinde mi görüneceğini belirleyen görünürlük sistemi; courses.visibilityType ve güvenlik bayrakları.

Achidemy’de bir kurs hem ana pazaryerinde hem de eğitmenin kendi academy vitrini içinde görünebilir. Bu “Publishing & Visibility” sistemi, kursun nerede listeleneceğini tek kaynak üzerinden kontrol eder.


Şema: app/db/schema.tscourses

Yeni alanlar:

  • visibilityType: "marketplace_only" | "academy_only" | "both" (default: both)
  • isMarketplacePublished: boolean (default: true) — ekstra güvenlik bayrağı
  • isAcademyPublished: boolean (default: true)

Migration: drizzle/0042_courses_publishing_visibility.sql


Kurs sorguları tenant olup olmamasına göre filtrelenir.

  • courses.academyId === tenant.id
  • courses.isAcademyPublished === true
  • visibilityType IN ("academy_only", "both")
  • courses.isMarketplaceVisible === true (legacy flag)
  • courses.isMarketplacePublished === true
  • visibilityType IN ("marketplace_only", "both")

Bu mantık app/lib/db-queries.ts içindeki helper sorgularda (örn. getFeaturedCourses) ve storefront loader’larında uygulanır.


Eğitmenin kurs yönetim ekranında, kursun görünürlük modunu seçebileceği bir “Yayınlama Tercihi” kartı bulunur:

  • Dosya hedefi: app/routes/instructor.course.$slug.manage.setup.tsx