📺 Canlı Yayın Modülü
YouTube iframe + FVT custom chat hybrid, 11 endpoint, admin moderasyon
🎬 Hybrid Mimari
[Video Stream]
│
▼
[YouTube Live] ← video={canliYayinKod}
│
▼
[iframe embed in /canli-yayin]
Paralel:
[Sohbet] → /api/chat/messages + Chat WS
[Soru-Cevap] → /api/live-stream/questions
[Moderasyon] → /api/live-stream/admin/questions/{id}/...
🔌 11 Endpoint
Public
GET/api/live-stream/statuscanliYayinKod, baslik, soruAktif, sohbetPro
GET/api/live-stream/broadcastsGeçmiş yayınlar + YouTube chapter markers
POST/api/live-stream/broadcasts/{id}/viewView counter
GET/api/live-stream/questions
GET/api/live-stream/questions/{id}
Admin Only
GET/api/live-stream/admin/questions
POST/api/live-stream/admin/questions/{id}/answer
POST/api/live-stream/admin/questions/{id}/unanswer
POST/api/live-stream/admin/questions/{id}/show
POST/api/live-stream/admin/questions/{id}/remove
📺 Status Response Şeması
{
"canliYayinAktif": true,
"canliYayinKod": "bfMOKDQisv0", // YouTube video ID
"baslik": "FVT - Finansal Veri Takibi",
"soruAktif": true,
"sohbetPro": true // Sohbet PRO-only mu
}
📜 Broadcasts Şeması
{
"id": 78,
"video": "bfMOKDQisv0",
"tarih": "2026-05-23",
"baslik": "Piyasa Analizi - 75",
"seflink": "piyasa-analizi-75",
"izlenme": 72,
"bolumler": "0:00:00 - GİRİŞ
0:13:40 - BİST100
0:33:31 - ZPLIB
...
1:26:53 - SORULAR" // YouTube chapter markers
}
👥 Gerçek Chat Aktivite (Gözlemlenen)
- 40+ unique aktif kullanıcı sohbette
- 50+ mesaj 1 saatlik yayında
- Host: Kerem hocam
- Admin: Toprak (pinned mesaj + close)
- Anlık izleyici: 7 (gözlemlenen)
- Yayın frekansı: hafta içi 2-3
📌 Pinned Mesaj Örnek
"TLY %63,14 — PHE %26,42 — IOG %7,90 — YIT %2,53"
— Toprak tarafından sabitlendi (yayın özeti)
🔄 Sohbet Akış
[User mesaj yazar]
│
▼
[Chat rules check]
├─ İlk kez: /api/chat/rules/status → /accept
└─ Kabul ✓
│
▼
[POST /api/chat/messages]
│
▼
[Backend persist + moderation filter]
│
▼
[Chat WS broadcast]
│
▼
[Tüm yayın izleyicileri receive]
🎯 Q&A Akış (Admin Moderasyon)
[User soru gönderir → /api/live-stream/questions POST]
│
▼
[Admin görür: /api/live-stream/admin/questions]
│
├─ Uygun → /admin/questions/{id}/show (yayında göster)
├─ Spam → /remove (kaldır)
└─ Cevap → /answer
│
▼
[Yayın altında görünür: "Soru: ... Cevap: ..."]