📡 API Endpoints:
Authentication
POST
/api/auth/register
Gerekli: username, email, password
Opsiyonel: credits (number), created_at (string, format: 'YYYY-MM-DD HH:mm:ss')
POST
/api/auth/login
Gerekli: email, password
POST
/api/auth/forgot-password
Gerekli: email (body)
Yeni şifre oluşturur ve e-posta ile gönderir
POST
/api/auth/google-login
Gerekli: email (body)
Opsiyonel: name, picture
Google ile giriş yapar. Email database'de varsa login olur, yoksa yeni kullanıcı oluşturur
Stats
GET
/api/stats
Gerekli: Yok (Public API)
Aktif üye, paylaşılan tahminler, günlük tahmin ve uzman üye sayılarını döner
Notifications
GET
/api/notifications
Gerekli: token (header)
Token'dan userId alınır
GET
/api/notifications/recent
Gerekli: token (header)
Son 3 günün bildirimlerini döner
GET
/api/notifications/unread-count
Gerekli: token (header)
Token'dan userId alınır
PUT
/api/notifications/:id/read
Gerekli: token (header), notificationId (URL)
PUT
/api/notifications/read-all
Gerekli: token (header)
DELETE
/api/notifications/:id
Gerekli: token (header), notificationId (URL)
Users
GET
/api/users/:id
Gerekli: token (header), id (URL)
Örnek: /api/users/1 (token ile)
GET
/api/users/:id/stats
Gerekli: token (header), id (URL)
Profil istatistikleri: toplam puan, başarı oranı, toplam tahmin, başarılı tahmin
PUT
/api/users/:id
Gerekli: id (URL), token (header), güncellenecek alanlar (body)
Örnek: PUT /api/users/1 (token ile)
DELETE
/api/users/:id
Gerekli: token (header), id (URL)
ID'ye göre kullanıcıyı siler
Favorites
GET
/api/favorites
Gerekli: token (header)
user_id'ye göre listeler (token'dan alınır)
POST
/api/favorites
Gerekli: token (header), tjk_code (body)
horse_name, sebep, uzman (optional)
PUT
/api/favorites/:id
Gerekli: token (header), id (URL), güncellenecek alanlar (body)
horse_name, sebep, uzman (optional)
DELETE
/api/favorites/:id
Gerekli: token (header), id (URL)
Altılı Bilgisi
GET
/api/altili/today
Gerekli: Yok (Public API)
Bugünün tarihine göre altılı bilgilerini getirir (race detayları dahil)
GET
/api/altili/tomorrow
Gerekli: Yok (Public API)
Yarının tarihine göre altılı bilgilerini getirir (race detayları dahil)
Races
GET
/api/races/:id
Gerekli: id (URL) - Token gerekmez (Public API)
İstenen ID + sonraki 5 yarış (toplam 6 data)
GET
/api/races/today
Gerekli: Yok (Public API)
Bugünün tarihine göre yarışları getirir
GET
/api/races/:race_id/general-ranking
Gerekli: race_id (URL) - Token gerekmez (Public API)
Belirtilen yarış için yapay zeka ile hesaplanmış genel sıralama sonuçlarını döner (sonuc_hesaplama_genel_siralama tablosu)
Horses
GET
/api/horses/race/:race_id
Gerekli: race_id (URL) - Token gerekmez (Public API)
race_id'ye göre at bilgilerini getirir
Predictions
GET
/api/predictions
Gerekli: token (header)
user_id'ye göre tüm tahminleri listeler
GET
/api/predictions/recent
Gerekli: Yok (Public API)
date_filter (today/yesterday/both), user_id (optional)
GET
/api/predictions/success
Gerekli: Yok (Public API)
user_id (optional) - overall_result=1 olan başarılı tahminler
GET
/api/predictions/by-role
Gerekli: user_role (query) - Token gerekmez (Public API)
user_role'e göre tahminleri listeler
GET
/api/predictions/:id
Gerekli: token (header), id (URL)
POST
/api/predictions
Gerekli: token (header), start_race_id, ganyan_type, user_role (body)
Diğer alanlar optional
PUT
/api/predictions/:id
Gerekli: token (header), id (URL), güncellenecek alanlar (body)
DELETE
/api/predictions/:id
Gerekli: token (header), id (URL)
GET
/api/prediction-access
Gerekli: token (header)
Token'dan user_id alınır; kullanıcının krediyle açtığı tüm tahmin erişim kayıtlarını listeler
POST
/api/prediction-access
Gerekli: token (header), prediction_id (body)
Opsiyonel: credit_spent (number, body)
Belirtilen tahmini kredi harcayarak açar ve prediction_access tablosuna kayıt ekler
Premium Payments
POST
/api/premium-payment-notifications
Gerekli: token (header), package_days, amount, payment_date, sender_fullname (body)
Opsiyonel: sender_tc, sender_phone, reference_note, receipt_file (body)
status alanı otomatik olarak pending kaydedilir.
Örnek body: {"package_days":30,"amount":499.90,"payment_date":"2026-03-14","sender_fullname":"Ad Soyad","reference_note":"Havale bildirimi","receipt_file":"uploads/receipt.jpg"}