◾ Teachfluence Web
000102030405060708091011121314151617
Öğrenciler
ÖğrencilerMevcut
Öğrenci roster · Kişi-360 CRM profili (genel bakış · zaman tüneli · kayıt · destek · e-posta · notlar · özel alanlar) · Türkçe · Masaüstü (1440px, tam ekran) · Mevcut arayüzün birebir yakalanması
Mevcut Bugün canlıda olan, mevcut uygulamadan birebir yakalanmış ekranlar
Planlanan Ekibin daha sonra tasarlayıp ekleyeceği yeni ekranlar
Bir bandın sol kenarındaki turuncu şerit + “PLANLANAN” etiketi = henüz yapılmamış, önerilen ekran.
Öğrenciler · Kayıtlı Kullanıcılar (Roster)
CRM'in ana ekranı: organizasyonun tüm öğrencilerinin sayfalanabilir/filtrelenebilir/sıralanabilir tablosu. Kaynak: StudentsPageQuery → organization(slug).students(first,after,filters) connection (dataTableOrganizationStudents fragment; OrganizationStudentsTablePaginationQuery ile artımlı). Erişim: ORG_STUDENTS_VIEW (detay + yazma ADMIN/OWNER). Araç çubuğu iki satır: arama + Özel Alanlar / Öğrenci Ekle, altında Filtreler + aktif filtre çipleri + Filtreleri sıfırla.
Dolu · araç çubuğu + tablo (satıra tıklayınca Contact-360 detayına gider)
teachfluence
9+
AU
Kayıtlı Kullanıcılar
Özel Alanlar
Öğrenci Ekle
Filtreler
Etiketler · Dahil · VIP +1
Harcama · en az · ₺1.000
Filtreleri sıfırla
Öğrenci Email Etiketler Toplam Harcama Kaydolma Tarihi Son Giriş Son Aktivite
elif.yilmaz@ornek.comVIP Mezun₺12.480,0014 Şub 20252 gün önce3 saat önce
mertkaya@ornek.comAktif₺6.320,0028 Mar 20255 saat önce1 saat önce
ayse.demir@ornek.comDeneme₺1.320,002 May 20251 hafta önce4 gün önce
canozturk@ornek.com-19 May 2025--
zeynep.sahin@ornek.comVIP₺9.870,503 Haz 2025Dün2 saat önce
BA
boran.aksoy@ornek.com
(isim girilmemiş)
boran.aksoy@ornek.com-28 Haz 2025--
Daha fazla yükle
1.284 sonuçtan 50 tanesi gösteriliyor
Sütunlar: seçim (sol sabit) · Öğrenci (avatar + ad; isim yoksa e-posta + (isim girilmemiş)) · Email · Etiketler (ilk 2 + +N) · Toplam Harcama · Kaydolma Tarihi · Son Giriş · Son Aktivite · işlemler kebabı (sağ sabit). Toplam Harcama ₺0 ise em-dash + tooltip “Henüz tamamlanmış bir ödemesi yok.” Sıralama başlıklar üzerinden (OrganizationStudentSortField: GIVEN_NAME/EMAIL/CREATED_AT/LAST_ACTIVITY_AT/LIFETIME_VALUE), etiketler sıralanamaz.
Yükleniyor · skeleton (Suspense fallback)
Filtre değişimi sırasında tablo skeleton'a dönmez; mevcut satırlar soluk “refetch” modunda kalır. Sayfa henüz kabuğa binmeden route Suspense sınırında AdminContentSkeleton görünür.
Boş · henüz öğrenci yok
Özel Alanlar
Öğrenci Ekle
Henüz öğrenci yok
Yukarıdaki butonu kullanarak ilk öğrencinizi ekleyin.
İki boş varyant: hiç öğrenci yok (bu) ve filtre eşleşmesi yok → “Eşleşme bulunamadı” / “Filtrelerinizi değiştirmeyi veya temizlemeyi deneyin.” + Filtreleri sıfırla.
Boş · filtre eşleşmesi yok
Filtreler
Abonelik · Dahil · Premium
Filtreleri sıfırla
Eşleşme bulunamadı
Filtrelerinizi değiştirmeyi veya temizlemeyi deneyin.
Filtreleri sıfırla
Kaydırma sırasında “Daha fazla yükle” başarısız olursa yıkıcı toast (“Hata” / “İşlem başarısız oldu”) çıkar ve Sentry'ye yakalanır.
Hata bandı · & yetkisiz erişim (ORG_STUDENTS_VIEW yok)
Veriler yüklenemedi. Lütfen tekrar deneyin.Tekrar Dene
Veriler yüklenemedi. Lütfen tekrar deneyin.Tekrar Dene

Bu bölüme erişiminiz yok
Hesabınızın Öğrenciler bölümüne erişim yetkisi yok. Erişim için bir Sahip veya Yönetici ile iletişime geçin.
Yetkisiz görüntüleyicilere NoAccessMessage section="Öğrenciler" (AccessGate.section) render edilir. Tablo/refetch hataları küçük yıkıcı-tonlu bandlarla degrade olur; facet hatası tabloyu düşürmeden ayrı bir bandda gösterilir.

Öğrenciler · Filtre Kurucu, Toplu İşlemler & Diyaloglar
Roster'ın etkileşimli katmanı: filtre kurucu popover, seçim toplu-işlem çubuğu, satır/başlık menüleri ve öğrenci-ekleme / kursa-davet / etiket diyalogları. Kaynaklar: useStudentsFilterFacets (accessOptions/coachingOptions/tierOptions/bundleOptions), useOrganizationTags, addOrganizationStudents, inviteCourseAcademicTermStudent, bulkAddTagsToStudents. Yazma işlemleri ADMIN/OWNER gerektirir.
Filtre kurucu popover · sol alan listesi + sağ editör
Filtreler
Öğrencileri filtrele
Listeyi erişime, etiketlere ve aboneliğe göre daralt.
Tümünü sıfırla
Etiketler2
Kurs, ürün veya etkinlik erişimi
Koçluk seansları
Abonelik kademesi
Paketler
Toplam harcama1
Son etkinlik
Kayıt tarihi
DahilDahil değil
VIP
Mezun
Deneme
Aktif
İlk 50 sonuç gösteriliyor — daraltmak için aramayı kullanın.
Gerçekte modal değil bir popover'dır (tetik: Filtreler düğmesi) ve düzenlemeler anında uygulanır — Uygula/İptal düğmesi yoktur. Bir alan seçilince popover genişler ve editörü sağda açılır: çoklu-seçim = Dahil / Dahil değil segmenti + aranabilir liste; harcama = en az/en fazla/arasında sayısal; tarih = sonra/önce/arasında + takvim (bugüne kaplı). Boş facet kategorileri alan listesinden gizlenir. “Erişim durumu” onayı yalnızca bir erişim tipi filtresi (kurs/koçluk/abonelik) seçiliyken görünür.
Toplu işlem çubuğu (satır seçili) · & satır kebab menüsü
3 öğrenci seçildi Seçimi temizle
Etiketleri Yönet Kursa Davet Et Seçilenleri Dışa Aktar
Detayları Görüntüle
Etiketleri Yönet
Kursa Davet Et
Seçim sıralama refetch'i boyunca öğrenci id ile korunur. İstemci-taraflı CSV yalnızca yüklü satırları kapsar; sayfa-dışı seçim varsa “Kısmi dışa aktarma” uyarı toast'ı çıkar. Satır menüsü (RowActions) = Detayları Görüntüle + Etiketleri Yönet + Kursa Davet Et.
Başlık kebabı · sütun görünürlüğü + sunucu dışa aktarımı
Sütunları göster/gizle
Email
Etiketler
Toplam Harcama
Kaydolma Tarihi
Son Giriş
Son Aktivite
Dışa Aktar
Sütunları seç
Tümünü seç·Tümünü kaldır
Kimlik
E-posta
Ad
Soyad
Etiketler
Toplam Harcama
6 sütun
XLSX olarak dışa aktar
CSV olarak dışa aktar
320 / 1.284
Sütun görünürlüğü localStorage'a kalıcı. Sunucu dışa aktarımı (useStudentsExport) mevcut filtre setini kapsar; durum göstergesi Başlatılıyor… → {n}/{total} → Dışa aktarıldı / Uyarı ile dışa aktarıldı / Dışa aktarma başarısız. Kimlik/E-posta/Ad/Soyad/Kayıt/Son Giriş/Son Etkinlik/Dil/Saat Dilimi/Etiketler/Harcama/Para Birimi sütunları seçilebilir.
Öğrenci Ekle diyaloğu · e-posta ile toplu ekleme
Öğrenci Ekle
E-posta adresi ile organizasyonunuza öğrenci ekleyin.
yeni1@ornek.com, yeni2@ornek.com selin.aydin@ornek.com emir.polat@ornek.com
Birden fazla e-posta adresini virgül, noktalı virgül, yeni satır veya boşluk ile ayırarak yapıştırabilirsiniz.
E-posta Önizleme · 4 geçerli e-posta bulundu
yeni1@ornek.com yeni2@ornek.com selin.aydin@ornek.com emir.polat@ornek.com
İptalÖğrenci Ekle
addOrganizationStudents → başarılı/yeni-oluşturulan/başarısız sayısı; yeni satırlar @appendNode ile connection'a eklenir, totalCount artar. Kısmi başarı görünümü: yeşil banner + yıkıcı-tonlu “Aşağıdaki e-postalar eklenemedi:” çip listesi. Görünür çip 50 ile sınırlı (“+N e-posta daha”).
Kursa Davet Et diyaloğu (tekil)
Kursa Davet Et
"Elif Yılmaz" öğrencisini bir kursa davet edin.
Sosyolojiye Giriş
2025 Güz Dönemi
Doğrudan Kayıt
Davet göndermeden öğrenciyi doğrudan kaydedin. Öğrenci kursa hemen eklenecektir.
İptalDavet Gönder
Doğrudan Kayıt açıkken başlık/açıklama ve buton değişir → “Kursa Kaydet” / “Öğrenciyi Kaydet”. Başarı toast'ı: “Davet e-postası {email} adresine gönderildi.” vs “{name} kursa kaydedildi.” Toplu varyant (bulkInviteCourseAcademicTermStudents) sayı bazlı başlık + kısmi-başarı özeti gösterir.
Etiketleri Yönet diyaloğu (tekil)
Etiketleri Yönet
"Elif Yılmaz" öğrencisinin etiketlerini düzenleyin.
VIP Mezun
Etiket seçin...
Optimistik per-etiket bekleme spinner'ları (useStudentTagMutations); toast'lar “{name} etiketi başarıyla eklendi/silindi”. Etiket kalmayınca “Etiket yok”, hepsi eklendiyse buton “Tüm etiketler eklenmiş”. Toplu varyant Etiket Ekle / Etiket Kaldır sekmeleri + sahnelenen rozet alanı taşır.

Öğrenci Detayı (Contact-360) · Genel Bakış
Tekil öğrenci profili (/admin/students/[studentId]). Kaynak: StudentDetailPageQuery → node …on OrganizationStudent (email, ad/soyad, image, createdAt, lastSignInAt, lastActivityAt, lifetimeValue, tags, enrollments, subscriptions, customFields, latestLoginOtp, orders.totalCount). Erişim yalnızca ADMIN/OWNER — aksi halde Next.js notFound(). Sekmeler: Genel Bakış · Kayıtlar · Abonelikler · Satın Alımlar (sayım rozeti yalnızca >0 iken). Not: mevcut kodda zaman tüneli/destek/e-posta/notlar sekmesi yoktur (src/crm boş); Özel Alanlar Genel Bakış'ta bir karttır.
Genel Bakış · Öğrenci Bilgileri kartı (OTP + etiketler) + Özel Alanlar (okuma)
teachfluence
9+
AU
EY
Elif Yılmaz
elif.yilmaz@ornek.com
Genel Bakış Kayıtlar 3 Abonelikler 1 Satın Alımlar 7
Öğrenci Bilgileri
E-posta
elif.yilmaz@ornek.com
Ad Soyad
Elif Yılmaz
Kayıt Tarihi
14 Şubat 2025 09:32
Toplam Harcama
₺12.480,00
Son Giriş
8 Temmuz 2026 21:14
Son Aktivite
9 Temmuz 2026 08:47
Son Giriş Kodu
483 921 E-posta Geçerli Geçerlilik: 9 Temmuz 21:24
Etiketler
VIPMezun
Özel Alanlar
Düzenle
Doğum Tarihi
3 Mart 1998
Telefon
+90 5XX XXX XX XX
Üniversite
Boğaziçi Üniversitesi
İlgi Alanları
SosyolojiPsikoloji
Ad Soyad satırındaki kalem → satır içi düzenleme (Ad/Soyad girişleri + onay/iptal ikon butonları, updateOrganizationStudent; toast “İsim güncellendi”). OTP çipi latestLoginOtp varsa görünür: kod + kanal rozeti (E-posta/SMS/WhatsApp) + Geçerli/Süresi Dolmuş + geçerlilik zamanı. Etiketler kalemi Etiketleri Yönet diyaloğunu açar; etiket yoksa “Etiket yok”.
Özel Alanlar · düzenleme modu (tipli girişler + Salt Okunur)
Özel Alanlar
İptal
03.03.1998
+90 5XX XXX XX XX
Boğaziçi Üniversitesi
Salt Okunur
•••••••••••
Bu alan sadece öğrenci tarafından düzenlenebilir.
İptalKaydet
EditCustomFieldsCardMutation → updateOrganizationStudent(customFields[]). Sahibi-öğrenci (OWNER) düzenleyebilir alanlar yöneticiye salt-okunur. Kayıt toast'ı “Özel alanlar güncellendi”, değişiklik yoksa “Değişiklik yapılmadı”. Kaydedilmemiş düzenleme beforeunload + iptal onay diyaloğu ile korunur.
Özel Alanlar · tanım yok (boş)
Özel Alanlar
Henüz özel alan tanımlanmamış.
Özel Alan Tanımla
Organizasyonda hiç özel-alan tanımı yoksa kesikli boş panel + Özel Alan Tanımla → Öğrenci Özel Alanları yönetim sayfasını (sheet) açar. Detay sayfası yükleniyorken tüm gövde skeleton olarak render edilir.

Öğrenci Detayı · Kayıtlar · Abonelikler · Satın Alımlar
Contact-360'ın kalan üç sekmesi. Kaynak: aynı StudentDetailPageQuery (enrollments, subscriptions) + Satın Alımlar sekmesi kendi kendine yüklenen StudentPurchasesTabQuery → orders(first:50) (backend query-complexity bütçesi için ayrı sorgu, ErrorBoundary + Suspense ile izole). Yalnızca ADMIN/OWNER görür.
Kayıtlar sekmesi · Kurs Kayıtları tablosu
teachfluence
9+
AU
EY
Elif Yılmaz
elif.yilmaz@ornek.com
Genel Bakış Kayıtlar 3 Abonelikler 1 Satın Alımlar 7
Kurs Kayıtları
Öğrencinin kayıtlı olduğu kurslar ve ilerleme durumu
KursDönemİlerlemeErişim Bitiş
Sosyolojiye Giriş2025 Güz Dönemi
100%
-
Psikolojiye Giriş2025 Bahar Dönemi
62%
31 Ara 2026
Mitoloji SerisiTek Dönem
18%
-
Kurs adı ilgili kurs yönetim sayfasına bağlanır. İlerleme progress.overallProgress (yuvarlanmış %), Erişim Bitiş accessExpiresAt yoksa “-”. Boş: “Henüz kayıtlı kurs bulunmuyor.” Kurs’u silinmiş kayıtlar tablodan filtrelenir.
Abonelikler sekmesi · Aktif Abonelikler
Genel Bakış Kayıtlar Abonelikler 2 Satın Alımlar
Aktif Abonelikler
Öğrencinin mevcut abonelik durumu
Premium ÜyelikAktif
Sonraki Ödeme: 3 Ağustos 2026
Ödemeleri Görüntüle
Yıllık ErişimÖdeme GecikmişÖmür Boyu
Dönem sonunda iptal edilecek
Dönem Bitiş: 12 Şubat 2027
Ödemeleri Görüntüle
Durum rozetleri: Aktif (yeşil) · Deneme (mavi) · Ödeme Gecikmiş (sarı) · İptal Edildi / Süresi Doldu (gri/kırmızı). “Dönem sonunda iptal edilecek” notu cancelAtPeriodEnd ile. Boş: “Aktif abonelik bulunmuyor.” Ödemeleri Görüntüle yan sheet açar (aşağıda).
Ödemeler sheet · abonelik ödeme/fatura geçmişi
Ödemeler
Abonelik ödemeleri ve fatura geçmişi
₺349,00BaşarılıYinelenen
3 Temmuz 2026, 14:03
₺349,00BaşarılıYinelenen
3 Haziran 2026, 14:01
₺349,00Başarılıİlk Ödeme
3 Mayıs 2026, 13:58
Kaynak: StudentSubscriptionPaymentsSheet_subscription. Her satır Tutar / Ödenen Tutar / Ödeme Tarihi + fatura başına “Faturayı İndir”. Boş: “Bu abonelik için ödeme bulunamadı.”
Satın Alımlar sekmesi · Satın Alma Geçmişi (kendi kendine yüklenir)
Genel Bakış Kayıtlar Abonelikler Satın Alımlar 7
Satın Alma Geçmişi
Öğrencinin tüm satın alma işlemleri
TarihÜrünlerTutarDurum
8 Tem 2026Sosyolojiye Giriş₺1.385,83Tamamlandı
2 May 2026Psikolojiye Giriş +1₺2.640,00Tamamlandı
18 Mar 2026Mitoloji Serisi₺2.640,00Kısmen İade Edildi
4 Şub 2026Birebir Koçluk · 4 Seans₺3.200,00Ödeme Bekleniyor
14 Şub 2025Flu Akademi 1. Dönem Paketi₺3.517,50İade Edildi
Satır dış-bağlantısı /admin/orders/{slug}'e gider. Sipariş durum rozetleri: Ödeme Bekleniyor / Tamamlandı / Kısmen İade Edildi / İade Edildi / Başarısız vb. (renk-kodlu). Ürünler lineItems.orderable (CourseAcademicTerm / CoachingSessionPlan / Bundle). Yükleniyor: 4 satırlık skeleton kartı; hata: ortalanmış “Satın almalar yüklenemedi. Lütfen sayfayı yenileyin.” Boş: “Henüz satın alma bulunmuyor.”

Öğrenci Özel Alanları · Tanım Yöneticisi
Organizasyon geneli öğrenci özel-alan tanımlarını yönetir (araç çubuğundaki Özel Alanlar). Kaynak: CustomFieldDefinitionsListQuery → Organization.customStudentFieldDefinitions{id,type,title,editability,validationSchema,visibility} + reorder/create/update/delete OrganizationStudentCustomFieldDefinition mutasyonları. Büyük modal (85vh), sekmeler Mevcut Alanlar (N) ve Alan Ekle; kaydedilmemiş düzenleme onay diyaloğu ile korunur.
Mevcut Alanlar sekmesi · sol liste + sağ form paneli (master-detail)
Öğrenci Özel Alanları
Öğrenciler için özel bilgi alanları tanımlayın. Bu alanlar öğrenci profillerinde görünür.
Mevcut Alanlar (4)Alan Ekle
Doğum Tarihi
TarihHerkese Açık
Telefon
TelefonÖzel (Öğrenci ve Yöneticiler)
Üniversite
Kısa MetinHerkese Açık
TC Kimlik No
Kısa MetinGizli (Sadece Yöneticiler)
Alanı Düzenle
Doğum Tarihi
Tarih
Herkese Açık
Bu alanı kimlerin görebileceğini belirleyin.
Öğrenci ve Yöneticiler
Alanı Sil
İptalKaydet
Sol liste satırları başlık + Tür/Görünürlük rozetleri + yukarı/aşağı yeniden-sıralama okları (“Yukarı taşı”/“Aşağı taşı”) + düzenle/sil. Alan seçilmediğinde sağ panelde ipucu: “Düzenlemek için soldan bir alan seçin.” Liste boşsa “Henüz özel alan tanımlanmamış”. Sıralama toast'ı “Sıralama güncellendi”.
Alan Ekle sekmesi · tip-duyarlı form (Tekli Seçim)
Mevcut Alanlar (4)Alan Ekle
Örn: Doğum Tarihi, TC Kimlik No...
Tekli Seçim
Lisans
Yüksek Lisans
Seçenek ekle...
Özel (Öğrenci ve Yöneticiler)
Sadece Yöneticiler
İptalKaydet
Alan Türü: Kısa/Uzun Metin · Sayı · Tarih · Tarih ve Saat · Tekli/Çoklu Seçim · Metin Listesi · Telefon · E-posta · URL · Resim · Nesne · Nesne Dizisi · Form. Tipe göre kontroller değişir (Seçenekler, Maksimum Karakter, Min/Maks Değer, Nesne Özellikleri, En Boy Oranı, Varsayılan Ülke Kodu). Resim ve Form türleri düzenlemede tip seçiciyi kilitler. Doğrulama: “Alan adı gerekli”, “En az bir seçenek eklemelisiniz”.
Alanı Sil · onay diyaloğu (yıkıcı)
Alanı Sil
Bu alanı silmek istediğinizden emin misiniz? Tüm öğrencilerdeki bu alana ait veriler silinecektir.
İptalSil
deleteOrganizationStudentCustomFieldDefinition — tanımı ve tüm öğrencilerdeki verisini kalıcı siler; buton silme sırasında “Siliniyor...”. Kaydedilmemiş düzenleme varken sekme/alan değiştirmek de bir kaydedilmemiş-değişiklik onay diyaloğu tetikler.

Öğrenci · Lead / Kayıt Tamamlanmamış Durum
Bir “lead”, e-posta ile eklenmiş (addOrganizationStudents) ancak henüz hiç giriş yapmamış / adı girilmemiş bir OrganizationStudent'tır: ad yok → listede (isim girilmemiş), detay başlığında düz -; Son Giriş / Son Aktivite boş (-), Toplam Harcama ₺0,00 (tamamlanmış ödeme yok), boş kayıt/abonelik/satın alma. Aynı Contact-360 şablonu bu minimal veriyle nasıl göründüğünü aşağıda yakalar. Kaynak: StudentDetailPageQuery; latestLoginOtp null → OTP satırı hiç render edilmez.
Lead detayı · Genel Bakış (kimlik = e-posta, boş alanlar)
teachfluence
9+
AU
-
boran.aksoy@ornek.com
Genel Bakış Kayıtlar Abonelikler Satın Alımlar
Öğrenci Bilgileri
E-posta
boran.aksoy@ornek.com
Ad Soyad
-
Kayıt Tarihi
28 Haziran 2025 16:05
Toplam Harcama
₺0,00
Son Giriş
-
Son Aktivite
-
Etiketler
Etiket yok
Özel Alanlar
Düzenle
Doğum Tarihi
-
Telefon
-
Üniversite
-
Ad “-” ise başlıkta e-posta değil düz “-” gösterilir (kod: studentName = [givenName,lastName].join(' ') || '-') ve avatar fallback'i kişi ikonuna döner. OTP satırı latestLoginOtp yokken hiç çizilmez. Detay sayfasında Toplam Harcama her zaman formatMoney ile basılır; tamamlanmış ödeme yoksa ₺0,00 görünür (roster'daki em-dash kısayolu burada yoktur). Kod özel bir lead banner'ı barındırmaz — bu ekran, boş verinin doğal görünümüdür.
Lead · boş Kayıtlar & Satın Alımlar sekmeleri
Genel Bakış Kayıtlar Abonelikler Satın Alımlar
Kurs Kayıtları
Öğrencinin kayıtlı olduğu kurslar ve ilerleme durumu
Henüz kayıtlı kurs bulunmuyor.
Aktif Abonelikler
Öğrencinin mevcut abonelik durumu
Aktif abonelik bulunmuyor.
Satın Alma Geçmişi
Öğrencinin tüm satın alma işlemleri
Henüz satın alma bulunmuyor.
Lead'lerde tüm sekme sayım rozetleri gizli (yalnızca >0 iken görünür), her sekme kendi boş metnini gösterir. Bir lead'i aktifleştirmek için tipik akış: satır/detay menüsünden Kursa Davet Et (doğrudan kayıt ya da davet e-postası) veya Öğrenci Ekle ile toplu davet.

Öğrenciler · Ücretsiz Erişim Ver
Bir öğrenciye ödeme almadan ürün erişimi tanımlama akışı: roster satırından ya da Öğrenci Detayı'ndan tetiklenen “Ücretsiz Erişim Ver” aksiyonu + diyalog (ürün türü seç — Kurs / Dijital Ürün / Etkinlik / Paket —, sebep, süre). Kaynak backend: grantProductAccess(orderableId, studentId | email, message?)orderableId bir Kurs(Dönem)/DijitalÜrün/CanlıEtkinlik/Paket GlobalId'sidir, alıcı studentId ya da email ile belirtilir, message alıcının kayıt e-postasına eklenen opsiyonel nottur; yetki organizasyon Yönetici/Sahip veya ürünün eğitmeni (COURSE_EDIT / hasTermPermission). Bugün bu ekran yok — mutation yalnızca GraphQL API'de var; roster ve profildeki giriş noktaları, diyalog ve verilen-erişim rozeti henüz kurulmadı. Diyalogdaki sebep ve süre alanları planlanan FE eklentileridir — mutation bugün bu iki alanı taşımaz.
Diyalog · Öğrenci Detayı üzerinden “Ücretsiz Erişim Ver”
teachfluence
9+
AU
EY
Elif Yılmaz
elif.yilmaz@ornek.com
Ücretsiz Erişim Ver
Genel Bakış Kayıtlar 3 Abonelikler 1 Satın Alımlar 7
Sosyolojiye Giriş
2025 Güz Dönemi · Satın alım
Aktif
Sınav Çalışma Rehberi
Dijital ürün · Satın alım
Aktif
Ücretsiz Erişim Ver
“Elif Yılmaz” öğrencisine ödeme almadan ürün erişimi tanımlayın.
Kurs Dijital Etkinlik Paket
Sosyolojiye Giriş
2025 Güz Dönemi
Yalnızca “Kurs” türünde dönem seçilir; diğer türlerde bu alan gizlenir.
Burslu öğrenci — güz kampanyası kapsamında ücretsiz erişim.
Sebep iç kayıt amaçlıdır; öğrenciye gösterilmez.
SüresizBelirli tarihe kadar
31.12.2025
Tarih geçtiğinde erişim otomatik olarak sonlanır; “Süresiz” seçilirse kalıcıdır.
İptalErişim Ver
Ürün Türü segmenti içerik alanını değiştirir: Kurs → Kurs + Dönem (CourseAcademicTerm); Dijital → tek DigitalProduct seçimi; EtkinlikLiveEvent; PaketBundle (dört ayrı tür, takma-ad değil). Başarı toast'ı “{ürün} erişimi verildi” + Kayıtlar listesine @appendNode. grantProductAccess bugün yalnızca GraphQL API'de var (yönetim panelinde yüzeyi yok) — bu diyalog, giriş noktaları ve “ücretsiz erişim” rozeti kurulacak frontend iş kalemidir.
Giriş noktaları · roster satır menüsü + toplu işlem çubuğu
3 öğrenci seçildi Seçimi temizle
Kursa Davet Et Ücretsiz Erişim Ver Yeni
Detayları Görüntüle
Etiketleri Yönet
Kursa Davet Et
Ücretsiz Erişim VerYeni
İki giriş noktası eklenir: satır kebabına (RowActions) tekil “Ücretsiz Erişim Ver” + seçim toplu-işlem çubuğuna toplu varyant (her seçili öğrenci için grantProductAccess, sayı bazlı başlık + kısmi-başarı özeti; ayrı bir toplu uç nokta da eklenebilir). Aksiyon yalnızca yazma yetkisi olan üyeye (Yönetici/Sahip veya ürün eğitmeni) görünür; aksi halde menüde gizlidir.
Sonuç · Kayıtlar sekmesinde “Ücretsiz Erişim” rozeti + kaynak satırı
Sosyolojiye Giriş
2025 Güz Dönemi · Satın alım · ₺1.200,00
Aktif
İleri İstatistikÜcretsiz Erişim
2026 Bahar Dönemi · Manuel · Sebep: “Burslu öğrenci — güz kampanyası” · Veren: Ahmet U. · 9 Tem 2026
31 Ara 2025'e kadar
Sınav Çalışma Rehberi
Dijital ürün · Satın alım
Aktif
Bugün ücretsiz erişim yalnızca GraphQL API'deki grantProductAccess mutation'ı ile veriliyor; verilen erişim panelde ayrı olarak işaretlenmiyor.
Verilen erişim, satın alınan kayıttan ayırt edilir: Ücretsiz Erişim rozeti + kaynak satırı (Manuel · sebep · veren üye · tarih) ve süreliyse bitiş çipi. Kaldırma (“Erişimi Kaldır”, onay ister), süre alanı ve süre dolunca otomatik pasife-dönme birer planlanan eklentidir — grantProductAccess bugün süre/kaldırma taşımaz, bu yüzden hem backend hem FE işidir.