🔀 Veri Akış Haritası
Hangi veri nereden geliyor, hangi API'den hangi modüle akıyor
📡 Dış Kaynaklar → FVT
BIST
Hisse fiyat, endeks, devre kesici → Matriks Radix WS → FVT Stock WS
KAP
Açıklama, bilanço, temettü, sermaye artırımı → FVT scraper → DB + kap_update event
TEFAS
Aylık fon raporu, NAV, holdings → FVT batch → /api/funds/*
Binance
Kripto real-time → wss://stream.binance.com:9443 (direct)
Matriks Radix
BIST PRO real-time → wss://rt.radix.matriksdata.com:443 (JWT)
Anthropic Claude Haiku
LLM → /api/asistan/sor + /api/portfolio/{id}/ai-analysis
YouTube
Canlı yayın iframe → video={canliYayinKod}
VakıfBank
Sanal POS → POST /api/payment/vakifbank/create
🌐 4 Tip Veri Akışı
1️⃣ Dış → İç
[BIST] → Matriks WS → FVT Stock WS → kullanıcı tarayıcı
[KAP] → FVT scraper → DB → kap_update event → WS broadcast
[TEFAS] → Aylık batch → /api/funds/{kod}/positions
[Binance] → Direct WS → kripto fiyat (kullanıcı tarayıcısında)
[Claude Haiku] → HTTP API → Apex AI response
2️⃣ İç → İç (CQRS Domain Events)
[trade:changed] → wallet:transaction → balance:changed
[portfolio:changed] → React Query invalidate → UI refresh
[dividend:changed] → wallet:transaction (gelir) → notification:new
[target:changed] → rebalance suggestion
[kap_update] → notification:new (portföydeki user)
3️⃣ İç → Kullanıcı
[REST API] /api/* → JSON response → React Query cache → UI render
[WebSocket] → 4 internal WS push → BroadcastChannel multi-tab → cache invalidate
4️⃣ Kullanıcı → İç
[POST /api/portfolio/trade] → backend mutation → 4 domain event → cross-module sync
[POST /api/social/post] → cashtag parse + trend counter + notif
[POST /api/asistan/sor] → intent classify → kural veya Claude Haiku
🎯 Kritik Cross-Module Akışlar
A. Trade → Cüzdan Otomatik Sync
[POST /api/portfolio/trade]
│
▼
[Backend DB TX]
├─ INSERT trades
├─ UPDATE positions (ort. maliyet recalc)
├─ INSERT wallet_transactions
└─ UPDATE wallet_balance
│
├─→ Event: trade:changed
├─→ Event: portfolio:changed
├─→ Event: wallet:transaction
└─→ Event: balance:changed
│
▼
[WS broadcast]
│
▼
[3 sayfa eş zamanlı refresh]
- /portfoy/{id}
- /cuzdan
- /portfoy (hub)
B. Hisse Fiyat Tick → 7 Sayfa Update
[Matriks WS tick: THYAO 288 → 288.50]
│
▼
[FVT WS Gateway]
│
▼
[emit('data_update', {THYAO, 288.50})]
│
▼
[Subscribed clients receive]
│
├─→ Hisse Detay sayfası
├─→ Portföy (pozisyon değer recalc)
├─→ Favoriler
├─→ Terminal widget
├─→ Hisse Liste tablo
├─→ t-Chat tahmin recalc
└─→ Akış cashtag indicator
C. KAP Haber → Notification
[KAP API yeni açıklama]
│
▼
[FVT scraper job (cron)]
│
▼
[DB INSERT: kap_aciklamalari]
│
▼
[Event: kap_update]
│
▼
[WS broadcast tüm clients]
│
▼
[Backend: portföydeki user'lara filter]
│
▼
[INSERT notifications]
│
▼
[/api/notifications/unread-count +1]
│
▼
[UI: bell icon badge]
D. Temettü Dağıtım → Wallet Gelir
[Temettü ödeme günü cron]
│
▼
[Şirket × portföydeki hisse adetler]
│
▼
[Net temettü hesap: Brüt × (1 - 0.15)]
│
▼
[Event: dividend:changed]
│
▼
[Wallet'a otomatik gelir kayıt]
│
▼
[Bildirim: "₺X temettü tahsil edildi"]
E. Apex AI Portföy Analiz
[POST /api/portfolio/{id}/ai-analysis/generate]
│
▼
[Backend: portföy + benchmark data topla]
├─ /portfolio/{id}/holdings
├─ /portfolio/{id}/history
├─ /stocks/indices/XU100 (benchmark)
├─ Altın fiyat
├─ USD kuru
└─ Mevduat faizi (~%45/yıl)
│
▼
[Anthropic Claude Haiku API]
├─ System: "Sen Türk finansal danışmansın..."
├─ Context: tüm veriler
└─ Response: JSON (skor + SWOT + benchmark + 5 aksiyon)
│
▼
[Cache 24sa (günde 1 hak)]
│
▼
[UI render: 22/100 skor + detaylı analiz]
🔌 Sayfa → Endpoint Map
| Sayfa | Tetiklenen Endpoint'ler |
|---|---|
| / | ~5-10 (summary + daily-top + smart-money + indices) |
| /hisseler/yerli/THYAO | ~10 (stocks/THYAO + 9 sub-endpoint) |
| /portfoy/{id} | 13+ paralel (React Query bulk) |
| /cuzdan | ~6 (balance + summary + transactions + categories) |
| /terminal | 5-15 (widget bağlı) |
| /t-chat | 3 + Guess WS subscribe |
| /canli-yayin | ~5 + Chat WS |
| /akis | ~3 + Social WS subscribe |
📊 Endpoint Kaynak Map
| Endpoint | Veri Kaynak | Güncelleme |
|---|---|---|
| /api/stocks/{kod} | BIST + Matriks | Real-time |
| /api/stocks/{kod}/bilanco | KAP | Quarterly |
| /api/stocks/{kod}/dividends | KAP | Event-driven |
| /api/stocks/{kod}/fund-positions | TEFAS aylık | Monthly |
| /api/funds/{kod} | TEFAS | Daily NAV |
| /api/funds/{kod}/positions | TEFAS aylık | Monthly |
| /api/funds/predictions | FVT engine | Real-time (Guess WS) |
| /api/funds/smart-money | TEFAS fark | Monthly |
| /api/funds/fvt-score | FVT proprietary | Daily |
| /api/stocks/kripto/{kod} | Binance | Real-time |
| /api/asistan/sor | FVT kural + Claude Haiku | On-demand |
| /api/social/* | FVT DB | Real-time WS |
| /api/portfolio/* | FVT DB (kullanıcı) | User-driven |