🗄️ 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

~45
Tablo
22
Modül
SQL
PostgreSQL
TR
Türkçe Naming

1️⃣ AUTH (Kullanıcı)

users

KolonTipNot
idinteger PKAuto-increment
emailvarchar(255) UNIQUEValidate email
adivarchar(255)2-255 char
soyadivarchar(255)2-255 char
kullaniciAdivarchar(50) UNIQUEHandle (Bekir, sidekick...)
parolaHashvarchar(255)bcrypt
telefonvarchar(20) NULL
avatarvarchar(255) NULL/uploads/avatars/...
rolenumuser / admin / mod
prointeger0/1 (PRO flag)
proPaketenumcanliYayin / veriAnaliz / plus
proBitistimestampVeri & Analiz / Canlı Yayın ayrı
emailVerifiedbooleandefault false
twoFactorEnabledboolean
twoFactorSecretvarchar(255)TOTP secret
refKodvarchar(10)Davet kodu (FVTPL7BN)
davetEdeninteger FK users.idNULL
hesapTuruenumBireysel / Kurumsal
etarihtimestampÜyelik tarihi
duruminteger1=aktif, 0=dondurulmus, -1=silinmis

refresh_tokens

idinteger PK
userIdinteger FK
tokenvarchar(500)
expiresAttimestamp
createdAttimestamp

password_resets

idinteger PK
emailvarchar(255)
kodvarchar(6)6 haneli
expiresAttimestamp+15dk
kullanildiboolean

email_verifications, oauth_accounts (Google/Apple)

email_verificationsoauth_accounts
id, userId, token, expiresAt, dogrulandiid, userId, provider (google/apple), providerId, email

2️⃣ STOCKS (Hisse Senetleri)

stocks (yerli + yabancı + altın + emtia)

KolonTipNot
idinteger PK
hisseKoduvarchar(10) UNIQUETHYAO, AAPL
hisseAdivarchar(500)"Türk Hava Yolları A.O."
seflinkvarchar(255)URL slug
hissePazarinteger0=ana, 1=yıldız
hisseKategoriinteger FK categories.id37=Finansal...
yabanciinteger0/1 discriminator
fiyatdecimal(15,4)
alis / satisdecimal(15,4)
gunlukYuzdedecimal(7,4)
dunkuKapanisdecimal(15,4)
piyDegbigintMarket cap (TL)
farkdecimal(15,4)
hacimTl, hacimLotbigint
acilis, dusuk, yuksekdecimal(15,4)
yilYuksek, yilDusukdecimal(15,4)52H
sermayebigintÖdenmiş sermaye
netBorc, netKar, favok, netSatisbigintTemel analiz
nakitTemettudecimal(10,4)
sonGuncellemetimestamp
simgevarchar(5)₺ veya $

stock_categories (50 sektör)

idinteger PK
baslikvarchar(100)"Bankalar", "Holdingler"...
sirainteger
duruminteger

stock_indices (BIST endeksler)

idinteger PK
endeksKoduvarchar(10)XU100, XU030, XBANK, XUTEK...
endeksAdivarchar(200)
tipenumana / sektor / likit

index_composition

idinteger PK
endeksIdinteger FK indices
hisseIdinteger FK stocks
agirlikdecimal(10,6)%11.49 vs
donemvarchar(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

kriptoetf (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

KolonTipNot
idinteger PK
varlikIdinteger1=TL, 2=USD, 3=EUR, ...
isleminteger0/1 alım-satıma açık
kategoriIdinteger FK fund_categories35=Para Piyasası
ustIdinteger1=Hisse, 5=Para Piy...
katilim, hisse, bes, yabanci, serbest, doviz, avantajintegerFlag'ler (0/1)
stopajdecimal(5,2)17.50
fonKoduvarchar(10) UNIQUEAAL
fonAdivarchar(500)
fonTipivarchar(100)"Para Piyasası Şemsiye Fonu"
seflinkvarchar(255)
fiyatdecimal(15,6)NAV
getiridecimal(10,4)
kategorivarchar(100)denorm "Para Piyasası Fonu"
paraBirimivarchar(5)TL/USD/EUR/GBP/AU
toplamDegerbigintAUM (TL)
yatirimciintegerKullanıcı sayısı
dolulukOranidecimal(5,2)Kota %
pazarPayidecimal(5,2)
riskvarchar(2)1-7
yonetimUcretdecimal(5,2)%
sirketKoduvarchar(10) FK companiesAPY, AKP, ISP
isinKoduvarchar(12)TRMAALWWWWW5
kurulusTarihidate
alisValor, satisValorintegerT+N gün
islemBaslangicSaattime
sonGuncellemetimestamp

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

repliesuploads
id, ticketId, kullaniciId, mesaj, isAdmin, etarihid, 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)