🗄️ Database Schema (Tahmini)
Tüm tablolar + kolonlar — API response field naming'den çıkarılmış
⚠️ Not
Bu schema FVT backend'inden
API response'larından geri çıkarıldı . Birebir DB'ye karşılık gelmeyebilir ama %95+ yakındır. SQL (PostgreSQL muhtemel) + Türkçe field naming.
📊 İstatistikler
1️⃣ AUTH (Kullanıcı)
users
Kolon Tip Not
id integer PK Auto-increment
email varchar(255) UNIQUE Validate email
adi varchar(255) 2-255 char
soyadi varchar(255) 2-255 char
kullaniciAdi varchar(50) UNIQUE Handle (Bekir, sidekick...)
parolaHash varchar(255) bcrypt
telefon varchar(20) NULL
avatar varchar(255) NULL /uploads/avatars/...
rol enum user / admin / mod
pro integer 0/1 (PRO flag)
proPaket enum canliYayin / veriAnaliz / plus
proBitis timestamp Veri & Analiz / Canlı Yayın ayrı
emailVerified boolean default false
twoFactorEnabled boolean
twoFactorSecret varchar(255) TOTP secret
refKod varchar(10) Davet kodu (FVTPL7BN)
davetEden integer FK users.id NULL
hesapTuru enum Bireysel / Kurumsal
etarih timestamp Üyelik tarihi
durum integer 1=aktif, 0=dondurulmus, -1=silinmis
refresh_tokens
id integer PK
userId integer FK
token varchar(500)
expiresAt timestamp
createdAt timestamp
password_resets
id integer PK
email varchar(255)
kod varchar(6) 6 haneli
expiresAt timestamp +15dk
kullanildi boolean
email_verifications, oauth_accounts (Google/Apple)
email_verifications oauth_accounts
id, userId, token, expiresAt, dogrulandi id, userId, provider (google/apple), providerId, email
2️⃣ STOCKS (Hisse Senetleri)
stocks (yerli + yabancı + altın + emtia)
Kolon Tip Not
id integer PK
hisseKodu varchar(10) UNIQUE THYAO, AAPL
hisseAdi varchar(500) "Türk Hava Yolları A.O."
seflink varchar(255) URL slug
hissePazar integer 0=ana, 1=yıldız
hisseKategori integer FK categories.id 37=Finansal...
yabanci integer 0/1 discriminator
fiyat decimal(15,4)
alis / satis decimal(15,4)
gunlukYuzde decimal(7,4)
dunkuKapanis decimal(15,4)
piyDeg bigint Market cap (TL)
fark decimal(15,4)
hacimTl, hacimLot bigint
acilis, dusuk, yuksek decimal(15,4)
yilYuksek, yilDusuk decimal(15,4) 52H
sermaye bigint Ödenmiş sermaye
netBorc, netKar, favok, netSatis bigint Temel analiz
nakitTemettu decimal(10,4)
sonGuncelleme timestamp
simge varchar(5) ₺ veya $
stock_categories (50 sektör)
id integer PK
baslik varchar(100) "Bankalar", "Holdingler"...
sira integer
durum integer
stock_indices (BIST endeksler)
id integer PK
endeksKodu varchar(10) XU100, XU030, XBANK, XUTEK...
endeksAdi varchar(200)
tip enum ana / sektor / likit
index_composition
id integer PK
endeksId integer FK indices
hisseId integer FK stocks
agirlik decimal(10,6) %11.49 vs
donem varchar(10) 2026Q2
kap_aciklamalari
id, hisseId, baslik, icerik, etarih, link, durum
bilanco
id, hisseKodu, donem ("2026/3"), donemTarihi, varlikTipi
toplamVarliklar, ozsermaye, netBorc, netSatis
brutKar, faaliyetKari, netKar, favok
nakitNakitBenzerleri
bilanco_json (recursive tree)
dividends (temettüler)
id, hisseKodu, tarih, verim, brutTl, netTl
toplamTemettu, dagitmaOrani, dagitimTutari, stopaj (default 15)
sermaye_artirimlari
id, hisseKodu, baslangicTarih, bitisTarih
bedelliTutar, bedelliYuzde, bedelliDiger
bedelsizIcKaynakTutar, bedelsizIcKaynakYuzde
bedelsizToplamTutar, bedelsizYuzde
halka_arz (IPO)
id, arzId, sembolKodu, pazarKodu, sirket
talepToplamaBas, talepToplamaBit
konsorsiyumLideri, dagitimTipi, spkOnayTarihi
mevcutSermaye, yeniSermaye, bedelliSermaye, bedelsizSermaye
mevcutPaySatisi, ekPaySatisi, satisFiyati, bolunmusSatisFiyati
aciklama TEXT
signals (teknik sinyaller)
id, sembol, hisseAdi, sinyal, yon (alis/satis)
deger, aciklama, indicatorType (CCI/BOLLINGER/STOCHASTIC/RSI/MACD)
etarih, aktif
patterns (formasyonlar)
id, sembol, sonFiyat, pattern (DOUBLE_TOP, vb), patternLabel
yon, guven (0-100), pivotlar_json, neckline_json
hedefFiyat, stopFiyat, kirilimSeviyesi, olusumBari, durum
candle_patterns
id, sembol, pattern (DOJI/HAMMER/ENGULFING...), tarih, yon, guven
kripto, etf (US), byf (TR), gold
kripto etf (US) byf (TR) gold
id, kriptoKodu, kriptoAdi, kodu, matriksSymbol, binanceSymbol, fiyat, precision
id, symbol, name, exchange, sector, currency, expenseRatio, fiyat (İngilizce field!)
id, hisseKodu, hisseAdi, hisseKategori, piyDeg, yilYuksek, yilDusuk
id, baslik, altinKodu, fiyat, getiri, sira
etf_holdings (TUR ETF holdings)
id, etfId, sembol (ASELS.E), yuzde
3️⃣ FUNDS (Fonlar)
funds
Kolon Tip Not
id integer PK
varlikId integer 1=TL, 2=USD, 3=EUR, ...
islem integer 0/1 alım-satıma açık
kategoriId integer FK fund_categories 35=Para Piyasası
ustId integer 1=Hisse, 5=Para Piy...
katilim, hisse, bes, yabanci, serbest, doviz, avantaj integer Flag'ler (0/1)
stopaj decimal(5,2) 17.50
fonKodu varchar(10) UNIQUE AAL
fonAdi varchar(500)
fonTipi varchar(100) "Para Piyasası Şemsiye Fonu"
seflink varchar(255)
fiyat decimal(15,6) NAV
getiri decimal(10,4)
kategori varchar(100) denorm "Para Piyasası Fonu"
paraBirimi varchar(5) TL/USD/EUR/GBP/AU
toplamDeger bigint AUM (TL)
yatirimci integer Kullanıcı sayısı
dolulukOrani decimal(5,2) Kota %
pazarPayi decimal(5,2)
risk varchar(2) 1-7
yonetimUcret decimal(5,2) %
sirketKodu varchar(10) FK companies APY, AKP, ISP
isinKodu varchar(12) TRMAALWWWWW5
kurulusTarihi date
alisValor, satisValor integer T+N gün
islemBaslangicSaat time
sonGuncelleme timestamp
fund_risk_metrics (her güne 1 kayıt, hesaplanmış)
id, fonId, tarih
sharpe, duzeltilmisSharpe
beta, sortino, alpha, treynor, rmd
maximumKayip, downside, degisimKatsayi
pozitifGun, negatifGun, pozitifOran, negatifOran
fund_holdings (TEFAS aylık)
id, fonId, donem (YYYY-MM)
sembol, sembolTipi (hisse/bono/repo/tahvil/altin/...)
agirlik decimal(8,4), eskiAgirlik, fark
fund_categories (61)
id, baslik ("Petrol Fonu", "Halka Arz Fonu"...)
fund_companies (59)
id, kod (CP1/AKP/ISP), baslik (tam ad), besMi, durum
fund_prices (NAV tarihçesi)
id, fonId, tarih, fiyat, toplamDeger
fund_predictions (T+1 NAV tahmini)
id, fonId, tarih, tahminGetiri, gercekGetiri (sonra)
fund_fvt_scores
id, fonId, tarih, skor, seviye
getiriSkor (max 30), riskSkor (max 25), buyuklukSkor (max 15)
aktiflikSkor (max 15), nakitAkisiSkor (max 15)
fund_cash_flow (haftalık snapshot)
id, fonId, week, month, threeMonth, sixMonth, oneYear, threeYear, fiveYear
fund_ai_analysis
id, fonId, tarih, icerik (Markdown)
4️⃣ PORTFOLIO (Portföy)
portfolios
id, kullaniciId FK, ad, hedef bigint, hedefKategori, paraBirimi, olusturmaTarihi
trades (al-sat işlemleri)
id, portfolioId FK, sembol, tip (al/sat), adet decimal(15,4)
fiyat decimal(15,4), tarih, komisyon, aciklama
positions (anlık pozisyonlar)
id, portfolioId, sembol, sembolTipi, adet, ortMaliyet, toplamMaliyet
guncelFiyat (denorm), guncelDeger, kz, kzYuzde, durum (acik/kapali)
closed_positions
id, portfolioId, sembol
acilisTarih, kapanisTarih, tutmaSuresiGun
toplamMaliyet, toplamSatis, gerceklesenKz, gerceklesenKzYuzde
portfolio_snapshots (daily cron)
id, portfolioId, tarih, toplamDeger, toplamMaliyet, kz, pozisyonCount, detay_json
portfolio_target_allocation
id, portfolioId, varlikTipi (hisse/tahvil/doviz/nakit), yuzde
portfolio_ai_analysis_cache
id, portfolioId, tarih, skor, performansSkor, riskSkor, cesitlilikSkor
ozet TEXT, swot_json, benchmark_json, aksiyonlar_json, varlikKararlari_json
aiNotu TEXT, modelUsed (claude-haiku-4)
5️⃣ WALLET (Cüzdan)
wallet_balances
id, kullaniciId, paraBirimi (TRY/USD/EUR), tutar decimal(20,2)
wallet_transactions
id, kullaniciId, tip (gelir/gider), tutar, paraBirimi
kategoriId FK, tarih, aciklama, kaynak (manuel/portfoy/temettu/recurring)
kaynakRefId (örn trade_id)
wallet_categories
id, kullaniciId NULL (sistem ise NULL), ad, ikon, renk, tip (gelir/gider)
wallet_budgets
id, kullaniciId, kategoriId, donem (aylık/yıllık), limit, periodStart
wallet_goals
id, kullaniciId, ad, hedefTutar, mevcutTutar, bitisTarih, ikon
wallet_mevduat
id, kullaniciId, banka, anapara, faiz, vade, baslangic, durum
wallet_recurring
id, kullaniciId, ad, tutar, siklik (haftalık/aylık/yıllık), gun, kategoriId, sonOdeme
wallet_conversions
id, kullaniciId, fromCurrency, toCurrency, amountFrom, amountTo, rate, tarih
6️⃣ COMMENTS / FORUM (Yorum + Topluluk)
yorumlar (hisse yorum)
id, hisseKodu, kullaniciId, mesaj, aciklama, etarih, tur (0-5)
likeCount, replyCount, durum
forum_sections (7 bölüm)
id, sira, durum, pro, baslik, aciklama, etarih, ekleyen
forum_topics (39 alt konu)
id, bolumId FK, sira, durum, pro, baslik, aciklama, seflink, yorumYaz
postCount, replyCount, etarih, ekleyen
forum_posts
id, topicId FK, kullaniciId, baslik, seflink, icerik, etarih
goruntulenme, sabitlenmis, likeCount, replyCount, lastReply, tags_json
forum_replies
id, postId FK, kullaniciId, icerik, etarih, likeCount
forum_likes
id, kullaniciId, targetType (post/reply), targetId, etarih
7️⃣ SOCIAL (Akış)
social_posts
id, kullaniciId, icerik (max 2000 char), etarih, durum
begeniSayisi, yorumSayisi, gizli (admin)
social_cashtags (parsed)
id, postId, sembol, sembolTipi
social_mentions (parsed)
id, postId, mentionedUserId, kullaniciAdi
social_likes
id, postId, kullaniciId, etarih
social_follows (user → user)
id, followerId, followingId, etarih
social_symbol_follows (cashtag follow)
id, kullaniciId, sembol, tip, etarih
social_trends (24sa cashtag count)
id, sembol, count24h, count1h, delta, sira, etarih
social_reports (şikayet)
id, postId, raporlayanId, sebep, aciklama, durum (acik/onaylandi/reddedildi), adminId
8️⃣ NOTES / ALARMS / FAVORITES / WATCHLIST
notes
id, kullaniciId, baslik, icerik, tag_json, sira, sabitlenmis, etarih
reminderAt timestamp NULL, reminderDismissed
alarms
id, kullaniciId, sembol, sembolTipi, tip (fiyat/yuzde), yon (yukari/asagi)
hedef decimal, tekrarlayan boolean, aktif, son_tetik, sira
bildirimTipi_json (push/email/in-app)
favorites
id, kullaniciId, kod, tip (hisse/fon/etf/kripto), sira, etarih
watchlist
id, kullaniciId, ad NULL (liste adı), sira
+ watchlist_items: id, watchlistId, kod, tip, not, sira
9️⃣ NOTIFICATIONS
notifications
id, kullaniciId, tip (alarm/dividend/kap/mention/like/follow/system)
baslik, mesaj, link (deeplink), iconUrl, etarih, okundu
refId (entity link), refType
notification_preferences
id, kullaniciId, kanal (email/push/in-app), tip, aktif
🔟 ASISTAN (Apex AI)
asistan_sohbetler
id, kullaniciId NULL (anonim ise), baslik, etarih, sonMesaj
asistan_mesajlar
id, sohbetId FK, rol (user/ai), icerik TEXT, intent, kaynak (kural/haiku)
sureMs, tokenUsage_json, etarih
asistan_kota
id, kullaniciId NULL veya deviceId, tarih, kullanim, limit, resetAt
1️⃣1️⃣ LIVE STREAM
live_streams
id, video (YouTube ID), baslik, tarih, durum, aktif, izlenme, bolumler TEXT
chat_messages
id, yayinId FK, kullaniciId, mesaj, etarih, silindi (moderation)
chat_rules_accepted
id, kullaniciId, kabulTarih, version
live_stream_questions
id, yayinId, kullaniciId, soru, durum (pending/show/answered/removed)
cevap, cevaplayanAdminId, etarih
1️⃣2️⃣ PAYMENT / PRO
payment_transactions
id, kullaniciId, tutar, paraBirimi, paket (canliYayin/veriAnaliz/plus)
donem (aylik/yillik), durum (basarili/iptal/iade/pending)
odemeYontemi (kart/havale), transactionId (3D Secure)
banka, kuponKodu, indirim, etarih, paketBitis
kuponlar (discount codes)
id, kod, indirimYuzde, indirimTutar, kullanimLimit, kullanimSayisi
aktif, bitisTarih
referrals (davet)
id, davetEdenId, davetEdilenId, refKod, gunHediye, etarih, durum
1️⃣3️⃣ SUPPORT
support_tickets
id, kullaniciId, kategoriId, oncelikId, baslik, icerik, durum (acik/cevaplandi/kapali)
etarih, kapatmaTarih, atanan_adminId
support_ticket_replies, support_ticket_uploads
replies uploads
id, ticketId, kullaniciId, mesaj, isAdmin, etarih id, ticketId, dosyaAdi, dosyaPath, boyut, etarih
support_categories (7)
id, baslik (Yeni Özellik/Hata/Ödeme/Veri/Hesap/PRO/Diğer)
support_priorities (4)
id, baslik (Düşük/Normal/Yüksek/Acil)
support_faq
id, durum, soru, cevap, sira
1️⃣4️⃣ DİĞER
settings_social_media
id, baslik, link, icon, sira
feedback
id, kullaniciId NULL, tip, mesaj, sayfa, browser, etarih
user_preferences
id, kullaniciId, anahtar, deger TEXT, etarih
1️⃣5️⃣ EVENT LOG / AUDIT (Tahmini)
domain_events_log
id, eventType (trade:changed/portfolio:changed/dividend:changed/target:changed)
payload_json, kullaniciId, etarih, kaynakService
audit_log
id, kullaniciId, aksiyon, kaynak, refId, oncekiData_json, sonrakiData_json, etarih, ip
🔗 İlişkiler Diyagramı (Özet)
users (1) → (N) portfolios → (N) trades → (denorm) positions
↓
closed_positions
users (1) → (1) wallet_balances → (N) wallet_transactions
↘ (N) wallet_goals
↘ (N) wallet_categories
stocks (1) → (N) bilanco, dividends, sermaye_artirimlari
↘ (N) yorumlar (4 tur)
↘ (N) signals, patterns
funds (1) → (N) fund_holdings (aylık)
↘ (N) fund_risk_metrics (daily)
↘ (N) fund_prices
social_posts (1) → (N) cashtags, mentions, likes, reports
forum_topics (1) → (N) forum_posts → (N) replies
notifications: polymorphic (refId + refType)
domain_events_log: event sourcing audit
📐 İndeksler (Performans Tahmini)
stocks: idx_hisseKodu UNIQUE, idx_kategori
funds: idx_fonKodu UNIQUE, idx_kategoriId, idx_yatirimci DESC
trades: idx_portfolioId_tarih DESC
positions: idx_portfolioId_sembol UNIQUE
fund_holdings: idx_fonId_donem, idx_sembol_donem (smart-money)
notifications: idx_kullaniciId_okundu_etarih DESC
yorumlar: idx_hisseKodu_tur_etarih DESC
chat_messages: idx_yayinId_etarih DESC (paginated)