CoachingSession), Dersler sayfasının “meetings” bölümünde kart ızgarası olarak listelenir (/admin/courses#meetings). Üstte yayın durumu sekmeleri (Tümü / Yayında / Taslak / Arşiv, sayaçlı), altta responsive VerticalCoachingCard ızgarası. Kaynak: coachingSessions(first,after,tagIds,query,sortBy:{OBJECT_INDEX,ASC}) bağlantısı · görünürlük COACHING_VIEW iznine bağlı, oluşturma COACHING_CREATE gerektirir.bookingMode) gösterir. Varsayılan sıralama OBJECT_INDEX ASC. Kartlar /admin/coaching-sessions/[slug] detayına gider.canCreate (COACHING_CREATE) için görünür.VerticalImageCardSkeleton).CreateCoachingSessionDialogContent. Ad + adres (slug) + randevu modu; Dahili Sistem seçilince seans süresi, toplantı platformu, tampon, minimum bildirim ve maksimum ileri tarih alanları açılır. Kaynak: createCoachingSession mutasyonu./admin/coaching-sessions/[slug]): ProductDetailHeader (geri “Birebir görüşmelere dön”, yayın rozeti, “Sayfayı Görüntüle”), yapılandırma uyarı alertleri, DRAFT için yayın banner'ı ve kaydırılabilir sekmeler. Kaynak: AdminCoachingSessionPageQuery · Ayarlar & Öneriler sekmeleri hasResourcePermission('COACHING_SESSION', id, 'COACHING_EDIT') ile kilitlenir.IN_HOUSE modunda görünür.lockedLabel “Bu bölümü düzenleme yetkiniz yok”). IN_HOUSE görüşmelerde müsaitlik kartı düzenleyici olmayanlara da salt-okunur gösterilir.?tab=reservations): araç çubuğu (öğrenci ara · tarih aralığı · Durum · Sıfırla), Tablo / Takvim alt-görünümleri. Kaynak: useReservations_coachingSession (reservations bağlantısı; student, startDate, endDate, coachingSessionPlan.name, status, url, zoomMeetingId). Varsayılan durum filtresi ['RESERVED'], aralık bugünden itibaren.| Öğrenci | Başlangıç Zamanı | Bitiş Zamanı | Plan | Durum | Link | ||
|---|---|---|---|---|---|---|---|
EY Elif Yılmaz | elif.yilmaz@ornek.com | 14 Tem 2026, 10:00 | 14 Tem 2026, 10:30 | 3 Görüşme Paketi | Rezerve | Seansa Git | |
MK Mert Kaya | mert.kaya@ornek.com | 14 Tem 2026, 11:00 | 14 Tem 2026, 11:30 | Tekil Görüşme | Rezerve | Zoom Toplantısını Başlat | |
ZD Zeynep Demir | zeynep.demir@ornek.com | 13 Tem 2026, 15:00 | 13 Tem 2026, 15:30 | 3 Görüşme Paketi | Tamamlandı | — | |
AŞ Ahmet Şahin | ahmet.sahin@ornek.com | 12 Tem 2026, 16:00 | 12 Tem 2026, 16:30 | Tekil Görüşme | Öğrenci Tarafından İptal | — | |
SB Selin Barış | selin.baris@ornek.com | 11 Tem 2026, 14:00 | 11 Tem 2026, 14:30 | 3 Görüşme Paketi | Organizasyon Tarafından İptal | Görüşme Linki Ekle |
CoachingSessionReservationStatus): Rezerve (info) · Tamamlandı (success) · Öğrenci Tarafından İptal (neutral) · Organizasyon Tarafından İptal (danger). Satır kebab menüsü: Görüşme Linkini Güncelle. Link kolonu moduna göre Seansa Git / Zoom Toplantısını Başlat / Görüşme Linki Ekle gösterir.ReservationsDayDetail panelinde saat-saat listelenir. Boş gün: “Bu gün için rezervasyon yok.”UpdateCoachingSessionReservationDialogContent — dahili sistemde otomatik toplantı oluşturulamadığında manuel link girmeye yarar. Zoom başlatma linki alınamazsa: “Zoom başlatma linki alınamadı. Lütfen tekrar deneyin.”?tab=students). SegmentedViewToggle: Kayıtlılar / Davetler. Kaynak: CoachingSessionStudentsQuery · studentInvitations{status,email,createdAt,invitedBy}.| Öğrenci | Kalan Görüşme Hakkı | Toplam Görüşme Hakkı | İlk Satın Alma Tarihi | ||
|---|---|---|---|---|---|
EY Elif Yılmaz | elif.yilmaz@ornek.com | 2 | 3 | 4 Tem 2026 | |
MK Mert Kaya | mert.kaya@ornek.com | 0 | 1 | 28 Haz 2026 | |
SB Selin Barış | selin.baris@ornek.com | 3 | 3 | 10 Tem 2026 |
"{email}" Üyesinin Kalan Görüşme Hakkını Güncelle. Öğrenci yükleme hatası: “Öğrenciler yüklenemedi...”.| Davet Tarihi | Durum | Davet Eden | ||
|---|---|---|---|---|
| burak.can@ornek.com | 9 Tem 2026 | Beklemede | Ayşe Uçar | |
| deniz.ak@ornek.com | 5 Tem 2026 | Kabul Edildi | Ayşe Uçar | |
| ece.tan@ornek.com | 1 Tem 2026 | Süresi Doldu | Ayşe Uçar |
InvitationStatus): Beklemede / Kabul Edildi / İptal Edildi / Süresi Doldu. “Doğrudan Kayıt” açıkken davet e-postası gitmeden öğrenci kaydedilir.IN_HOUSE görüşmelerde görünür (eğitmen listesi + Google Takvim durumu). Satışlarım sekmesi görüşmeye ait sipariş satır kalemlerini kazanç kırılımıyla listeler (CoachingSessionOrders).| Tarih | Öğrenci | Durum | Seans Sayısı | Satış Fiyatı | Ödenen Fiyat | Ödeme Sağlayıcı Komisyonu | Teachfluence Komisyonu | Net Kazanç |
|---|---|---|---|---|---|---|---|---|
| 4 Tem 2026 | EY Elif Yılmaz | Tamamlandı | 3 | ₺4.500 | ₺4.500 | ₺135 | ₺225 | ₺4.140 |
| 28 Haz 2026 | MK Mert Kaya | Tamamlandı | 1 | ₺1.500 | ₺1.575 | ₺47 | ₺75 | ₺1.453 |
OrdersTableSkeleton.?settingsView=pricing): plan-bazlı fiyat kartları (görüşme hakkı sayısı, fiyat, KDV, süre, tampon, görünürlük). Kaynak: CoachingSessionPricing_coachingSession. “Yeni Fiyatlandırma Ekle” → SetCoachingSessionPlanPricingDialogContent.WeeklyAvailabilityEditor + tarih-bazlı istisnalar); Etiketler ve Özel Alanlar alt-görünümü organizasyon etiketleri + özel alan değerleri; Kritik İşlemler alt-görünümü kalıcı silme (deleteCoachingSession).tagScopes) ve visibility’ye bağlıdır. Kaynak: coachingSession.tags + customFieldValues.fieldDefinition.DangerousCoachingSessionSettings_coachingSession./admin/settings): izinle filtrelenen üst-düzey sekmeler, her sekme URL-senkron alt-sekmelere sahip; başlıkta yardım menüsü + SettingsSearch (⌘K). Kaynak: SettingsPageQuery (~20 fragment). Her sekme hasAnyOrgPermission(tab.permissions) ile gizlenir; görünür sekme yoksa NoAccessMessage.UnsavedChangesConfirmDialog). Eski URL yönlendirmeleri: roles→members#roles, website→organization#website, checkoutFields→payment.visibleTabs.length === 0 olduğunda tüm sekmeler yerine tek NoAccessMessage (section='Ayarlar') gösterilir.SettingsSearch komut paleti sekme/alt-sekmeye anahtar-kelime eşanlamlılarıyla atlar (ör. “iban” → Ödeme, “filigran” → İçerik Ayarları).?tab=members§ion=members): özet kartları + araç çubuğu (email arama · rol filtresi · davet · özel alan tanımları) + MembersDataTable. Kaynak: OrganizationMembers fragment (members{role,createdAt,isPublic,tags,givenName,lastName,member{email}}) · düzenleme ORG_MEMBERS_EDIT, görüntüleme ORG_MEMBERS_VIEW. Varsayılan sıralama OBJECT_INDEX ASC.| İsim | Soyisim | Rol | Etiketler | Görünürlük | Katılma Tarihi | ||
|---|---|---|---|---|---|---|---|
AU Ahmet | Uysal | ahmet@ornek.com | Sahip | Kurucu | Herkese Açık | 2 yıl önce | |
AU Ayşe | Uçar | ayse@ornek.com | Yönetici | Eğitmen | Herkese Açık | 8 ay önce | |
CÖ Can | Özkan | can@ornek.com | Eğitmen | — | Gizli | 3 ay önce | |
DK Deniz | Kara | deniz@ornek.com | Üye | — | Herkese Açık | 6 gün önce |
InviteOrganizationMemberDialogContent. Aynı dialog Davetler bölümünden de açılır.OrganizationMemberInvitations_organization.?tab=members§ion=roles): granüler izin kapsamlarına sahip özel RBAC rolleri. Kart ızgarası (renk noktası · ad · açıklama · “{sayı} izin”). Kaynak: OrganizationRoles_organization (roles{name,description,color,permissions}). Görüntüleme ORG_MEMBERS_VIEW, düzenleme ORG_MEMBERS_EDIT.NoAccessMessage “Bu bölüme erişiminiz yok — {rol} rolünüz Roller bölümüne erişim içermiyor. Erişim için bir Sahip veya Yönetici ile iletişime geçin.” Boş durum: ShieldCheck + “Henüz rol yok”.PermissionScopeSelector izinleri gruplar halinde onay kutularıyla sunar. Doğrulama TR: ad zorunlu / maks 100, açıklama maks 500, geçerli hex renk, en az bir izin.deleteOrganizationRole mutasyonu./admin/settings/members/[memberId]): kimlik, organizasyona özel profil override'ları, açıklama, özel alanlar ve rol atamaları. Kaynak: MemberDetailPageQuery (node → OrganizationMember). canEdit = ORG_MEMBERS_EDIT VEYA kendi profili (viewerMembership.id === member.id) — bu ekran aynı zamanda üyenin “kendi profilim” görünümüdür.InlineEditField). Rol atamaları organizasyon-geneli vs. kaynak-kapsamlı ayrımı yapar; “Geçerli İzinler” birleşik özettir. Görünürlük anahtarı yalnızca ORG_MEMBERS_EDIT ile aktiftir.ORG_MEMBERS_EDIT için görünür.AssignRoleDialog — atama başarılı: “Rol başarıyla atandı”. Kaldırma onayı (RevokeRoleAssignmentDialog): “Bu üyeden ‘{roleName}’ rolünü kaldırmak istediğinizden emin misiniz?”.updateOrganizationVideoSettings(input) zaten var ve OrganizationVideoSettings okunuyor — ama bugün panel bu ayarları yalnızca salt-okunur gösteriyor; düzenleme yüzeyi yok. Mutation bugün iki alanı yazar: sağlayıcı (preferredProvider: AWS / Cloudflare / Bunny) ve otomatik altyazı dilleri (captionLanguages, ISO 639-1). Aşağıdaki varsayılan görüntüleme kontrolleri (kalite / oynatma hızı / otomatik oynat / indirme) planlanan eklentilerdir; dinamik filigran ise ayrı bir ayardır (OrganizationVideoWatermarkSettings). Yetki: ORG_SETTINGS_EDIT. Sağlayıcı Cloudflare Stream; altyazı/filigran iş hattı arka planda çalışıyor.hasAnyOrgPermission(ORG_SETTINGS_VIEW) ile görünür; düzenleme ORG_SETTINGS_EDIT). Kaydet → updateOrganizationVideoSettings (mutation mevcut) + toast “Video ayarları güncellendi”. Değişiklik yoksa buton pasif; sekme değiştirmede kaydedilmemiş değişiklik onayı (UnsavedChangesConfirmDialog).OrganizationVideoSettings (sağlayıcı + altyazı dilleri) okunur ama form yerine statik değerler render edilir; kilit rozeti + uyarı bandı. Planlanan iş, bu salt-okunur kartı soldaki düzenleyiciye çevirmektir — sağlayıcı ve altyazı dilleri için mutation hazır (yalnızca frontend eksik), kalite/oynatma/filigran kontrolleri ise ek backend+FE işidir.updateOrganizationVideoSettings(captionLanguages[])'e gönderilir. Filigran anahtarı dinamik (öğrenci e-postası) filigranı açar/kapar; bu ayar bugün de arka planda uygulanıyor ancak panelden değiştirilemiyor.